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:
@@ -271,4 +271,11 @@ plane.ginnoir.com {
|
||||
handle {
|
||||
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