minmal-file-cloud-email-pim.../CHANGELOG.md

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.sh Script: 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-path erstellt verschachtelte Ordnerstrukturen
  • 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

Dateiverwaltung

  • Upload/Download mit Berechtigungen (read/write/admin)
  • Ordner erstellen, verschieben, umbenennen, loeschen
  • Berechtigungssystem pro Datei/Ordner und Benutzer
  • 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 Checksums
  • GET /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.example mit Token-Generierung
  • Dockerfile (Multi-Stage: Node Build + Python Production)
  • docker-compose.yml mit Bind Mounts (keine Docker Volumes)
  • nginx.example.conf fuer 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)