# Übersicht der Docker- und Gitea-Skripte ## Hauptskripte - **backup_docker.sh**: Erstellt ein vollständiges Backup aller Docker-Images, Volumes, Media/Staticfiles, Konfigurationsdateien und MariaDB-Dumps. Das Backup wird in einem Zeitstempel-Ordner unter `/home/thomas/backup_images/` abgelegt. - **restore_docker.sh**: Stellt ein Backup aus einem Zeitstempel-Ordner komplett wieder her (Images, Volumes, DB-Dumps, Konfigs). - **restore_menu.sh**: Interaktives Menü für alle Backup- und Restore-Funktionen (siehe unten). ## Einzelne_Restore_Scripte Alle Einzelskripte für gezielte Sicherung und Wiederherstellung liegen in `/home/thomas/scripte/Einzelne_Restore_Scripte/`: - **backup_db.sh**: Sichert gezielt einen Dump einer einzelnen Datenbank (Container). - **backup_media.sh**: Sichert gezielt die Media-Dateien eines Projekts (webshop|ssv). - **backup_staticfiles.sh**: Sichert gezielt die Staticfiles eines Projekts (webshop|ssv). - **backup_image.sh**: Sichert gezielt ein Docker-Image. - **backup_config.sh**: Sichert gezielt docker-compose.yml oder nginx.conf. - **restore_db.sh**: Stellt gezielt den Dump einer einzelnen Datenbank (Container) wieder her. - **restore_media.sh**: Stellt nur die Media-Dateien eines Projekts (webshop|ssv) wieder her. - **restore_staticfiles.sh**: Stellt nur die Staticfiles eines Projekts (webshop|ssv) wieder her. - **restore_image.sh**: Importiert gezielt ein Docker-Image aus einem Backup. - **restore_config.sh**: Stellt gezielt docker-compose.yml oder nginx.conf wieder her. ## Wartungsscripte Alle Wartungs- und Hilfsskripte liegen in `/home/thomas/scripte/Wartungsscripte/`: - **docker_cleanup.sh**: Entfernt nicht mehr verwendete Docker-Objekte (Container, Images, Volumes) nach Bestätigung. - **cleanup_old_backups.sh**: Löscht alle Backup-Ordner in `/home/thomas/backup_images/`, die älter als 14 Tage sind. - **db_dump_single.sh**: Erstellt einen SQL-Dump einer einzelnen MariaDB im laufenden Container. - **docker_logs.sh**: Zeigt die letzten 100 Zeilen der Logs eines angegebenen Containers an. - **docker_status.sh**: Zeigt alle laufenden und gestoppten Docker-Container an. ## Git & Gitea Menü - **git_gitea_menu.sh**: Interaktives Menü für lokale Git-Operationen und Gitea-API-Operationen. - **Funktionen:** - Repository klonen: Klont ein bestehendes Repo von Gitea oder einer anderen Quelle. - Status anzeigen: Zeigt den aktuellen Git-Status im aktuellen Verzeichnis. - Pull: Holt die neuesten Änderungen vom Remote-Repo. - Push: Überträgt lokale Commits ins Remote-Repo. - Branch wechseln: Wechselt oder erstellt einen Branch. - Commit: Fügt Änderungen hinzu und erstellt einen Commit. - Gitea: Repo-Liste anzeigen: Zeigt alle Repos des Users auf Gitea. - Gitea: Neues Repo anlegen: Legt ein neues Repository auf Gitea an (Repo-Name wird validiert, Leerzeichen werden ersetzt). - Gitea: Issue anzeigen: Zeigt ein Issue eines Repos an. - Gitea: Issue erstellen: Erstellt ein neues Issue in einem Repo. - **Folgen der Aktionen:** - Repo anlegen: Das neue Repo erscheint sofort auf Gitea, kann geklont und genutzt werden. - Issue erstellen: Das Issue ist sofort im Gitea-Webinterface sichtbar. - Alle Aktionen sind sofort wirksam und können nicht rückgängig gemacht werden. - Die Validierung verhindert ungültige Repo-Namen und sorgt für Kompatibilität mit Gitea. - Mit "z" kann man jederzeit zurück ins Hauptmenü. ## Nutzung des Backup & Restore Menüs Starte das Menü mit: ```bash /home/thomas/scripte/restore_menu.sh ``` Dort kannst du alle Backup- und Restore-Funktionen bequem auswählen und ausführen. Im Menü gibt es jetzt auch einen Bereich für gezielte Sicherung einzelner Bereiche (DB, Media, Static, Image, Config). Die Zurück-Funktion ("z") ist überall verfügbar. ## Erweiterte Best Practice (empfohlen) - **Offsite-Backup:** - Backups werden automatisch auf ein externes System (z.B. NAS, Cloud) kopiert. Beispiel: WD MyCloud EX2 Ultra unter 192.168.178.100. - **Benachrichtigung:** - Nach jedem Backup/Restore kann eine E-Mail oder Slack-Nachricht über Erfolg oder Fehler verschickt werden. - **Regelmäßiger Restore-Test:** - Ein Test-Restore-Skript prüft regelmäßig, ob Backups erfolgreich wiederhergestellt werden können. - **Versionsverwaltung der Skripte:** - Die Skripte selbst werden in einem Git-Repository versioniert (z.B. auf deinem Gitea-Server), um Änderungen nachverfolgen zu können.