Close Dawarich backup and egress follow-ups

This commit is contained in:
2026-06-26 10:15:46 +02:00
parent 3956ab7e75
commit a54657a365
15 changed files with 143 additions and 31 deletions
+15 -10
View File
@@ -49,6 +49,7 @@ The Unraid flash configuration archive is intentional as well and must be treate
| Filebrowser | file-backed state dump + file data | `/local/borg-dumps`, `/local/appdata/filebrowser` |
| InfluxDB 3 Core | file data | `/local/appdata/influxdb3/data`, `/local/appdata/influxdb3/plugins` |
| n8n | SQLite dump + encrypted workflow/credential state | `/local/borg-dumps`, `/local/appdata/n8n/data` |
| Dawarich | PostGIS dump + file data | `/local/borg-dumps`, `/local/appdata/dawarich` |
| Home Assistant | HA-native backup + file state | `/local/appdata/homeassistant`, `/local/services/smart-home-kalli` |
| Smart-Home MQTT / Mosquitto | file data | `/local/appdata/mosquitto/config`, `/local/appdata/mosquitto/data` |
| Zigbee2MQTT (planned) | file data + coordinator state | `/local/appdata/zigbee2mqtt`, `/local/services/smart-home-kalli` |
@@ -79,22 +80,23 @@ Filebrowser serviert `/mnt/user/projekte`, `/mnt/user/documents` und `/mnt/user/
- **`/mnt/user/projekte`** ist aktuell in **keinem** Borg-Scope. Ad-hoc-Dateien, die direkt unter `documents/` oder `photos/` (ausserhalb der genannten App-Ordner) abgelegt werden, ebenfalls nicht.
- Entscheidung Operator offen (Eintrag in `docs/MASTER_TODO.md`): Entweder `projekte` als eigenen read-only Borg-UI-Mount + Quelllisten-Eintrag aufnehmen, oder bewusst als "nur lokal, nicht DR-relevant" bestaetigen. Bis zur Entscheidung gilt: dort liegende Originaldaten sind **nicht** wiederherstellbar.
### Dawarich (Standortdaten) - noch nicht im Scope
### Dawarich (Standortdaten) - repo-seitig verdrahtet, Host-Lauf offen
Dawarich (`apps/dawarich/docker-compose.yml`) speichert hochsensible
Standort-Historie in einer eigenen PostGIS-DB unter
`/mnt/user/appdata/dawarich/{postgres17,redis,shared,public,watched,storage}`.
`docs/SERVICE_CATALOG.md` nennt als Ziel "Tier 2, Borg + `dawarich.dump`", aber:
Repo-seitig ist der Scope jetzt geschlossen:
- Es gibt **keinen** `dawarich`-Eintrag in der Service Inventory oben.
- `pre-backup-dumps.sh` erzeugt **kein** `dawarich.dump` (PostGIS-`pg_dump`).
- Die Quellliste (`all-important-sources.txt`) enthaelt **keinen**
`/local/appdata/dawarich`-Pfad, und Borg-UI mountet ihn nicht.
- `pre-backup-dumps.sh` erzeugt `dawarich.dump` aus `dawarich_db`.
- `all-important-sources.txt` enthaelt `/local/appdata/dawarich`.
- Borg-UI sieht den Pfad ueber den bestehenden read-only Mount
`/mnt/user/appdata:/local/appdata:ro`.
Konsequenz: Standortdaten sind aktuell **nicht** DR-gesichert. Schliessen
(Operator + Host): `dawarich.dump` in `pre-backup-dumps.sh` (PostGIS), Pfad in
Quellliste + Borg-UI-Mount + diese Tabelle aufnehmen, danach `RESTORE_MATRIX.md`
Tier-2-Zeile + Reifegrad ergaenzen. Tracking: `docs/MASTER_TODO.md`.
Offen bleibt der erste Host-Lauf: auf Unraid `pre-backup-dumps.sh` ausfuehren,
Vorhandensein/Frische von `/mnt/user/backups/borg/dumps/latest/dawarich.dump`
pruefen und danach einen Restore-Smoke in einer isolierten PostGIS-17-Instanz
terminieren. Bis dieser Host-Beleg existiert, ist der Status "verdrahtet, noch
nicht restore-validiert".
### Komodo keys
@@ -113,6 +115,7 @@ Production still stores Komodo Core/Periphery keys in the Docker named volume `k
- `mealie`
- `immich`
- `nextcloud`
- `dawarich`
### Other Databases
@@ -129,6 +132,8 @@ Production still stores Komodo Core/Periphery keys in the Docker named volume `k
- `/mnt/user/appdata/mealie/postgres18`
- `/mnt/user/appdata/immich_postgres_vectorchord`
- `/mnt/user/appdata/nextcloud/postgres18`
- `/mnt/user/appdata/dawarich/postgres17`
- `/mnt/user/appdata/dawarich/redis`
- `/mnt/user/appdata/komodo/mongo`
- `/mnt/user/appdata/redis`
- `/mnt/user/appdata/scrutiny/influxdb`
+1
View File
@@ -21,6 +21,7 @@
/local/appdata/nextcloud/html
/local/nextcloud/data
/local/appdata/n8n/data
/local/appdata/dawarich
/local/appdata/filebrowser
/local/appdata/influxdb3/data
/local/appdata/influxdb3/plugins
+9
View File
@@ -314,6 +314,15 @@ main() {
warn "Skipping missing container: nextcloud-postgres"
fi
if need_container "dawarich_db"; then
dawarich_password="$(cat /mnt/user/appdata/secrets/dawarich_postgres_password.txt)"
dawarich_user="$(docker exec dawarich_db sh -lc 'printf "%s" "${POSTGRES_USER:-dawarich}"')"
dawarich_db="$(docker exec dawarich_db sh -lc 'printf "%s" "${POSTGRES_DB:-dawarich_production}"')"
dump_pg_db "dawarich_db" "$dawarich_password" "$dawarich_user" "$dawarich_db" "$LATEST_DIR/dawarich.dump"
else
warn "Skipping missing container: dawarich_db"
fi
# SQLite databases
dump_sqlite_container "gitea" "/data/gitea/gitea.db" "$LATEST_DIR/gitea.sqlite.dump" "/mnt/user/services/gitea/data/gitea/gitea.db"
dump_sqlite_container "vaultwarden" "/data/db.sqlite3" "$LATEST_DIR/vaultwarden.sqlite.dump" "/mnt/user/appdata/vaultwarden/db.sqlite3"