Migrating from Obsidian Sync
Move from Obsidian Sync (Obsidian’s official paid sync service) to obsidian-remote-ssh. The plugin replaces Sync’s “vault on Obsidian’s servers” model with “vault on YOUR remote host” — same end-user experience, different ownership story.
Scope honesty: this page covers the parts I can verify about this plugin’s setup. For Obsidian Sync’s internal behaviour (history retention, end-to-end encryption keys, version recovery semantics), the canonical source is Obsidian’s own Sync docs. Parts of this guide say “check Obsidian’s docs for X” — those are deliberate gaps, not laziness.
What you keep, what you lose
What you keep
- All vault content — your
.mdfiles, attachments,.obsidian/plugin config, themes - Multi-device editing — both work; obsidian-remote-ssh handles concurrent clients via the per-Client-ID workspace partition
- Your subscription cancellation — Obsidian Sync is no longer needed; you can cancel it after migration is verified
What you lose (and the replacements)
| Obsidian Sync feature | obsidian-remote-ssh equivalent |
|---|---|
| File version history (per-file rollback within Sync’s UI) | None built into the plugin. Use server-side backups instead — rsync recipe |
| End-to-end encryption with your encryption password | SSH transport encrypts in flight. At-rest encryption is your remote host’s responsibility (LUKS / FileVault / encrypted ZFS dataset). Obsidian Sync’s e2ee with a separate password is NOT replicated. |
| Cross-device automatic conflict resolution | The plugin has conflict detection, but the resolution UI is unforgiving — no automatic backup of the rejected side. Read that page first. |
| Mobile sync | Not yet — this plugin is desktop-only ([[en/roadmap|tracked in #151]]). Keep Sync if mobile editing is a hard requirement. |
| One-click recovery of accidentally-deleted notes | Restore from your server-side backup (recipe) |
| Selective sync (some folders only) | Not supported. The plugin syncs the whole configured vault root. |
If any of those are critical for your workflow, reconsider the migration — or stay on Sync for the parts that need it (e.g., keep Sync for mobile, run obsidian-remote-ssh for desktop).
Pre-migration checklist
- Decide where the vault will live — your home Pi, a NAS, a cloud VPS. See RPi vault from scratch or Tailscale-shared host.
- Take a Sync history snapshot you trust — open Obsidian on your most up-to-date device, let Sync settle (status bar shows “Synced”), and stop editing for the migration window.
- Plan a switchover window — 30 minutes for a typical vault.
- Have a rollback plan — keep Sync subscription active until the new setup runs cleanly for at least a few days.
Migration steps
1. Export the vault to your laptop
Sync stores the canonical vault on Obsidian’s servers; your local copy is a synced replica. To migrate, the local replica is what you copy from.
On the device where Sync says “Synced” most recently:
# Find your vault path on disk (it's whatever you opened in Obsidian)
# macOS: ~/Documents/MyVault, Linux: ~/MyVault, Windows: C:\Users\you\Documents\MyVault
cp -a ~/MyVault ~/MyVault-migration-snapshotThe -a preserves timestamps + symlinks. This snapshot is your “if everything goes wrong, I have this” copy.
2. Strip Sync-specific state (optional but cleaner)
Inside the vault’s .obsidian/ directory, Sync writes some state files. They’re harmless to leave but harmless to remove:
# Remove Sync state (will be regenerated by Sync if you re-enable; ignored by us)
rm -f ~/MyVault-migration-snapshot/.obsidian/sync.json
rm -rf ~/MyVault-migration-snapshot/.obsidian/sync/ # if it existsDon’t touch other .obsidian/ files — themes, plugins, hotkeys, workspace state should all come along.
Note: I don’t have a complete inventory of Sync’s on-disk state files. The
sync.jsonandsync/paths above are the commonly-named ones; check Obsidian’s Sync docs or your.obsidian/directory for anythingsync*-named that didn’t come from another plugin.
3. Set up the remote vault host
Per the Pi recipe or your equivalent:
ssh user@new-host 'mkdir -p ~/notes'4. Upload the vault
rsync -aHx ~/MyVault-migration-snapshot/ user@new-host:~/notes/For a large vault (1+ GB), this can take a while over WAN. tar-pipe is a faster alternative:
tar czf - -C ~/MyVault-migration-snapshot . | ssh user@new-host 'tar xzf - -C ~/notes'Verify the copy on the remote:
ssh user@new-host 'find ~/notes -type f | wc -l' # file count
ssh user@new-host 'du -sh ~/notes' # total size
# Compare against the local snapshot5. Disable Obsidian Sync
In Obsidian → Settings → Sync → toggle off. Don’t delete your Sync data on Obsidian’s servers yet — that’s your rollback path.
6. Install obsidian-remote-ssh
Install via the standard install (Community Plugins store or BRAT). Add a profile pointing at user@new-host, vault path ~/notes. Connect. The new shadow vault opens with your full vault contents.
See First connect for what happens behind the scenes.
7. Verify everything works
- Open a few notes including ones with images or attachments. Confirm they render correctly.
- Edit + save a note. Verify on the remote:
ssh user@new-host 'ls -lt ~/notes | head -3'— your edit should be on top. - Check key plugins — Dataview / Templater / Excalidraw etc. should work since they’re inside
.obsidian/plugins/on the remote vault. See plugin compatibility matrix for known sharp edges. - Confirm your themes + hotkeys came across.
- Run for a week before cancelling Sync — gives you time to spot anything missing.
8. Set up backups (mandatory replacement for Sync’s history)
Obsidian Sync had per-file version history; the plugin doesn’t. The replacement is server-side incremental backups. Set up restic or borg per the backup recipe before you cancel Sync — losing both at once is not recoverable.
9. Cancel Obsidian Sync
After a week of clean operation + verified backup snapshots, cancel your Obsidian Sync subscription. Optionally, request deletion of your vault from Obsidian’s servers per their account-management process.
Multi-device handoff
If you used Sync to keep multiple laptops in sync, repeat these steps from each laptop’s POV:
- On laptop B, install obsidian-remote-ssh.
- Add the same profile (host + path) — same
Client IDif you want shared workspace state, different if you want each device to have its own pane layout. - Connect — the shadow vault on laptop B re-fetches from the same remote that laptop A is editing.
Per-device workspace state stays separated via the Client ID partition. Concurrent edits go through conflict handling.
Rolling back (if migration goes sideways)
While Sync is still active on Obsidian’s servers:
- In Obsidian, re-enable Sync.
- Sync rebuilds the local vault from its server-side copy (might take a moment).
- Stop using obsidian-remote-ssh until you’ve figured out what went wrong.
The pre-migration snapshot at ~/MyVault-migration-snapshot is the second-line fallback if Sync’s server-side copy is also bad.
See also
- Install — getting obsidian-remote-ssh installed
- RPi vault from scratch — for setting up a home server as your new vault host
- Backup & restore — the mandatory replacement for Sync’s history
- Conflict handling — important context on the lack of automatic backup-on-overwrite
- FAQ — short comparison table with Sync, Syncthing, Dropbox
- Obsidian Sync docs — canonical reference for Sync’s behaviour during migration