2026-07-29 17:36:22 +02:00
|
|
|
# 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
|
|
|
|
|
```
|
2026-07-27 00:34:40 +02:00
|
|
|
|