Schütze deine Daten wie Scrat seine Eicheln!
Ein benutzerfreundliches, verschlüsseltes Backup-Programm für Windows-Privatnutzer
Features • Installation • Verwendung • Entwicklung • Roadmap • Beitragen
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.
- 👨💼 Privatnutzer ohne tiefe technische Kenntnisse
- 🏠 Heimanwender mit wichtigen Dokumenten, Fotos, Videos
- 🔒 Sicherheitsbewusste die Verschlüsselung schätzen
- 💾 Multi-Storage-Nutzer (USB, NAS, Cloud)
- ✅ 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
- ✅ 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
- 💾 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
- ✅ Einzelne Dateien oder komplette Backups
- ✅ Zeitpunkt-Wiederherstellung (Version wählen)
- ✅ Vorschau der Backup-Inhalte
- ✅ Wiederherstellung auf beliebigen Systemen (unabhängig vom Original-User)
- ✅ 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
- ✅ 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
Aktuell: Beta v0.2.0 - Ready for Testing! 🎉
- 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)
- 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 🎯
Download: Releases
- Lade
ScratBackup-v0.2.0-beta-windows.zipherunter - Entpacke das ZIP-Archiv
- Starte
ScratBackup.exe - Folge dem Setup-Wizard
- Lade
ScratBackup-v0.2.0-beta-Setup.exeherunter - Führe den Installer aus
- Starte über Startmenü oder Desktop-Icon
# 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- Setup-Wizard wird beim ersten Start automatisch geöffnet
- Backup-Quellen wählen (Persönliche Ordner: Dokumente, Bilder, etc.)
- Backup-Ziel auswählen (USB, Cloud, NAS, etc.)
- Verschlüsselungs-Passwort festlegen
- Zeitplan konfigurieren (optional)
- Fertig! Erstes Backup erstellen
GUI → Backup-Tab → Quellen wählen → Ziel wählen → "Backup starten"
GUI → Restore-Tab → Backup auswählen → Dateien wählen → "Wiederherstellen"
| 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 |
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
# Alle Checks
./dev.sh check
# Nur Formatierung
./dev.sh format
# Nur Tests
./dev.sh testStandards:
- ✅ PEP 8 Coding Style
- ✅ Type Hints für alle Funktionen
- ✅ Docstrings (Google Style)
- ✅ >80% Test Coverage
| 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 |
Siehe TODO.md für die vollständige Roadmap.
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
Contributions sind herzlich willkommen! 🎉
- Fork das Repository
- Erstelle einen Feature-Branch (
git checkout -b feature/AmazingFeature) - Committe deine Änderungen (
git commit -m 'Add: AmazingFeature') - Push zum Branch (
git push origin feature/AmazingFeature) - Öffne einen Pull Request
Siehe CONTRIBUTING.md für Details.
Noch keine Contributors - sei der Erste! 🚀
GNU General Public License v3.0
Dieses Projekt ist Open-Source und unter der GPLv3 lizenziert. Siehe LICENSE für Details.
| 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.
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
Bitte NICHT als öffentliches Issue!
Sende eine E-Mail an: security@scrat-backup.example
- 📚 Dokumentation: claude.md
- 🐛 Bug Reports: GitHub Issues
- 💡 Feature Requests: GitHub Discussions
- ❓ Fragen: GitHub Discussions
- Inspiration: rsync, duplicati, borg backup
- Icon: Eichel 🌰 (Scrat aus Ice Age)
- Community: Alle zukünftigen Contributors!
- Claude Code: Development-Assistent 🤖
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