Da ich die Portainer Community Edition zur Verwaltung meiner Container verwende, konnte ich keine nützlichen Funktionen finden. Daher musste ich Immich aus Portainer entfernen und es in Qnap Container Station neu bereitstellen. Der Rest des Prozesses wird mit Shell-Skripten und Qnap-Speichersnapshots durchgeführt. Die Skripte werden über crontab geplant ausgeführt. Hier sind die Skripte und die einzelnen Schritte:
1. Skript zum Stoppen des Immich-Stacks erstellen:
#!/bin/bash
#
# Stoppt Container, um einen QNAP-Snapshot zu erstellen
#
# PATH setzen, damit das QNAP-Docker-Binary gefunden wird
export PATH=/share/ZFS530_DATA/.qpkg/container-station/bin:$PATH
export HOME=/root
# Optional: Vollständigen Pfad verwenden, um 100% sicher zu sein
DOCKER_BIN=/share/ZFS530_DATA/.qpkg/container-station/bin/docker
# Alle Immich-Container stoppen
$DOCKER_BIN stop $($DOCKER_BIN ps -q --filter "name=Immich")
2. Skript zum Starten des Immich-Stacks erstellen:
#!/bin/bash
#
# Stoppt Container, um einen QNAP-Snapshot zu erstellen
#
# PATH setzen, damit das QNAP-Docker-Binary gefunden wird
export PATH=/share/ZFS530_DATA/.qpkg/container-station/bin:$PATH
export HOME=/root
# Optional: Vollständigen Pfad verwenden, um 100% sicher zu sein
DOCKER_BIN=/share/ZFS530_DATA/.qpkg/container-station/bin/docker
# Alle Immich-Container starten
$DOCKER_BIN start $($DOCKER_BIN ps -a -q --filter "name=Immich")
Falls du das Bridge-Netzwerk zum Immich-Server-Container hinzufügen musst, damit er über Cloudflare erreichbar ist, füge Folgendes ans Ende des Startskripts hinzu:
# 30 Sekunden warten
sleep 30
# Bridge-Netzwerk zum Immich-Server-Container hinzufügen
$DOCKER_BIN network connect bridge Immich-Server
3. Crontab-Eintrag für die Stop- und Startskripte erstellen:
0 1 * * * /bin/sh /share/Scripts/Qnap/stop_containers.sh >> /share/Scripts/Logs/crontab_stop_container.log 2>&1
5 1 * * * /bin/sh /share/Scripts/Qnap/start_containers.sh >> /share/Scripts/Logs/crontab_start_container.log 2>&1
4. Einen geplanten Snapshot erstellen, der zeitlich zu den Start-/Stop-Skripten im Crontab passt
Optional: Repliziere deinen Snapshot auf ein anderes NAS.
Ich hoffe, das ist für jemanden hilfreich. 