Adding a device to self-hosted yaos
Join an existing vault without creating a second one or running two syncs.
Names and addresses are placeholders. The list says what each one stands for.
What it does here
The steps for putting another machine on a vault that already syncs through the devbox. They come from the first day of real use. The third machine went on this way and synced cleanly.
Canonical setup
Each device installs the YAOS plugin and opens the obsidian:// setup link, or scans the QR code, from the server's claim page. Upstream: kavinsood/yaos.
In this build
- Keep the vault outside iCloud Drive and other cloud-synced foldersAnother sync service keeps its own copy, and moving the vault out later left thousands of files flagged.
- Turn off Obsidian's Sync core pluginWith two sync systems on one vault, a note appearing on another machine doesn't tell you which one moved it.
- Set up from the claim page's link or QR code, and check that the vault ID matches the other devicesA device that makes its own vault ID starts a second room on the server.
- Set Exclude paths before the first sync, not afterThey're full prefixes from the vault root, not wildcards.
- Watch the status bar for "YAOS: Connected"The settings page's Status line isn't reliable.
- Type in a note and watch it appear on another deviceWith Obsidian Sync off, only yaos can have moved it.
Seams
Where this meets the rest of the build. Each one leads with what you will actually see.
Symptomtwo vault rooms on the server with the same notes
A first setup attempt can create its own vault ID, and a second attempt joins the right one. Check in the plugin settings that every device shows the same vault ID. To remove an unused room, stop the yaos container, delete that room's .sqlite file under workerd/do/yaos-vault-sync/, and delete its v1/<vaultId>/ prefix in the bucket. Match the file to the vault ID first; each file stores its room name.
SymptomConnecting to server… Fully synced
None of that text is in yaos, which has no activity log. It's Obsidian's own Sync core plugin, still enabled and working on the same vault. Turn it off under Settings, Core plugins, Sync, on every machine, then repeat the test.
Symptom↑52 files to upload, and it never finishes
yaos syncs everything that isn't a note as an attachment, so a project folder with its node_modules turns into thousands of uploads. Empty files among them never upload, because the server rejects them, and they retry after every reconnect. Delete the folder, or add it to Exclude paths. That setting matches path prefixes from the vault root, so a bare node_modules/ won't match.
Verify
The status bar says "YAOS: Connected". Text typed in a note on the new device appears on another device while you type. The plugin settings show the same vault ID on every device.
- 4 Nov 2026First written.