Profile
Back to NewsBack
GitHub Trending 5 min
Reader Mode
psimaker/vaultsync: Self-hosted Obsidian vault sync for iOS — powered by Syncthing.

psimaker/vaultsync: Self-hosted Obsidian vault sync for iOS — powered by Syncthing.

8 hours ago

VaultSync

VaultSync

Self-hosted Obsidian vault sync for iPhone and iPad.
Your notes sync peer-to-peer over Syncthing, straight into Obsidian's iOS sandbox — no note cloud, no account, no tracking.

Download on the App Store



Stars</a> License: MPL-2.0</a> iOS 18+</a> CI</a>

VaultSync welcome screen VaultSync home screen


🔭 Why VaultSync

  • Peer-to-peer & private — syncs directly between your own devices over Syncthing. No note cloud, no account, no tracking.
  • Lands in Obsidian — files sync into Obsidian's iOS sandbox, where the app already looks for them.
  • Pair by QR, resolve conflicts — connect your server in seconds; settle Markdown conflicts with side-by-side diffs.
  • Server changes can wake your iPhone — optional Cloud Relay asks iOS to wake the app after the helper observes a server change. The activity timeline shows local sync activity, while Diagnostics keeps Relay, delivery, and local-data evidence separate.
VoiceOver and Dynamic Type throughout. Localized in English, German, Spanish, and Simplified Chinese. Independent project — not affiliated with Obsidian or Syncthing.

🧭 How it works

VaultSync architecture: your server with Syncthing syncs peer-to-peer with the VaultSync iOS app, which writes notes into your Obsidian vault. An optional Cloud Relay sends silent push wake-ups.

Syncthing runs on a machine you keep on; VaultSync joins as a peer and syncs into Obsidian. After a server change, the optional sidecar + Cloud Relay can request an iOS background wake-up; iOS decides whether and when VaultSync runs.


🚀 Quick start

  1. Install VaultSync from the App Store.
  2. Pair your server — scan its Syncthing Device ID by QR (or paste it), then accept the connection in that Syncthing instance.
  3. Sync your vault — VaultSync detects your Obsidian vaults, connects the share, and runs the first sync. Open Obsidian; your notes are there.
  4. (Optional) Enable Cloud Relay for faster server→iPhone updates — see below.

🏠 VaultSync Hub (one link, no Web UI)

Run your own Hub on a Linux server or NAS with Docker, then pair every device with a short code instead of device IDs:

curl -fsSL https://vaultsync.eu/setup.sh | sh

Choose 2) Hub on the server (once) and 1) Obsidian device on every computer. The Hub keeps every vault as plain files under /srv/vaultsync/vaults, keeps every conflict copy and 30 days of versions, and never merges, deletes or moves anything on its own. Details, ports and commands: docs/hub.md. "Bring your own Syncthing" keeps working unchanged.

☁️ Cloud Relay (optional)

Without it, VaultSync syncs server changes when you open the app. With it, Cloud Relay can request a background wake-up after your server changes — iOS still decides whether and when to run the app.

⚡ One-step setup

Subscribe in the app (monthly or yearly, at your local App Store price), then run this one line on the computer or NAS that runs Syncthing — the app shows it with a Copy button:

curl -fsSL https://vaultsync.eu/notify.sh | sh

That's the whole setup — nothing to edit, no API key to copy.

The installer finds your Syncthing config, sets the right permissions, and starts the helper. The helper sends one startup wake-up request. Relay Diagnostics reports Relay-side request observation and wake-ups received on this iPhone as separate evidence; one does not prove the other. iOS controls delivery, and sending edits from your iPhone stays most reliable with the app open. The relay receives the routing data and StoreKit proof needed to verify access and route a wake-up — never your notes, file or folder names, or vault structure (PRIVACY.md).

🔧 Manual & advanced setup — Docker Compose, docker run, prebuilt binaries, NAS notes, --dry-run

  • Skeptical of curl | sh? Append -s -- --dry-run to preview every action without changing anything, or read the script first.
  • Syncthing config in a non-standard place (typical on Synology/QNAP)? Prefix the installer with the path: curl -fsSL https://vaultsync.eu/notify.sh | SYNCTHING_CONFIG=/path/to/config.xml sh
  • Prefer to run things yourself? The manual & advanced guide covers Docker Compose, a paste-and-go docker run, prebuilt binaries for Linux/macOS/Windows, every environment variable, and NAS specifics.

📋 Requirements

| Requirement | Details | |---|---| | iPhone / iPad | iOS / iPadOS 18 or later | | Obsidian | Installed on iOS / iPadOS | | Syncthing | Running on a Mac, Linux machine, NAS, or homeserver | | Cloud Relay | Optional — monthly or yearly in-app subscription | | vaultsync-notify | Optional Docker sidecar for server-side wake-ups |


🔨 Build from source

Requires Xcode 26+, Go 1.26+, gomobile, XcodeGen, Make.

git clone https://github.com/psimaker/vaultsync.git && cd vaultsync
cd go && make patch && make xcframework && cd ..   # Go xcframework (~160 MB, bundles Syncthing)
cd ios && xcodegen generate && open VaultSync.xcodeproj

Full build, signing, and test steps: docs/setup.md.

| | | |---|---| | Platform | iOS / iPadOS 18+ | | Language | Swift 6, SwiftUI | | Sync engine | Syncthing 2.x via Go/gomobile .xcframework | | Background | BGAppRefreshTask + BGContinuedProcessingTask (iOS 26+ when available) | | Push | APNs silent push via Cloud Relay | | License | MPL-2.0 |


📚 Documentation

| Doc | What it covers | |---|---| | docs/hub.md | VaultSync Hub: one-link server stack, pairing codes, guarantees | | docs/setup.md | Build and development setup | | docs/troubleshooting.md | Common failures and exact fixes | | docs/architecture.md | Codebase structure and sync strategy | | docs/relay-spec.md | Cloud Relay protocol reference | | docs/instant-upload.md | Instant iPhone → server uploads via a Shortcuts automation | | notify/README.md | Notify sidecar setup and diagnostics | | PRIVACY.md · TERMS.md | Privacy policy and license terms | | CONTRIBUTING.md | How to contribute — setup, tests, and PR conventions | | SECURITY.md · CODE_OF_CONDUCT.md | Vulnerability reporting and community standards |

Filing a bug? Include your iOS and VaultSync versions, your server's Syncthing version, whether Cloud Relay and vaultsync-notify are running, and relevant logs or screenshots.


License & acknowledgments

MPL-2.0 — use, modify, and distribute under the Mozilla Public License 2.0.

Built on Syncthing (the file-sync engine) and gomobile (which embeds it on iOS), for Obsidian. VaultSync is independent and not affiliated with, endorsed by, or sponsored by Obsidian or Syncthing.

Chat with me