Skip to content

Scrat-Backup ist ein Open-Source-Backup-Tool, das speziell für Windows-Privatnutzer entwickelt wurde. Wie ein Eichhörnchen seine Eicheln für den Winter sichert, schützt Scrat-Backup deine wertvollen Daten mit verschlüsselten, komprimierten Backups. 🇩🇪

License

Notifications You must be signed in to change notification settings

nicolettas-muggelbude/Scrat-Backup

Repository files navigation

Scrat-Backup Logo

🐿️ Scrat-Backup

Schütze deine Daten wie Scrat seine Eicheln!

Ein benutzerfreundliches, verschlüsseltes Backup-Programm für Windows-Privatnutzer

License: GPL v3 Python 3.12+ Development Status Platform

FeaturesInstallationVerwendungEntwicklungRoadmapBeitragen


📋 Übersicht

Scrat-Backup ist ein Open-Source-Backup-Tool, das speziell für Windows-Privatnutzer entwickelt wurde. Wie ein Eichhörnchen seine Eicheln für den Winter sichert, schützt Scrat-Backup deine wertvollen Daten mit verschlüsselten, komprimierten Backups.

🎯 Für wen ist Scrat-Backup?

  • 👨‍💼 Privatnutzer ohne tiefe technische Kenntnisse
  • 🏠 Heimanwender mit wichtigen Dokumenten, Fotos, Videos
  • 🔒 Sicherheitsbewusste die Verschlüsselung schätzen
  • 💾 Multi-Storage-Nutzer (USB, NAS, Cloud)

✨ Features

🔐 Sicherheit

  • AES-256-GCM Verschlüsselung für alle Backups (Pflicht!)
  • PBKDF2 Key-Derivation (100.000 Iterationen)
  • Windows Credential Manager Integration (Passwort speichern)
  • Kein Plaintext - sensible Daten immer verschlüsselt

💾 Backup-Funktionen

  • Vollbackups und Inkrementelle Backups
  • Versionierung (3 Versionen, konfigurierbar)
  • Automatische Rotation alter Backups
  • Komprimierung mit 7z (effizient & schnell)
  • Exclude-Patterns (z.B. *.tmp, node_modules/)
  • Progress-Tracking mit Speed (MB/s) und ETA

🗄️ Storage-Backends (5 Optionen!)

  • 💾 USB / Lokale Laufwerke - mit automatischer Laufwerk-Erkennung
  • 🌐 SFTP (SSH) - für Remote-Server
  • ☁️ WebDAV - Nextcloud, ownCloud, SharePoint
  • 🚀 Rclone - 40+ Cloud-Provider (Google Drive, Dropbox, OneDrive, S3, etc.)
  • 🏢 SMB/CIFS - Windows-Netzwerkfreigaben, NAS-Geräte

🔄 Wiederherstellung

  • Einzelne Dateien oder komplette Backups
  • Zeitpunkt-Wiederherstellung (Version wählen)
  • Vorschau der Backup-Inhalte
  • Wiederherstellung auf beliebigen Systemen (unabhängig vom Original-User)

🖥️ Benutzeroberfläche

  • Windows 11-Stil GUI (PyQt6)
  • Setup-Wizard für Erstkonfiguration (komplett auf Deutsch!)
    • Persönliche Ordner (Dokumente, Bilder, Musik, Videos, Desktop, Downloads)
    • Automatische Laufwerk-Erkennung
    • Alle 5 Storage-Backends integriert
  • Backup-Tab mit Quellen/Ziele-Auswahl
  • Restore-Tab mit Backup-Details
  • Settings-Tab mit umfassenden Konfigurationen
  • Logs-Tab für Fehlersuche

⏰ Automatisierung & Scheduler

  • Zeitpläne erstellen (Täglich, Wöchentlich, Monatlich, bei Start/Shutdown)
  • Scheduler-Worker läuft im Hintergrund (prüft alle 60 Sekunden)
  • Automatische Backup-Ausführung zu geplanten Zeiten
  • Missed-Backup-Detection (erkennt verpasste Backups)
  • "Nächster Lauf"-Anzeige für jeden Zeitplan
  • System Tray Integration mit Notifications
  • Pause/Resume für Scheduler

🚀 Status

Aktuell: Beta v0.2.0 - Ready for Testing! 🎉

