diff --git a/stacks/obsidian-livesync/README.md b/stacks/obsidian-livesync/README.md new file mode 100644 index 0000000..35b1a9c --- /dev/null +++ b/stacks/obsidian-livesync/README.md @@ -0,0 +1,89 @@ +# Obsidian LiveSync + +📝 Self-hosted Obsidian Sync mit CouchDB + +## Deploy in Komodo + +**Pfad:** `stacks/obsidian-livesync/` + +## Secrets + +- `OBSIDIAN_USER` - CouchDB Username (Default: `obsidian`) +- `OBSIDIAN_PASSWORD` - CouchDB Password (openssl rand -base64 48) + +## Ports + +- `5984` - CouchDB API & Fauxton UI + +## Caddy + +```caddyfile +obsidian.komodo.nocci.it { + reverse_proxy localhost:5984 +} +``` + +## Obsidian Plugin Setup + +1. **Plugin installieren:** + - In Obsidian: Settings → Community Plugins → Browse + - Suche: **"Self-hosted LiveSync"** + - Installieren & Aktivieren + +2. **Plugin konfigurieren:** + - Settings → Self-hosted LiveSync + - **CouchDB URI:** `https://obsidian.komodo.nocci.it` + - **Username:** Wie in `OBSIDIAN_USER` gesetzt + - **Password:** Wie in `OBSIDIAN_PASSWORD` gesetzt + - **Encrypt:** Optional (empfohlen für E2E-Verschlüsselung) + +3. **Vault synchronisieren:** + - Plugin führt initiales Setup durch + - Erstellt CouchDB-Datenbank automatisch + - Sync startet automatisch + +## Features + +- ✅ **Echtzeit-Sync** zwischen allen Geräten +- ✅ **Konflikt-Auflösung** (auto-merge) +- ✅ **E2E-Verschlüsselung** optional +- ✅ **Settings/Plugins Sync** möglich +- ✅ **Kostenlos** - kein $5/Monat Abo + +## Fauxton UI (CouchDB Dashboard) + +Zugriff auf die CouchDB Admin-Oberfläche: + +``` +http://localhost:5984/_utils +``` + +Login mit den gleichen Credentials. + +## Backup + +Daten liegen in Docker Volume `obsidian_data`. + +Backup-Pfad (typisch): +``` +/var/lib/docker/volumes/obsidian-livesync_obsidian_data/_data +``` + +## Troubleshooting + +**Sync funktioniert nicht:** +- Cloudflare Tunnel läuft? +- Credentials korrekt? +- Plugin auf "Sync enabled" gesetzt? + +**CouchDB nicht erreichbar:** +```bash +docker logs obsidian-livesync +docker exec obsidian-livesync curl http://localhost:5984/_up +``` + +## Links + +- [Obsidian LiveSync Plugin](https://github.com/vrtmrz/obsidian-livesync) +- [Docker Image](https://github.com/oleduc/docker-obsidian-livesync-couchdb) +- [Offizielle Docs](https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/settings.md) diff --git a/stacks/obsidian-livesync/compose.yml b/stacks/obsidian-livesync/compose.yml new file mode 100644 index 0000000..0ab2ec4 --- /dev/null +++ b/stacks/obsidian-livesync/compose.yml @@ -0,0 +1,27 @@ +services: + obsidian-livesync: + image: oleduc/docker-obsidian-livesync-couchdb:latest + container_name: obsidian-livesync + restart: unless-stopped + ports: + - "127.0.0.1:5984:5984" + volumes: + - obsidian_data:/opt/couchdb/data + environment: + - COUCHDB_USER=${OBSIDIAN_USER:-obsidian} + - COUCHDB_PASSWORD=${SECRET:obsidian-password} + networks: + - obsidian-network + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:5984/_up"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 15s + +volumes: + obsidian_data: + +networks: + obsidian-network: + driver: bridge diff --git a/stacks/obsidian-livesync/stack.toml b/stacks/obsidian-livesync/stack.toml new file mode 100644 index 0000000..a121a24 --- /dev/null +++ b/stacks/obsidian-livesync/stack.toml @@ -0,0 +1,4 @@ +[[stacks]] +name = "obsidian-livesync" +description = "Self-hosted Obsidian Sync (CouchDB + LiveSync Plugin)" +compose_path = "compose.yml"