New Package: CouchDB — self-hosted Obsidian sync backend

Hi everyone,

I packaged CouchDB as a new service for StartOS. It works as a self-hosted
sync backend for Obsidian notes using the “Self-hosted LiveSync” plugin. This allows you to sync your notes across all your devices without a paid sync subscription or hosting your vault to a third-party cloud.

This is the first service I’ve packaged, so I’d genuinely welcome any and all feedback. It would also be great to have a few other people install it and test it out. Personally, I’ve been using it as my daily driver for the past week or so. I’d love to see it in the community registry eventually.

Repo: https://github.com/nfealey/couchdb-startos
Releases: Releases · nfealey/couchdb-startos · GitHub

What it does

CouchDB is a document database that acts as the remote sync target for the
Obsidian “Self-hosted LiveSync” plugin. Point the plugin at your instance and
your notes replicate in real time across desktop and mobile.

Notes

  • Interfaces: exposes the CouchDB HTTP API plus the Fauxton admin UI.
    • I’ve been testing this on a domain.
  • Health check: HTTP readiness probe against /_up (not just an open
    port), so “ready” reflects CouchDB actually serving requests.
  • Actions: “Show Credentials” (retrieve the auto-generated admin login),
    “Reset Password” (rotate it), and “Compact Databases” (reclaim disk) — all
    run without error.
  • Credentials: a unique admin password is generated on first run and
    stored per-install. No shared default.
  • Backup/restore: backs up the data and config volumes and restores cleanly.
  • Footprint: lightweight — runs comfortably alongside other services on
    low-resource hardware (Raspberry Pi 8GB / equivalent x86_64).
  • Dependencies: none.

Building

  • Builds reproducibly with npm ci && make using the StartOS SDK. make
    produces couchdb_x86_64.s9pk and couchdb_aarch64.s9pk.

Thanks for taking a look! :smiley:

1 Like

Very cool, thanks for sharing this. I’ve been using Nextcloud for Obsidian sync thus far, however that approach certainly has a few problems.

I actually hadn’t heard of the LiveSync plugin until now. In looking at the docs, I’m seeing that it can utilize S3 storage (like that provided by the StartOS Garage service, I imagine).

Can you help me to understand why CouchDB might be preferable to Garage for Obsidian LiveSync, or vica versa - or if they are both equally as good of options?

I’m also seeing a relatively new (Dec ‘25) plugin called “Obsidian S3 Sync and Backup” that could utilize Garage. An immediate benefits of using the LiveSync plugin that I see, beyond its’ maturity, is it’s developing p2p sync functionality. Yet another option however that could leverage an existing StartOS service.

Thanks again!

Thanks for you comments! That’s cool, I didn’t know Nextcloud could be used for Obsidian sync. I also didn’t realize StartOS had a Garage service for S3 like object storage already. That’s quite interesting, and I’m definitely going to try that out.

I’ll try my best to explain the differences below. Here’s my understanding of the potential differences:

  • CouchDB is a database with a live replication protocol that tracks all history. With this architecture, it gives LiveSync its signature behavior of near-instant, bidirectional sync with proper conflict detection/resolution built on CouchDB’s revision history. “Edit the same note on two devices and that revision tree is what lets it reconcile cleanly”.
    The downside is you’re running a stateful database that may need occasional upkeep (hence the Compact Databases action), and its storage grows with revision history (Should be pretty easy to manage).

  • LiveSync plugin with Garage Service (S3 like): I haven’t tried this out yet, but my
    understanding of this setup (Please correct me if I’m wrong, just based off some docs I read).
    LiveSync would sync through a bucket instead of a
    CouchDB instance, transferring changes as batched/journaled objects rather than
    over a live replication connection. In practice I’d expect that to mean coarser-
    grained, less real-time sync with weaker native conflict handling than CouchDB’s
    revision tree (no changes feed or MVCC (Multi-Version Concurrency Control) to build on).

    • Pros: Simpler set up, The Garage service is most likely more battle tested than the CouchDB service I prepared.
  • Obsidian S3 Sync and Backup: I haven’t tested this, but I reviewed some docs. I think you can configure this in different ways, like syncing on a timer, on startup, or triggering it manually. But if you’ve edited the same note on two devices while offline, it won’t merge them like the CouchDB setup; both versions would be saved as LOCAL_ and REMOTE_ copies, leaving the merging up to you.

    I think this is a good option if you want simple backups. The p2p thing sounds super interesting though. Personally it wouldn’t work for me since I don’t usually have both devices on at the same time, but that can def be a good option for some people.

Overall I wouldn’t say any one method is better than the other, just depends on what you’re looking for. I personally will prob stick with CouchDB because so far the live-sync experience is hard to beat, but I can def see why someone would try one of the other options.

Thanks for your response, very helpful.

I want to clarify - I use Nextcloud to sync Obsidian vaults between desktops/laptops. I use Syncthing to sync to my CalyxOS phone though, as Nextcloud Android’s 2-way sync still isnt functional. Conflict management is very poor with the whole system though.

Also want ro clarify that LiveSync is the plugin that offers p2p (new, experimental). I referenced it in the paragraph about the new S3 Sync plugin as I was saying its a potential reason to choose the LiveSync plugin (which can also sync to an S3 bucket) over the new S3 Sync plugin.

I’m looking foreard to trying your CouchDB service! Will report back with any feedback. Thanks again.