Headless agent to sync Obsidian vaults bidirectionally using CouchDB.
🇪🇸 Spanish docs: README_es.md
This agent is designed to work with Self-hosted LiveSync.
Install plugin in Obsidian from:
Use the included stack:
deploy/couchdb.yamldeploy/README.md
Quick deploy:
printf 'admin' | docker secret create couchdb_user -
printf 'CHANGE_ME_STRONG_PASSWORD' | docker secret create couchdb_password -
docker stack deploy -c deploy/couchdb.yaml couchdbcurl -fsSL https://raw.githubusercontent.com/aitorroma/obsidian-livesync-agent/main/scripts/install.sh | bashTap and install:
brew tap aitorroma/obsidian-livesync-agent https://github.com/aitorroma/obsidian-livesync-agent
brew install livesync-agentInstall latest main version (source build):
brew install --HEAD aitorroma/obsidian-livesync-agent/livesync-agentcargo build --release
./target/release/livesync-agent --helpInteractive setup:
livesync-agent setupDefault config path: ~/.livesync-agent/config.toml (directory is created automatically).
Then run one cycle:
livesync-agent sync-onceOr daemon mode:
livesync-agent daemon --interval-seconds 30Install as systemd user service (and start immediately):
livesync-agent daemon --interval-seconds 30 --installIf you're in a non-interactive shell (for example su - or some containers), auto-start may fail because the user session bus is unavailable. In that case the service file is still installed and you can enable it later from a normal login session:
systemctl --user daemon-reload
systemctl --user enable --now livesync-agent.serviceHeadless server tip (one-time):
sudo loginctl enable-linger $USERGitHub Actions release workflow:
- File:
.github/workflows/release.yml - Trigger: push tag
v*(example:v0.1.1) - Build targets: Linux x86_64 (musl + gnu)
Create release:
git tag v0.1.1
git push origin v0.1.1Assets uploaded:
livesync-agent-<tag>-x86_64-unknown-linux-musl.tar.gz(portable, preferred by installer)livesync-agent-<tag>-x86_64-unknown-linux-gnu.tar.gzSHA256SUMS