feat(notes): add Obsidian livesync stack (CouchDB) + Caddy entry
stacks/notes/: new stack with CouchDB 3 for obsidian-livesync sync backend. Vault data at /config/couchdb/data; CORS must be configured post-deploy via Fauxton (/_utils). Claude integration via CouchDB REST API documented in compose comments. Caddyfile: obsidian.ginnoir.com → couchdb:5984 (public for mobile sync).
This commit is contained in:
@@ -272,3 +272,10 @@ plane.ginnoir.com {
|
|||||||
reverse_proxy plane_web:3000
|
reverse_proxy plane_web:3000
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# =============================================================
|
||||||
|
# NOTES / PKM — public (obsidian-livesync syncs from any device)
|
||||||
|
# =============================================================
|
||||||
|
obsidian.ginnoir.com {
|
||||||
|
reverse_proxy couchdb:5984
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
# notes stack — personal knowledge base / PKM backbone.
|
||||||
|
#
|
||||||
|
# CouchDB powers obsidian-livesync for real-time Obsidian vault sync
|
||||||
|
# across all devices. Vault data lives at /config/couchdb/data on SSD.
|
||||||
|
#
|
||||||
|
# POST-DEPLOY (one-time setup):
|
||||||
|
# 1. Open https://obsidian.ginnoir.com/_utils and sign in as admin.
|
||||||
|
# 2. Settings → CORS → Enable CORS, add origins:
|
||||||
|
# app://obsidian.md
|
||||||
|
# capacitor://localhost
|
||||||
|
# http://localhost
|
||||||
|
# 3. In Obsidian: install the "Self-hosted LiveSync" plugin,
|
||||||
|
# point it at https://obsidian.ginnoir.com with your creds.
|
||||||
|
# 4. Let the setup wizard create the 'obsidian' database.
|
||||||
|
#
|
||||||
|
# Claude integration:
|
||||||
|
# The CouchDB REST API is the read/write surface for the vault.
|
||||||
|
# All notes are docs in the 'obsidian' database.
|
||||||
|
# GET https://obsidian.ginnoir.com/obsidian/_all_docs?include_docs=true
|
||||||
|
# returns all notes; each doc has a 'data' field with the markdown content.
|
||||||
|
|
||||||
|
services:
|
||||||
|
couchdb:
|
||||||
|
container_name: couchdb
|
||||||
|
image: couchdb:3
|
||||||
|
restart: unless-stopped
|
||||||
|
networks: [notes, edge]
|
||||||
|
environment:
|
||||||
|
COUCHDB_USER: ${COUCHDB_USER}
|
||||||
|
COUCHDB_PASSWORD: ${COUCHDB_PASSWORD}
|
||||||
|
volumes:
|
||||||
|
- /config/couchdb/data:/opt/couchdb/data
|
||||||
|
- /config/couchdb/etc:/opt/couchdb/etc/local.d
|
||||||
|
ports:
|
||||||
|
- "5984:5984"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
notes:
|
||||||
|
name: notes
|
||||||
|
driver: bridge
|
||||||
|
edge:
|
||||||
|
name: edge
|
||||||
|
external: true
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# notes stack secrets — CouchDB for Obsidian livesync
|
||||||
|
|
||||||
|
# CouchDB admin credentials.
|
||||||
|
# Used by: obsidian-livesync plugin, CouchDB Fauxton admin UI at /_utils.
|
||||||
|
COUCHDB_USER=admin
|
||||||
|
COUCHDB_PASSWORD=couchdb_obs_p4ss_7x9k
|
||||||
Reference in New Issue
Block a user