3.1 KiB
3.1 KiB
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:
./scripts/service.sh install
./scripts/service.sh start
Nutzliche Befehle:
./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
python3 main.py