- Dankserver stack: RomM, Copyparty, Calibre-Web, node-exporter - Dankclaw stack: Gluetun VPN (SearXNG tunnel), SearXNG+Valkey, ComfyUI (CPU backend), OpenWebUI, Hermes, Gitea+Postgres (migrated), Caddy reverse proxy, Grafana+Prometheus+Loki+Alloy observability - Caddyfiles with .local hostname convention and basicauth homepage - bind-mount storage policy, no named volumes - deploy.sh mirroring vllmScripts git workflow (push -> pull -> restart -> health) - docs/ Obsidian vault: per-service docs from frank-default-small research subagents (promtail EOL -> Alloy; gitea SECRET_KEY preservation; ComfyUI --cpu) - bats test suite at 6 seams — 22 tests green
1.2 KiB
1.2 KiB
Backblaze Integration
Off-site backup plan for the bind-mounted data on both hosts. Deferred: research only, not implemented yet.
Goal
Back up critical data to Backblaze B2:
- Calibre library (Dankserver)
- ComfyUI models (Dankclaw)
- Gitea data, repos, DB (Dankclaw)
- Homepage/stack configs (this repo — already versioned in git)
Approach (research direction)
| Option | Fit |
|---|---|
restic + B2 |
Best fit: dedupe, encryption, snapshots, low cost. Single static binary, works with podman host. |
borg + borgbase |
Alternative; borgbase is more expensive per TB than B2. |
| rclone + B2 | Good for file sync, no snapshot/dedupe semantics. |
| podman volume driver for B2 | Niche, immature. Not recommended. |
Shape of the Implementation (future)
scripts/backup.shon each host, run by systemd timer or cron.restic -r b2:bucket:path backup /opt/...RESTIC_PASSWORDin the host.env, never in the repo.- Restore procedure documented once the backup job exists.
Next Steps
- Create a B2 bucket + application key.
- Draft
scripts/backup.shand a systemd timer unit. - Run a test restore.
See Also
- Storage Policy — what gets backed up
- Gitea — the existing backup procedure (tar / pg_dump)