Files
hassio-addons/obsidian_syncserver_solo/DOCS.md
Enrique dbd74e0391 Obsidian Sync Server add-ons (CouchDB LiveSync backend) - three flavours (#2965)
* full commit obsidian

* updates on readme and clarification for addons community for easy tag on
issues

* becouse of https://github.com/alexbelgium/hassio-addons/issues/2966

* restore build.yaml for obsidian addons

---------

Co-authored-by: ToledoEM <8144940+ToledoEM@users.noreply.github.com>
2026-08-12 17:21:14 +02:00

4.0 KiB

Obsidian Sync Server

CouchDB set up as a backend for the Self-hosted LiveSync plugin in Obsidian.

What the add-on configures

A stock CouchDB will not work as a LiveSync backend. On every start this add-on applies the settings the plugin needs, matching what upstream's own provisioning tool does:

Setting Value Why
chttpd/require_valid_user true No anonymous access
chttpd_auth/require_valid_user true No anonymous access to the auth endpoints
httpd/WWW-Authenticate Basic realm="couchdb" Prompts for credentials
httpd/enable_cors, chttpd/enable_cors true Obsidian behaves like a browser client
cors/credentials true Lets it send the auth header cross-origin
cors/origins app://obsidian.md,capacitor://localhost,http://localhost Desktop and mobile app origins
chttpd/max_http_request_size 4294967296 Large vault batches
couchdb/max_document_size 50000000 Large notes and attachments

These get re-applied on each start, so editing them by hand in Fauxton will not stick.

Storage

The vault database lives in /config/obsidian-syncserver/data rather than the add-on's /data directory, so it survives a reinstall and gets picked up by Home Assistant backups.

If you did not set a password, the generated one is in /config/obsidian-syncserver/admin_password.

Reverse proxy setup

Mobile Obsidian refuses plain HTTP, so a phone or tablet needs TLS in front of this add-on. Any proxy will do, as long as it does three things:

Pass the Authorization header through untouched. CouchDB authenticates every single request, so a proxy that strips or rewrites that header turns everything into a 401.

Allow WebSocket upgrades. LiveSync uses continuous replication. Without upgrade support the connection looks like it works and then just sits there.

Avoid buffering responses indefinitely, or the long-poll changes feed lags behind.

Nginx Proxy Manager

Add a Proxy Host:

  • Domain Names: whatever hostname you plan to use, say obsidian.example.com
  • Scheme: http
  • Forward Hostname / IP: your Home Assistant machine
  • Forward Port: 5984
  • Websockets Support: on
  • On the SSL tab, request or select a certificate and turn on Force SSL

Then point LiveSync at https://obsidian.example.com.

Plain nginx

location / {
    proxy_pass http://homeassistant.local:5984;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;

    # CouchDB authenticates every request
    proxy_pass_request_headers on;

    # LiveSync uses continuous replication
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_buffering off;
    proxy_read_timeout 600s;
}

Troubleshooting

If the add-on stops right after starting, read the log. A malformed database name or a /config directory CouchDB cannot write to will both halt startup with a message saying which.

If LiveSync reports a network or CORS error, it is nearly always the proxy rather than CouchDB. Check the server directly first:

curl -u admin:YOURPASSWORD http://homeassistant.local:5984/obsidian

When that works but the plugin still fails, the proxy is either dropping the Authorization header or blocking the WebSocket upgrade.

If desktop syncs but mobile does not, the app does not trust your certificate. Self-signed ones generally will not cut it. The NPM version of this add-on exists partly to make that easier.

If sync connects and then stalls, WebSocket upgrade is not getting through the proxy.

To see the applied configuration:

curl -u admin:YOURPASSWORD http://homeassistant.local:5984/_node/_local/_config/cors

The Obsidian origins should be listed there.

Backups

Home Assistant backs up /config, which covers the vault database. For a copy you can move elsewhere, use CouchDB replication or export from Fauxton at http://<host>:5984/_utils.