✅ Abgeschlossen

  • Phase 1-5: Core-Module (Backup/Restore-Engine, Verschlüsselung, Komprimierung)
  • Phase 6-9: GUI (Hauptfenster, Wizard, Settings, Tabs)
  • Phase 10: Scheduler & Automatisierung
    • Zeitpläne (Täglich, Wöchentlich, Monatlich)
    • Scheduler-Worker läuft im Hintergrund
    • Missed-Backup-Detection
    • "Nächster Lauf"-Anzeige
    • 22 Scheduler-Tests ✅
  • Phase 11: Polishing
    • Passwort-Management mit Windows Credential Manager
    • UI-Verbesserungen (Backup/Restore-Tabs)
    • Input-Validierung & Error-Handling
    • Setup-Wizard komplett überarbeitet (Deutsch, Auto-Erkennung)

🔨 Phase 12: Packaging & Beta-Release (In Arbeit)

  • PyInstaller-Konfiguration
  • Build-Script (build_exe.py)
  • Inno Setup Installer-Script
  • Build-Dokumentation (BUILD.md)
  • Beta-Testing
  • GitHub Release

📅 Geplant (siehe TODO.md)

  • Hilfefunktion / Guided Tour
  • Barrierefreiheit (Tastatur-Navigation, Screen-Reader)
  • Internationalisierung (Englisch, weitere Sprachen)
  • Dark Mode
  • Update-Funktion
  • Release 1.0 (Q2 2025)

Aktueller Meilenstein: Public Beta Testing 🎯


📦 Installation

🎉 Beta-Version verfügbar!

Download: Releases

Variante 1: Portable ZIP (Empfohlen für Beta)

  1. Lade ScratBackup-v0.2.0-beta-windows.zip herunter
  2. Entpacke das ZIP-Archiv
  3. Starte ScratBackup.exe
  4. Folge dem Setup-Wizard

Variante 2: Installer (Optional)

  1. Lade ScratBackup-v0.2.0-beta-Setup.exe herunter
  2. Führe den Installer aus
  3. Starte über Startmenü oder Desktop-Icon

⚠️ Beta-Hinweis: Dies ist eine Testversion. Bitte melde Bugs auf GitHub Issues.

Für Entwickler

# Repository klonen
git clone https://github.com/nicolettas-muggelbude/Scrat-Backup.git
cd scrat-backup

# Virtual Environment erstellen
python -m venv venv

# Aktivieren (Windows)
venv\Scripts\activate

# Dependencies installieren
pip install -r requirements.txt

# Tests ausführen
pytest tests/ -v

# Code-Quality-Checks
./dev.sh check

# Programm starten
python src/main.py

🎮 Verwendung

Erste Schritte

  1. Setup-Wizard wird beim ersten Start automatisch geöffnet
  2. Backup-Quellen wählen (Persönliche Ordner: Dokumente, Bilder, etc.)
  3. Backup-Ziel auswählen (USB, Cloud, NAS, etc.)
  4. Verschlüsselungs-Passwort festlegen
  5. Zeitplan konfigurieren (optional)
  6. Fertig! Erstes Backup erstellen

Backup erstellen

GUI → Backup-Tab → Quellen wählen → Ziel wählen → "Backup starten"

Dateien wiederherstellen

GUI → Restore-Tab → Backup auswählen → Dateien wählen → "Wiederherstellen"

🛠️ Technologie-Stack

Komponente Technologie Version
Sprache Python 3.12+
GUI PyQt6 6.10.0
Verschlüsselung cryptography (AES-256-GCM) 46.0.3
Komprimierung py7zr 1.0.0
Datenbank SQLite (built-in)
SFTP paramiko 4.0.0
WebDAV webdavclient3 3.14.6
SMB smbprotocol 1.14.0
Testing pytest 9.0.1

🔧 Entwicklung

Projektstruktur

scrat-backup/
├── src/
│   ├── main.py                 # Entry Point
│   ├── gui/                    # GUI-Komponenten
│   │   ├── main_window.py      # Hauptfenster
│   │   ├── wizard.py           # Setup-Wizard
│   │   ├── backup_tab.py       # Backup-Tab
│   │   ├── restore_tab.py      # Restore-Tab
│   │   ├── settings_tab.py     # Settings-Tab
│   │   └── ...
│   ├── core/                   # Core-Module
│   │   ├── backup_engine.py    # Backup-Logik
│   │   ├── restore_engine.py   # Restore-Logik
│   │   ├── encryptor.py        # Verschlüsselung
│   │   ├── compressor.py       # Komprimierung
│   │   └── ...
│   ├── storage/                # Storage-Backends
│   │   ├── usb_storage.py      # USB/Lokal
│   │   ├── sftp_storage.py     # SFTP
│   │   ├── webdav_storage.py   # WebDAV
│   │   ├── rclone_storage.py   # Rclone
│   │   └── smb_storage.py      # SMB/CIFS
│   └── utils/                  # Utilities
├── tests/                      # 143 Tests (>80% Coverage)
├── docs/                       # Dokumentation
│   ├── developer_guide.md
│   └── architecture.md
├── assets/                     # Icons, Themes
├── TODO.md                     # Roadmap
└── claude.md                   # Technische Dokumentation

