This commit is contained in:
2026-01-25 15:14:13 +01:00
parent 2b5a510e30
commit ed786daa9a

108
README.md
View File

@@ -12,10 +12,7 @@ Optional kann das Ergebnis zusätzlich als `tar.gz` archiviert werden.
- Backup **aller Portainer Stacks**
- Export der **aktuellen** `docker-compose.yml` je Stack
- Ruhige, übersichtliche Konsolen-Ausgabe
- Vollständiges Logfile (`backup.log`)
- Optionales `tar.gz`-Archiv
- Automatisches Aufräumen bei Archiv-Erstellung
- Geeignet für:
- manuelle Nutzung
- Cronjobs
@@ -34,22 +31,11 @@ Auf dem System müssen folgende Tools vorhanden sein:
| `jq` | ja |
| `tar` | **nur wenn** `CREATE_ARCHIVE=1` |
Getestet u. a. mit:
- Fedora
- Debian / Ubuntu
- Proxmox Host
---
## Installation
Repository klonen oder Skript manuell ablegen:
```bash
git clone <dein-repo>
cd shell_portainer_stack_backup
```
Skript ausführbar machen:
```bash
@@ -72,7 +58,7 @@ PORTAINER_URL="https://192.168.178.25:9443"
API_KEY="ptr_xxxxxxxxxxxxxxxxxxxxxx"
# Base output directory
OUT_DIR="/home/thorsten/Schreibtisch/Backup"
OUT_DIR="/home/thorsten/Portainer_Backup"
# Create archive?
# 1 = create tar.gz and remove directory afterwards
@@ -80,84 +66,6 @@ OUT_DIR="/home/thorsten/Schreibtisch/Backup"
CREATE_ARCHIVE=1
```
**Hinweis:**
- API-Keys niemals ins Git-Repository committen
- Empfohlene Rechte:
```bash
chmod 600 settings.env
```
---
## Nutzung
```bash
./shell_portainer_stack_backup.sh
```
Beispiel-Ausgabe:
```
Portainer Stack Backup started
Target: /home/thorsten/Schreibtisch/Backup/portainer-stack-backup-2026-01-25_15-00-00
Portainer reachable
API key valid
Stacks found: 57
Starting backup
[OK] jellyfin
[OK] paperless
[FAIL] test-stack
Backup finished: OK=56 FAIL=1
Archive created: portainer-stack-backup-2026-01-25_15-00-00.tar.gz
Cleanup done: removed /home/thorsten/Schreibtisch/Backup/portainer-stack-backup-2026-01-25_15-00-00
Done.
```
---
## Ergebnisstruktur
### Wenn `CREATE_ARCHIVE=0`
```
portainer-stack-backup-YYYY-MM-DD_HHMMSS/
├── backup.log
└── stacks/
├── jellyfin/
│ ├── docker-compose.yml
│ └── meta.json
└── paperless/
├── docker-compose.yml
└── meta.json
```
### Wenn `CREATE_ARCHIVE=1`
```
portainer-stack-backup-YYYY-MM-DD_HHMMSS.tar.gz
```
(Der temporäre Ordner wird nach erfolgreicher Archiv-Erstellung gelöscht.)
---
## Logfile
Während der Laufzeit wird **jede Ausgabe** gleichzeitig:
- im Terminal angezeigt
- in `backup.log` gespeichert
Das Logfile liegt:
- bei `CREATE_ARCHIVE=0` im Backup-Ordner
- bei `CREATE_ARCHIVE=1` im Archiv
---
## Hinweise & Einschränkungen
- Das Skript sichert **nur die Stack-Definitionen**, **keine Volumes / Daten**
@@ -167,17 +75,3 @@ Das Logfile liegt:
- Zugriff auf das jeweilige Endpoint
---
## Typische Einsatzszenarien
- Versionierung von Compose-Files in Git
- Dokumentation der aktuellen Portainer-Konfiguration
- Vorbereitung für Migration / Rebuild
- Regelmäßige Sicherung per Cron
---
## Lizenz
Privates / internes Tool
Keine Garantie Nutzung auf eigene Verantwortung.