Skip to content

๐ŸŸฃ Obsidian + LiveSync

Host: Homelab ยท Compose: Homelab/Docker/obsidian/compose.yaml
Stack name: obsidian


1. Overview

A containerised Obsidian desktop application served via a browser (KasmVNC/web-based) with CouchDB as the backend for the Self-hosted LiveSync plugin. This enables real-time vault sync across devices. Access is protected by Cloudflare Access policies.


2. Architecture & Services

Service Image Port Role
couchdb-obsidian-livesync couchdb:3.5.2 โ€” (internal) CouchDB sync database for Obsidian LiveSync
obsidian lscr.io/linuxserver/obsidian:1.12.7 โ€” (internal) Obsidian desktop app (browser-accessible via KasmVNC)

3. Networking

  • obsidian โ€” Internal bridge connecting Obsidian app and CouchDB.
  • cloudflare-net โ€” Both containers exposed via Cloudflare Tunnel:
  • obsidian.m1ckyb.com โ†’ Obsidian UI (protected by Cloudflare Access, authenticate policy, 12h session)
  • obsidian_db.m1ckyb.com โ†’ CouchDB API (for LiveSync plugin on mobile/desktop clients)

4. Persistent Storage

Container Host Path Description
couchdb-obsidian-livesync /docker/data/obsidian/couchdb-obsidian-livesync/data CouchDB document store
couchdb-obsidian-livesync /docker/data/obsidian/couchdb-obsidian-livesync/etc/local.d CouchDB config
obsidian /docker/data/obsidian/config KasmVNC / Obsidian config
obsidian /docker/data/obsidian/files Vault files

5. Environment Variables

Variable Service Description
COUCHDB_USER CouchDB Admin username (obsidian)
COUCHDB_PASSWORD CouchDB Admin password
PUID / PGID Both 1000:1000
TZ Both Australia/Sydney

6. Access & Usage

URL Description
https://obsidian.m1ckyb.com Obsidian web UI (Cloudflare Access protected)
https://obsidian_db.m1ckyb.com CouchDB for LiveSync plugin

LiveSync plugin config: - URI: https://obsidian_db.m1ckyb.com - Username: obsidian - Database: your vault name

# Start
docker compose -f Homelab/Docker/obsidian/compose.yaml up -d

# CouchDB health
curl http://obsidian:PASSWORD@localhost:5984/_up

7. Maintenance & Backup

# Update
docker compose -f Homelab/Docker/obsidian/compose.yaml pull
docker compose -f Homelab/Docker/obsidian/compose.yaml up -d

# Backup vault and CouchDB
rsync -av /docker/data/obsidian/ /backup/obsidian/