8.9 KiB
8.9 KiB
Changelog
Alle wesentlichen Aenderungen an der Mini-Cloud Plattform.
[0.9.0] - 2026-04-12 - Desktop Sync Client
Desktop-Client (Tauri 2 / Rust + Vue)
- Erster funktionsfaehiger Desktop Sync Client fuer Windows, Linux und macOS
- Multi-Sync-Pfade: Beliebig viele Server-Ordner auf lokale Ordner mappen
- Virtual Files:
.cloud-Platzhalter (0 Bytes), Download erst bei Doppelklick - Full Sync: Alternativ alle Dateien komplett lokal spiegeln (pro Pfad waehlbar)
- Offline-Markierung: Einzelne Dateien als offline verfuegbar markieren (Rechtsklick)
- Sofort-Sync: Filesystem-Watcher erkennt Aenderungen sofort (3s Debounce statt Polling)
- Bidirektionaler Sync mit Timestamp-Vergleich (Server neuer = Download, Lokal neuer = Upload)
- File Locking: Automatisches Ein-/Auschecken mit Heartbeat alle 10s
- Auto-Unlock: Erkennt wenn eine Datei geschlossen wird (Windows: Write-Lock-Check, Linux: lsof)
- System-Tray: Minimiert in den Tray statt zu beenden, Doppelklick oeffnet Fenster
- Auto-Login: Zugangsdaten und Sync-Pfade persistent in
%APPDATA%/MiniCloud Sync/config.json - Single-Instance pro User (Terminalserver-kompatibel, PID-basiertes Lock-File)
- .cloud Datei-Assoziation: Doppelklick im Explorer oeffnet ueber den Client
- Minimiert starten: Checkbox in Einstellungen, Client startet direkt im Tray
- Token-Refresh alle 10 Minuten (verhindert Lock-Verlust nach Token-Ablauf)
- Lokaler Datei-Browser mit Rechtsklick-Kontextmenue
Build-System
build.shScript: Baut Clients via Docker fuer alle Plattformen./build.sh windows- Cross-Compile von Linux nach Windows (NSIS-Installer mit WebView2)./build.sh linux- Linux Build (.AppImage, .deb)./build.sh mac- macOS Build (.dmg, nur auf Mac)- Auto-Upload: Gebaute Clients werden automatisch auf den Cloud-Server hochgeladen
- Client-Downloads: Login-Seite und Benutzer-Einstellungen zeigen Download-Links
File Locking (Backend)
- Neues FileLock-Model: Dateien ein-/auschecken
- API: Lock, Unlock, Heartbeat, Lock-Status
- Auto-Unlock nach 15 Minuten ohne Heartbeat
- Lock-Anzeige in der Dateiliste (Schloss-Icon mit Benutzername)
- Gesperrte Dateien: Oeffnen nicht moeglich, Fehlermeldung
- Konflikt-Email an Admin bei erzwungenem Sync gesperrter Dateien
[0.8.0] - 2026-04-11 - OnlyOffice + Papierkorb
OnlyOffice Document Server Integration
- Word, Excel und PowerPoint Dateien direkt im Browser bearbeiten
- Automatische Erkennung: OnlyOffice vorhanden = Editor, sonst einfache Vorschau
- WOPI-aehnliche Endpunkte fuer Dokumentzugriff und Callback
- JWT-Signierung (nutzt JWT_SECRET_KEY aus .env, kein extra Secret)
- Force-Save: Ctrl+S speichert sofort zurueck zum Server
- Dokument-Key mit Timestamp (kein Cache-Problem bei Wiederoffnen)
- Konfiguration nur ueber .env (ONLYOFFICE_URL), Admin-GUI zeigt Status
Papierkorb
- Geloeschte Dateien landen im Papierkorb statt sofort geloescht zu werden
- Papierkorb-Seite in der Sidebar mit Tabelle aller geloeschten Elemente
- Wiederherstellen am Originalort oder endgueltig loeschen
- "Papierkorb leeren" Button mit Sicherheitsabfrage
- Share-View Loeschen nutzt ebenfalls den Papierkorb
Bestaetigungsdialoge
- Ueberall wo geloescht wird jetzt ein Bestaetigungsdialog
- Kontakte, Kalender-Events, Kalender, E-Mails, Share-Dateien, SFTP-Backup-Ziele, Admin Email-Konten
Office-Preview
- Vorschau oeffnet sich innerhalb der App (kein neuer Tab)
- Zurueck-Button in der Toolbar
- PDF inline, Bilder zentriert, DOCX als HTML, XLSX als Tabelle, PPTX als Folien
- Text/Code-Dateien bearbeitbar mit Speichern-Funktion
[0.7.0] - 2026-04-11 - Backup & Restore + SFTP
Backup & Restore
- Lokales ZIP-Backup: Datenbank (sqlite3.backup API) + alle Dateien + Metadaten
- Streaming-Download ohne Speicher-Limits
- Chunked Restore-Upload fuer grosse Backups (10MB-Stuecke mit Fortschrittsbalken)
- DB-Merge-Strategie: INSERT OR REPLACE auf gemeinsame Spalten
- Einzeldatei-Restore: Backup durchsuchen + einzelne Dateien herunterladen/wiederherstellen
SFTP-Backup
- Mehrere SFTP-Backup-Ziele konfigurierbar
- Automatischer Hintergrund-Scheduler (15 Min. bis woechentlich)
- Versionierung mit automatischem Aufraumen alter Backups
- Manuelles Backup per Klick ("Jetzt sichern")
- SFTP-Verbindungstest-Button
- Versionen-Dialog: Alle Backups auf dem SFTP-Server auflisten
- Restore direkt von SFTP: Version auswaehlen und wiederherstellen
Restore-Anleitung
- Detaillierte Anleitung direkt in der Admin-UI
- Hinweis auf SECRET_KEY/JWT_SECRET_KEY Uebereinstimmung
[0.6.0] - 2026-04-11 - Drag & Drop + Share-Typen
Datei-Upload
- Drag & Drop Upload: Dateien und komplette Ordnerstrukturen reinziehen
- Ordner-Button: Kompletten Ordner mit Unterordnern hochladen (webkitdirectory)
- Upload-Fortschrittsbalken mit Datei-Zaehler
- Backend:
/files/ensure-patherstellt verschachtelte Ordnerstrukturen
Share-Links
- Drei Berechtigungsstufen: Nur Lesen / Lesen+Schreiben / Nur Upload
- Upload-Only: Briefkasten-Modus (hochladen ohne Einblick)
- Ordner-Freigaben: Dateiliste mit Download/Loeschen, Unterordner-Navigation
- Ordner als ZIP herunterladen (rekursiv)
- Share-Status visuell: Gruenes Icon zeigt geteilte Dateien an
- Upload in freigegebene Ordner mit Passwort-Schutz
System-Benachrichtigungen
- Email bei Datei-/Ordner-Freigabe an Empfaenger
- Email bei Share-Link-Download an Ersteller (mit IP-Adresse)
- Email bei Upload in geteilten Ordner
- Email bei Kalender/Kontakte/Passwort-Freigabe
- Email bei Benutzer-Erstellung durch Admin
- Alle Benachrichtigungen fail-safe (keine Blockierung bei Email-Fehler)
[0.5.0] - 2026-04-11 - Admin-Features + Passwort-Import
Administration
- Benutzer ueber Web-UI anlegen (Username, Email, Passwort, Rolle, Quota)
- Benutzer bearbeiten/deaktivieren/loeschen mit Sicherheitsabfragen
- Email-Konten pro Benutzer im Admin verwalten (ohne sich als User einzuloggen)
- Benutzersuche in der Verwaltung
- Oeffentliche Registrierung: Schieberegler an/aus
- Einladungslinks: Einmal-Token auch bei deaktivierter Registrierung
- System-Email (SMTP): Konfigurierbar mit Verbindungstest
Passwort-Manager Import
- Firefox CSV-Import (Einstellungen > Passwoerter > Exportieren)
- KeePass .kdbx Import mit Ordnerstruktur
- Generischer CSV-Import (Chrome, Bitwarden, 1Password)
- Automatische Spaltenerkennung (deutsch + englisch)
- Alle Eintraege werden clientseitig verschluesselt vor dem Speichern
[0.4.0] - 2026-04-11 - Dateiverwaltung + Share-Links
Dateiverwaltung
- Upload/Download mit Berechtigungen (read/write/admin)
- Ordner erstellen, verschieben, umbenennen, loeschen
- Berechtigungssystem pro Datei/Ordner und Benutzer
Share-Links
- Token-basierte Freigabe-Links
- Optionales Passwort + Ablaufdatum + Download-Limit
- Oeffentliche Share-Seite ohne Login
- Dateien/Ordner mit Benutzern teilen (Benutzersuche)
Sync-API
GET /sync/tree- Kompletter Dateibaum mit ChecksumsGET /sync/changes?since=- Delta-Sync- SHA-256 Checksums fuer Duplikat-Erkennung
[0.3.0] - 2026-04-11 - Kalender + Kontakte + Email
Kalender
- Kalender-CRUD mit Events (Monats-/Tagesansicht, FullCalendar)
- Kalender mit Benutzern teilen (Lesen oder Lesen+Schreiben)
- iCal-Export als Read-Only .ics Link
- CalDAV well-known URLs fuer Auto-Discovery (iOS, DAVx5, Thunderbird)
Kontakte
- Adressbuecher + Kontakte CRUD
- vCard-Export, Teilen mit Benutzern
- Suche in Kontakten
Email-Webclient
- IMAP/SMTP-Proxy (kein eigener Mailserver)
- Multi-Account: Ordner nach Konten gruppiert
- Absender-Logik: Standard = aktives Konto, Dropdown bei mehreren
- Drei-Spalten-Layout, Compose mit Reply
- Kein Email-Konto = Email-Bereich ausgeblendet
[0.2.0] - 2026-04-11 - Passwort-Manager + Office-Viewer
Passwort-Manager
- AES-256-GCM clientseitig verschluesselt (Zero Knowledge)
- TOTP-Code Generierung (Web Crypto API)
- Passwort-Generator
- Ordner/Gruppen-Hierarchie (wie KeePass)
- Teilen von Eintraegen und Ordnern (read/write/manage)
Office-Viewer
- PDF: PDF.js direkt im Browser
- DOCX: python-docx -> HTML
- XLSX: openpyxl -> JSON -> Tabelle
- PPTX: python-pptx -> HTML-Folien
- Bilder und Textdateien inline
[0.1.0] - 2026-04-11 - Erste Version
Grundgeruest
- Flask Backend mit SQLAlchemy + SQLite (WAL-Modus)
- Vue 3 Frontend mit PrimeVue, Vite, Pinia
- JWT-Authentifizierung (Access + Refresh Token)
- Erster Benutzer wird automatisch Admin
- Benutzerverwaltung (Admin/User Rollen, Speicher-Quotas)
Projekt-Setup
.gitignore,.env.examplemit Token-Generierung- Dockerfile (Multi-Stage: Node Build + Python Production)
docker-compose.ymlmit Bind Mounts (keine Docker Volumes)nginx.example.conffuer Reverse-Proxy mit Let's Encrypt
Datenbank
- 15 Tabellen: Users, Files, FilePermissions, ShareLinks, Calendars, CalendarEvents, CalendarShares, AddressBooks, Contacts, AddressBookShares, EmailAccounts, PasswordFolders, PasswordEntries, PasswordShares, AppSettings
- Auto-Migrate: Fehlende Spalten werden beim App-Start automatisch per ALTER TABLE hinzugefuegt (kein manuelles Migrieren noetig)