Skip to content

psimaker/vaultsync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 License: MPL-2.0 iOS 18+ CI

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 wake your iPhone — optional Cloud Relay nudges the app the moment your server updates, so incoming notes land even while it's closed. An activity timeline and diagnostics show exactly what synced.

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. The optional sidecar + Cloud Relay wake your iPhone when the server changes.


🚀 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.

☁️ Cloud Relay (optional)

Without it, VaultSync syncs server changes when you open the app. With it, your iPhone wakes on its own the moment your server changes — even while VaultSync is closed.

⚡ 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 wakes your iPhone once on startup and VaultSync flips to Cloud Relay active by itself; sending edits from your iPhone stays most reliable with the app open. The relay only ever sees the Device ID and push token needed to 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/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

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.

About

Self-hosted Obsidian vault sync for iOS — powered by Syncthing.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors