Obsidian_vault/30 - Projects/obsidian-stack.md
2026-06-07 14:00:01 +00:00

29 lines
1.4 KiB
Markdown

---
type: project
status: completed
domain: [infra, knowledge, software]
commits: 15
period: 2026-04-26 → 2026-06-07
tags: [project, self-hosting, pkm]
---
# 🗄️ obsidian-stack — Self-Hosted Obsidian
> The infrastructure powering *this vault*. Self-hosted Obsidian with end-to-end sync and automated backup.
## Components
- **CouchDB 3.3** — LiveSync backend at `couchdb.manohargupta.com` (`require_valid_user`)
- **Ignis** (`nobbe/ignis:latest`) — real Obsidian in the browser at `notes.manohargupta.com`, vault bind-mounted at `/opt/obsidian/vaults/main`
- **Self-hosted LiveSync** plugin — CouchDB sync across desktop / web / mobile
- **Hourly cron** → git commit + push to **Forgejo** (`git.manohargupta.com:2222`)
- Deployed via **[[Self-Hosting|Dokploy]]**; reachable over Tailscale `100.75.128.45`
## Key lessons learned
- Forgejo SSH is on **port 2222** (host sshd owns 22)
- `git config --global --add safe.directory` needed (vault owned by uid 1000)
- Files created directly on disk need LiveSync **scan + unlock** before they replicate (the "remote rebuilt/corrupted" trap) → [[Self-Hosting]]
- Secrets only in Dokploy env ([[Decision Log#TD-006]])
## Outcome
Full bi-directional sync verified across web ↔ CouchDB ↔ desktop; 10 plugins installed (Dataview, Templater, Periodic Notes, Calendar, Tasks, QuickAdd, Tag Wrangler…).
## Related
[[Self-Hosting]] · [[Cortex]] · [[Operations Overview]] · [[Deployment Checklist]]