Betrieb, Updates und Backup
Status und Logs
cd /opt/ntfy-downloader
docker compose -f compose.image.yaml ps
docker compose -f compose.image.yaml logs -f
Nur einen Dienst verfolgen:
docker compose -f compose.image.yaml logs -f ntfy-downloader
docker compose -f compose.image.yaml logs -f ntfy-webui
Beide Container besitzen Healthchecks. healthy bedeutet:
- Listener: Konfiguration, Downloadpfad und SQLite-Jobqueue sind verwendbar.
- Web-UI:
/healthz, Downloadpfad, Thumbnail- und Metadatenpfad sind verwendbar.
Reproduzierbares Update
- Erfolgreichen Forgejo-Build abwarten.
- Vollständigen Commit-SHA in
.enveintragen. - Konfiguration validieren und Image laden.
- Container neu erstellen.
cd /opt/ntfy-downloader
sed -i 's/^NTFY_DOWNLOADER_IMAGE_TAG=.*/NTFY_DOWNLOADER_IMAGE_TAG=<SHA>/' .env
docker compose -f compose.image.yaml config -q
docker compose -f compose.image.yaml pull
docker compose -f compose.image.yaml up -d
docker compose -f compose.image.yaml ps
latest ist bequem, aber nicht reproduzierbar. Ein SHA zeigt jederzeit exakt,
welcher Quellstand läuft.
Stoppen und Starten
docker compose -f compose.image.yaml stop
docker compose -f compose.image.yaml start
Container und Projektnetz entfernen, Daten behalten:
docker compose -f compose.image.yaml down
docker compose -f compose.image.yaml up -d
Die externen Volumes ntfy-downloader_ntfy-state und
ntfy-downloader_ntfy-thumbs bleiben selbst bei down -v erhalten.
ntfy-metadata wird von Compose verwaltet und darf nicht mit down -v
gelöscht werden, wenn Tags erhalten bleiben sollen.
Persistente Daten
| Daten | Speicherort |
|---|---|
| Videos, Clips, GIFs, WhatsApp-MP4s | Hostpfad aus DOWNLOAD_DIR |
| Jobqueue und ntfy-Cursor | Volume ntfy-downloader_ntfy-state |
| Thumbnail-Cache | Volume ntfy-downloader_ntfy-thumbs |
| Video-Tags | Volume ntfy-downloader_ntfy-metadata |
| Konfiguration und Secrets | /opt/ntfy-downloader/.env |
Der Thumbnail-Cache ist wiederherstellbar. Jobqueue, Tags, .env und Videos
sind dagegen fachlich relevant.
Backup
Vor einem konsistenten Backup die Container kurz stoppen:
docker compose -f compose.image.yaml stop
Volumes als Tar-Archive sichern:
docker run --rm \
-v ntfy-downloader_ntfy-state:/source:ro \
-v /opt/ntfy-downloader/backups:/backup \
alpine tar -C /source -czf /backup/ntfy-state.tgz .
docker run --rm \
-v ntfy-downloader_ntfy-metadata:/source:ro \
-v /opt/ntfy-downloader/backups:/backup \
alpine tar -C /source -czf /backup/ntfy-metadata.tgz .
Zusätzlich sichern:
.envmit restriktiven Dateirechtencompose.image.yaml- das gesamte
DOWNLOAD_DIRoder dessen Storage-Snapshots
Danach Dienste wieder starten:
docker compose -f compose.image.yaml start
Wiederherstellung
- Externe Volumes anlegen.
- Archive in leere Volumes entpacken.
- Downloadverzeichnis und
.envwiederherstellen. - Passenden Image-SHA setzen.
docker compose ... up -dausführen.- Healthchecks, Logs, Tags und einen Testdownload kontrollieren.
Docker-Bereinigung
Vor dem Löschen immer aktive Referenzen prüfen:
docker system df -v
docker image ls
docker volume ls
docker ps -a
Alte SHA-Images können entfernt werden, wenn kein Container sie verwendet. Keine pauschale Volume-Bereinigung ausführen, solange Zweck und Backup eines Volumes nicht geklärt sind.