# StFV Backup ## Modulares Python-Startsystem Das Projekt ist jetzt in moderne, klar getrennte Module aufgeteilt: - app/app_runner.py: Orchestrierung des kompletten Startablaufs - app/venv_manager.py: .venv-Pruefung, Erstellung und Re-Exec - app/dependencies.py: requirements-Parsing und Installation fehlender Pakete - app/config_store.py: SQLite-Schema, Laden und Speichern der Konfiguration - app/setup_wizard.py: Interaktive Erfassung von Erstkonfiguration - app/security.py: Passwort-Hashing und Verifikation - app/ui.py: Frische Konsolen-Ausgabe mit klaren Statusfarben - app/paths.py: Zentrale Pfadverwaltung ### Startlogik - Start ausserhalb von .venv: automatische Erstellung und Neustart in .venv - requirements.txt wird geprueft, fehlende Pakete werden installiert - SQLite unter data/config.db wird geprueft/erstellt - Falls Konfiguration fehlt oder unvollstaendig ist, startet das Setup fuer: - IP - Port - Debug (true/false) - Adminuser - Adminpassword ### Bedeutung der Felder - IP, Port, Debug: Laufzeitkonfiguration fuer den Flask-Webserver. - Adminuser, Adminpassword: Zugangsdaten fuer den Admin-Login im Browser. Sicherheitsaspekt: - Das Passwort wird verdeckt eingegeben und ausschliesslich als PBKDF2-SHA256-Hash gespeichert. - Eine Verifikationsfunktion fuer Login-Checks ist vorbereitet. ### Browserzugriff - Nach dem Start laeuft Flask auf der konfigurierten Adresse, z. B. http://127.0.0.1:5000 - Der Root-Pfad leitet auf /login um. - Erfolgreiche Anmeldung fuehrt auf /dashboard. ### Admin-Menue Nach dem Login stehen folgende Menuepunkte bereit: - Dashboard: Liste der eingerichteten Backups mit letztem Lauf und Groesse - Neues Backup: SMB-Quelle/Ziel, Unterpfade, Target-Muster, Kompression und Verschluesselung - Server Settings: IP, Port und Debug fuer den Flask-Webserver - Admin Konto: Eigenen Admin-Benutzer und Passwort aendern - Benutzer: Neue Benutzer anlegen (optional mit Adminrechten) ### Backup-Konfiguration (aktuell) - Source/Destination starten mit einem Typ-Dropdown: SMB, LOCAL, FTP, SFTP - Je nach Typ werden nur die passenden Felder eingeblendet - Source: Verbindungs-Testbutton pro Konfiguration - Destination: Verbindungs-Testbutton pro Konfiguration - SMB Browser: Verzeichnisse fuer Source und Destination direkt durchklickbar - Target: Frei definierbares Muster, z. B. backup_{date}_{time} - Kompression: zip, tar.gz, tar.bz2, tar.xz, 7z - Archiv-Passwort: wird verschluesselt gespeichert - SMB-Passwoerter: werden verschluesselt gespeichert ### Geplante Backup-Module Das Dashboard ist auf den Ausbau fuer mehrere Zielsysteme vorbereitet: - Nextcloud - Unraid - MS SQL (z. B. auf Win11 VM) - Transport-Protokolle wie FTP, SFTP, SMB, NFS ### Service fuer direkten Browser-Test Damit der Server dauerhaft laeuft und du direkt im Browser testen kannst: ```bash ./scripts/service.sh install ./scripts/service.sh start ``` Nutzliche Befehle: ```bash ./scripts/service.sh status ./scripts/service.sh restart ./scripts/service.sh stop ./scripts/service.sh logs ./scripts/service.sh enable ``` Service-Datei im Projekt: - deploy/systemd/nextcloud-backup.service ### Start ```bash python3 main.py ```