Code-Quality

# Alle Checks
./dev.sh check

# Nur Formatierung
./dev.sh format

# Nur Tests
./dev.sh test

Standards:

  • PEP 8 Coding Style
  • Type Hints für alle Funktionen
  • Docstrings (Google Style)
  • >80% Test Coverage

📖 Dokumentation

Dokument Beschreibung
claude.md Vollständige technische Dokumentation
BUILD.md Build-Anleitung für Entwickler
TODO.md Roadmap & geplante Features
docs/developer_guide.md Entwickler-Handbuch
docs/architecture.md Architektur-Übersicht
CONTRIBUTING.md Beitrags-Richtlinien

🗺️ Roadmap

Siehe TODO.md für die vollständige Roadmap.

Vor Release 1.0

Priorität: Hoch

  • Hilfefunktion / Guided Tour
  • Barrierefreiheit (A11y)
  • Internationalisierung (i18n)
  • Dark Mode
  • Farbenblindheit-freundliche Farben

Priorität: Mittel

  • Update-Funktion
  • Vollständige Test-Coverage
  • Performance-Optimierungen

Nach dem Release

  • Projektwebseite
  • Social Media Content
  • Community aufbauen

🤝 Beitragen

Contributions sind herzlich willkommen! 🎉

  1. Fork das Repository
  2. Erstelle einen Feature-Branch (git checkout -b feature/AmazingFeature)
  3. Committe deine Änderungen (git commit -m 'Add: AmazingFeature')
  4. Push zum Branch (git push origin feature/AmazingFeature)
  5. Öffne einen Pull Request

Siehe CONTRIBUTING.md für Details.

Contributors

Noch keine Contributors - sei der Erste! 🚀


📄 Lizenz

GNU General Public License v3.0

Dieses Projekt ist Open-Source und unter der GPLv3 lizenziert. Siehe LICENSE für Details.

Verwendete Bibliotheken

Bibliothek Lizenz Kompatibel?
PyQt6 GPL / Commercial ✅ GPL
cryptography Apache 2.0 / BSD ✅ Ja
py7zr LGPL ✅ Ja
paramiko LGPL ✅ Ja
webdavclient3 MIT ✅ Ja
smbprotocol MIT ✅ Ja

Alle Dependencies sind GPLv3-kompatibel.


🔐 Sicherheit

Scrat-Backup nimmt Sicherheit ernst:

  • 🔒 AES-256-GCM: Authenticated Encryption für alle Backups
  • 🔑 PBKDF2: 100.000 Iterationen für Key-Derivation
  • 🚫 Kein Plaintext: Alle sensiblen Daten verschlüsselt
  • 💾 Windows Credential Manager: Optionale Passwort-Speicherung

Sicherheitslücken melden

Bitte NICHT als öffentliches Issue!

Sende eine E-Mail an: security@scrat-backup.example


💬 Support


🙏 Danksagungen

  • Inspiration: rsync, duplicati, borg backup
  • Icon: Eichel 🌰 (Scrat aus Ice Age)
  • Community: Alle zukünftigen Contributors!
  • Claude Code: Development-Assistent 🤖

📊 Statistiken

Tests Coverage Python License Platform Status


Entwickelt mit ❤️ für die Open-Source-Community

Wie ein Eichhörnchen seine Eicheln bewahrt, so bewahren wir deine Daten. 🐿️🌰

⭐ Star das Projekt📥 Download Beta🐛 Report Bug💡 Request Feature

About

Scrat-Backup ist ein Open-Source-Backup-Tool, das speziell für Windows-Privatnutzer entwickelt wurde. Wie ein Eichhörnchen seine Eicheln für den Winter sichert, schützt Scrat-Backup deine wertvollen Daten mit verschlüsselten, komprimierten Backups. 🇩🇪

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages