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

./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
S
Description
No description provided
Readme
258 KiB
Languages
Python 60%
HTML 39.4%
Shell 0.6%