Dieses Projekt stellt ein leistungsstarkes Backup-, Restore- und Migrationssystem für Docker-Projekte auf UGREEN NAS mit UGOS bereit.
✔ Backup von Docker-Containern und Projekten ✔ Restore mit UGOS-Docker-App-Integration ✔ Migration auf ein anderes UGREEN NAS ✔ Unterstützung für Standalone-Container ✔ Optionale SCP-Remote-Sicherung ✔ Pfad-Remapping für NAS-Umzüge ✔ E-Mail-Benachrichtigungen ✔ Cronjob-Unterstützung ✔ Shutdown Unterstützung nach Abschluss ✔ Deutsch & Englisch
v1.00/
├── DockerBackup/
│ ├── backup-exclude-paths.txt
│ ├── dockersich.env.example
│ ├── path-remap.tsv
│ ├── ugreen-docker-backup.sh
│ └── ugreen-docker-restore.sh
│
├── Screen/
│ └── DockerBackupPack.png
│
├── README.md
├── CHANGELOG.md
└── UGREEN_Docker_BR_DE_EN.pdf
Lege in der UGOS-App Dateien eine Freigabe mit dem Namen DockerBackup an.
Beispiel:
/volume2/DockerBackup
Hinweise:
- Papierkorb für diese Freigabe deaktiviert lassen
- Prüfen, dass Administratoren Lese- und Schreibrechte haben
- Das Volume kann auch ein anderes sein, zum Beispiel
/volume1oder/volume3
Kopiere den Inhalt aus:
DockerBackup/
nach:
/volume2/DockerBackup
cd /volume2/DockerBackup
cp dockersich.env.example dockersich.env
chmod +x ugreen-docker-backup.sh ugreen-docker-restore.shDatei:
/volume2/DockerBackup/dockersich.env
Für den ersten Test sollten Einsteiger vor allem diese Werte prüfen:
LANGUAGE=de
HOST_LABEL="UGREEN NAS"
SOURCE_DIR=auto
BACKUP_DIR=/volume2/DockerBackup
SEND_MAIL=false
DRY_RUN=trueWichtige Hinweise:
SOURCE_DIR=autoerkennt den Docker-Projektordner automatischDOCKER_ROOT_DIR=autoerkennt das Docker-Datenverzeichnis automatischUGOS_DOCKER_DB=autoerkennt die UGOS-Docker-Datenbank automatischDRY_RUN=trueist für den ersten Restore-Test empfehlenswert
LANGUAGE= Sprache für Ausgaben, Logs und Mails (deoderen)HOST_LABEL= Anzeigename des NAS in Logs und MailsSOURCE_DIR= Docker-Projektordner, meist automatisch erkanntBACKUP_DIR= Zielordner für Archive, Logs und temporäre DateienTEMP_DIR= temporärer ArbeitsordnerLOG_DIR= Ordner für Backup- und Restore-Logs
BACKUP_ALL_PROJECTS=true= alle erkannten Docker-Projekte sichernINCLUDE_PROJECTS= nur bestimmte Projekte sichernEXCLUDE_PROJECTS= Projekte vom Backup ausschließenBACKUP_STANDALONE_CONTAINERS=true= Container ohne Compose-Projekt mit sichernSTOP_CONTAINERS=true= laufende Container vor dem Backup kurz stoppenBACKUP_EXCLUDE_PATHS_FILE=backup-exclude-paths.txt= Ausschlussliste für große Cache-Ordner
BACKUP_IMAGES=false= Docker-Images zusätzlich sichernBACKUP_NAMED_VOLUMES=false= Named Volumes zusätzlich sichernBACKUP_EXTERNAL_BINDS=false= externe Bind-Mounts zusätzlich sichern
DRY_RUN=true= Restore erst nur simulierenRESTORE_ALL_PROJECTS=false= gezielter Restore statt alles zurückspielenRESTORE_PROJECTS= nur bestimmte Projekte wiederherstellenRESTORE_OVERWRITE_EXISTING=false= vorhandene Zielordner nicht überschreibenRESTORE_STANDALONE_CONTAINERS=true= Standalone-Container ebenfalls wiederherstellenENABLE_PATH_REMAP=true= Pfade beim Umzug auf ein anderes NAS anpassenPATH_REMAP_FILE=path-remap.tsv= Datei mit Quell- und ZielpfadenUPDATE_UGOS_DOCKER_DB=true= UGOS-Docker-App-Datenbank aktualisierenREFRESH_UGOS_DOCKER_APP=true= Docker-App-Dienst nach Restore aktualisieren
SEND_MAIL=true|false= Mailbenachrichtigungen aktivieren oder deaktivierenMAIL_NOTIFY_ON=all|success|fail|none= wann Mails verschickt werdenENABLE_REMOTE_BACKUP=true|false= Archiv zusätzlich per SCP auf ein anderes System kopierenREMOTE_HOST,REMOTE_USER,REMOTE_PORT,REMOTE_PATH= Zielsystem für Remote-Backups
cd /volume2/DockerBackup
./ugreen-docker-backup.shDas Skript:
- erkennt Docker-Pfade automatisch
- wählt die Projekte anhand der Konfiguration aus
- stoppt auf Wunsch laufende Container kurz
- erstellt ein komprimiertes Archiv
- startet zuvor laufende Container wieder
- verschickt optional Statusmails
Restore immer zuerst mit Dry-Run testen:
cd /volume2/DockerBackup
./ugreen-docker-restore.sh /volume2/DockerBackup/ugreen-docker-backup_YYYY-MM-DD_HH-MM-SS.tar.gzFür den ersten Test in dockersich.env:
DRY_RUN=trueFür einen echten Restore später:
DRY_RUN=falseDanach fragt das Skript zur Sicherheit nach der Eingabe:
RESTORE
Das Paket eignet sich auch, um Docker-Projekte auf ein anderes UGREEN NAS umzuziehen.
Typischer Ablauf:
- Backup auf dem Quell-NAS erstellen
- Archiv auf das Ziel-NAS kopieren
- Falls nötig
path-remap.tsvanpassen - Restore auf dem Ziel-NAS ausführen
- UGOS-Docker-App-Abgleich automatisch durchführen lassen
Damit können Projektordner, Compose-Projekte und auf Wunsch weitere Inhalte sauber auf das Zielsystem übernommen werden.
Container ohne Compose-Projektlabel werden auf Wunsch automatisch als eigenes Projekt gesichert.
Beispiel:
ubuntu-1 -> standalone_ubuntu-1
Beim Restore wird daraus wieder ein Compose-Projekt erzeugt und in die UGOS-Docker-App integriert.
crontab -eBeispiel:
30 3 * * 0 cd /volume2/DockerBackup && /volume2/DockerBackup/ugreen-docker-backup.sh >> /volume2/DockerBackup/cron.log 2>&1➡️ Läuft jeden Sonntag um 03:30 Uhr
- Backup aller oder ausgewählter Docker-Projekte
- Restore einzelner oder mehrerer Projekte
- Migration auf ein anderes UGREEN NAS
- Automatische Erkennung von Docker-Pfaden
- Restore mit UGOS-Docker-App-Abgleich
- Unterstützung für Standalone-Container
- Ausschlusslisten für große Cache-Ordner
- Optionales Backup von Images, Named Volumes und externen Bind-Mounts
- SCP-basierte Remote-Sicherung
- Path-Remapping für abweichende Zielpfade
- E-Mail bei Start, Erfolg und Fehler
- Logging und Cronjob-Betrieb
Enthalten im Repository:
UGREEN_Docker_BR_DE_EN.pdf
UGREEN_Docker_BR_DE_EN.docx
Das Handbuch enthält die vollständige Schritt-für-Schritt-Anleitung für Installation, Konfiguration, Backup, Restore und Migration.
| Problem | Lösung |
|---|---|
| Skript startet nicht | chmod +x prüfen |
| Keine Mail | SMTP-Daten und MAIL_NOTIFY_ON prüfen |
| Keine Projekte ausgewählt | BACKUP_ALL_PROJECTS, INCLUDE_PROJECTS und EXCLUDE_PROJECTS prüfen |
| Archiv wird sehr groß | backup-exclude-paths.txt prüfen und Cache-Pfade ausschließen |
| Restore erscheint nicht in UGOS | REFRESH_UGOS_DOCKER_APP=true nutzen oder Projekt in UGOS neu bereitstellen |
scp schlägt fehl |
bei manuellen Tests scp -O verwenden |
Dieses Projekt ist eine Community-Lösung und kein offizielles UGREEN-Produkt. Verwendung auf eigene Verantwortung.
Roman Glos
UGREEN NAS Community
Wenn dir das Projekt gefällt:
- Star ⭐ auf GitHub
- Feedback ist willkommen
- Verbesserungsvorschläge und Praxistests helfen dem Projekt weiter
