Sync with rclone
rclone gives you scriptable, two-way sync against tela's [[Sync your vault (WebDAV)]] tree (/dav/) — mirror a space to disk, back it up, or keep it reconciled across machines. See that page for the URL, auth, tree layout, and the identity/delete rules; this page is the rclone recipe.
[!TIP] The fastest path is Settings → Sync → Connect a vault: it mints a sync token and prints the exact
rclonecommands to paste, with the token, thevendor=rclonesetting and the required--ignore-sizeflag already filled in (Linux and macOS variants). This page is the manual reference.
Set up the remote
You need a Personal Access Token ([[API & personal access tokens]]) — write scope to push edits, read scope for a backup-only pull. Then rclone config → new remote → webdav:
| Prompt | Value |
|---|---|
url |
https://telawiki.com/dav/ |
vendor |
rclone |
user |
anything |
pass |
your PAT (type it in; rclone obscures it) |
Verify with rclone lsd tela: (lists your spaces) and rclone backend features tela: | head -5 — Precision must not be a huge number; 1000000000 (one second) is what you want.
[!IMPORTANT]
vendormust berclone, notother. That is the profile for a WebDAV server that accepts a file's modification time on upload — which tela does. Onvendor=otherrclone reports "modtime not supported", and combined with the mandatory--ignore-sizebelow it is left with no way to tell an edited file from an unchanged one: it silently skips your edits, and still reports success. If you set up a vault before September 2026, fix it once:rclone config update tela vendor rclone
[!WARNING] Always pass
--ignore-sizeon any command that writes to tela (copy/sync/bisync/mount). tela rewrites a file's frontmatter on save, so the stored bytes differ from what you uploaded — without--ignore-size, rclone's size check treats every upload as corrupt and rolls it back. Pure read-only pulls don't need it.
Everyday use
Always --dry-run first.
# Back up a space to disk (down; never deletes locally)
rclone copy tela:engineering ./backup
# Pull a space down (down; mirrors, deletes local extras)
rclone sync tela:engineering ./engineering --create-empty-src-dirs
# Push edits up (up; never deletes on tela)
rclone copy ./engineering tela:engineering --ignore-size
[!CAUTION]
rclone syncmakes the destination match the source and deletes extras on the destination. Keeptela:as the source when pulling down; neversyncintotela:from a stale/empty local folder. For backups usecopy(never deletes).
Two-way sync (bisync)
# First run only — establishes the baseline (tela wins pre-existing diffs)
rclone bisync tela:engineering ./engineering --resync --ignore-size
# Ongoing (cron/timer)
rclone bisync tela:engineering ./engineering --ignore-size \
--max-delete 25 --check-access --resilient
# …then pull tela's own rendering back down
rclone copy tela:engineering ./engineering --update
--max-delete/--check-access are client-side brakes that abort if a side looks empty — they complement tela's server-side delete guard. Conflicts merge server-side: non-overlapping edits combine; same-line edits keep your copy visible and the other as a recoverable revision — nothing is lost.
The trailing copy --update is what brings tela's version of a file back: a page you created on disk gets its id: assigned on the server, and a merged page gets the combined body — bisync itself won't fetch either, because it re-checks both sides before those writes happen. --update only takes files whose server copy is newer, so it does nothing once everything has settled. Skip it and a locally-created file never learns its id: — and since the id is the page's identity, renaming that file later creates a second page instead of retitling the first.
Live mount
rclone mount tela: ~/tela --vfs-cache-mode full --dir-cache-time 10s --ignore-size
On macOS use rclone nfsmount with the same flags — macOS has no FUSE, and nfsmount needs no macFUSE kernel extension:
rclone nfsmount tela: ~/tela --vfs-cache-mode full --dir-cache-time 10s --ignore-size
--vfs-cache-mode full is required for in-place editing (WebDAV can't do partial writes). WebDAV has no change notifications, so lower --dir-cache-time for fresher reads. Settings → Sync also generates a systemd user service (Linux) or a launchd agent (macOS) so the vault mounts on login.
rclone specifics
- Modification times. tela keeps the timestamp your file already had when the upload changes nothing on its side, and uses its own — newer — timestamp when it did change something (a new page getting its
id:, a merge). That is the signal your next run uses to pull the updated version down. - Renames over bisync show up as delete + re-upload; because the re-uploaded file keeps its
id:frontmatter, tela rebinds the same page rather than forking it, and the delete of the old name is a no-op rather than an error. - Excludes: filter OS/editor junk client-side to save round-trips (
.DS_Store,._*,*.swp,*.tmp,Thumbs.db,.git/**,.obsidian/**) via--exclude-from.