Releases: Sleepwalker86/Haushaltsbuch
Releases · Sleepwalker86/Haushaltsbuch
Release v1.1.0
Release Notes - Version 1.1.0
Veröffentlichungsdatum: 2025-01-02
Git Commit: [Wird beim Tag-Erstellen aktualisiert]
🎉 Neue Features
Umstrukturierung der Datenverzeichnisse
- Neue Datenstruktur: Alle Daten werden jetzt unter
/dataorganisiertdata/invoices/- Belege (Fotos/PDFs) zu Buchungen, organisiert nach Jahr/Monatdata/paperless/- Bilder für Paperless-Uploaddata/log/- Log-Dateien der Anwendung
- Konsistentere Struktur: Alle persistenten Daten an einem Ort
- Einfachere Wartung: Ein Volume für alle Daten (
./data:/app/data)
Umfassendes Logging-System
- Zentrales Logging mit automatischer Rotation
- Tägliche Rotation der Log-Dateien (behält 30 Tage)
- Log-Level konfigurierbar über Umgebungsvariable
LOG_LEVEL(Standard: INFO) - Log-Verzeichnis konfigurierbar über
LOG_DIR(Standard:./data/log) - Download-Funktion für Log-Dateien in den Einstellungen (Tab "Export")
- Detailliertes Logging für alle wichtigen Aktionen:
- Buchungen (Erstellen, Bearbeiten, Löschen)
- CSV-Import/Export mit Statistiken
- Beleg-Upload/Download
- Settings-Änderungen (Konten, Keywords, Kategorien)
- Fehlerbehandlung mit vollständigen Stack-Traces
- Console-Logging im Debug-Modus für Entwicklung
Verbesserte Import-Feedback
- Detaillierte Import-Statistiken in der Upload-Seite
- Anzeige der Anzahl erfolgreich importierter Datensätze
- Anzeige der Anzahl fehlerhafter Zeilen
- Übersichtliche Darstellung mit Icons und farbigen Badges
- Echtzeit-Feedback nach CSV-Upload
Datenbank-Migrationen
- Verbesserte Migration-Struktur
schema_migrationsTabelle wird jetzt in der initialen Migration erstellt- Konsistentere Datenbankstruktur
- Bessere Dokumentation der Migrationen
- Verbesserte Fehlerbehandlung und Logging bei Migrationen
🔧 Verbesserungen
Docker-Integration
- Optimierte Volumes:
- Ein
data-Volume für alle persistenten Daten - Separate Volumes nur noch für
import/(CSV-Dateien) - Logs sind jetzt Teil des
data-Volumes
- Ein
- Dockerfile: Erstellt automatisch alle benötigten Unterverzeichnisse
- Beide docker-compose Dateien aktualisiert
Code-Qualität
- Verbesserte Fehlerbehandlung in Settings-Routen
- Konsistente Logging-Integration in allen Modulen
- Bessere Code-Struktur und Kommentierung
- Robustere Fehlerbehandlung bei fehlenden Dateien
Paperless-Integration
- Neue Ordnerstruktur: Paperless-Dokumente werden in
data/paperless/gespeichert - Verbesserte Fehlerbehandlung: Dateien bleiben erhalten bei Upload-Fehlern
- Klarere Logging: Detaillierte Ausgaben bei Paperless-Uploads
🐛 Bugfixes
Settings-Seite
- Behebung von Einrückungsfehlern in
routes/settings.py - Korrektur der POST/GET-Request-Verarbeitung
- Fehlerbehandlung für fehlende Log-Datei-Downloads
- Verbesserte Exception-Handling mit detailliertem Logging
Upload-Funktionalität
- Verbesserte Fehlerbehandlung bei CSV-Import
- Detailliertere Fehlermeldungen mit Statistiken
- Robustere Dateiverarbeitung
Beleg-Verwaltung
- Automatische Bereinigung von "toten" Datenbankeinträgen (Datei fehlt)
- Verbesserte Fehlerbehandlung beim Download fehlender Belege
- Konsistente Pfad-Verwaltung mit neuer Datenstruktur
📦 Technische Details
Neue Abhängigkeiten
- Keine neuen Abhängigkeiten (verwendet Standard-Python-Logging)
Konfiguration
- LOG_LEVEL: Umgebungsvariable für Log-Level (INFO, DEBUG, WARNING, ERROR)
- LOG_DIR: Umgebungsvariable für Log-Verzeichnis (Standard:
./data/log) - BELEG_BASE_DIR: Umgebungsvariable für Beleg-Verzeichnis (Standard:
./data/invoices)
Migrationen
- Migration 001:
schema_migrationsTabelle hinzugefügt
Datenstruktur
data/
├── invoices/ # Belege zu Buchungen (Fotos/PDFs)
│ └── YYYY/
│ └── MM/
├── paperless/ # Bilder für Paperless-Upload
└── log/ # Log-Dateien der Anwendung
└── finanzapp.log
🚀 Upgrade-Anleitung
1. Backup erstellen
# Datenbank-Backup
docker compose exec db mysqldump -u root -p${MYSQL_ROOT_PASSWORD} ${MYSQL_DATABASE} > backup_$(date +%Y%m%d).sql
# Daten-Backup (falls vorhanden)
tar -czf data_backup_$(date +%Y%m%d).tar.gz data/ image/ logs/ 2>/dev/null || true2. Daten migrieren (wichtig!)
# Erstelle neue Struktur
mkdir -p data/invoices data/paperless data/log
# Migriere alte Daten (falls vorhanden)
if [ -d "image" ]; then
# Alte Belege migrieren (falls vorhanden)
find image -type f -exec mv {} data/paperless/ \; 2>/dev/null || true
# Alte Paperless-Dateien migrieren
mv image/* data/paperless/ 2>/dev/null || true
fi
# Alte Logs migrieren (falls vorhanden)
if [ -d "logs" ]; then
mv logs/* data/log/ 2>/dev/null || true
fi3. Container aktualisieren
# Stoppe Container
docker compose down
# Aktualisiere Image
docker compose pull
# Starte Container neu
docker compose up -d4. Migrationen prüfen
# Prüfe, ob Migrationen erfolgreich waren
docker compose exec app python migrate.py5. Verifikation
# Prüfe Logs
docker compose logs app | tail -20
# Prüfe Datenstruktur
ls -la data/⚠️ Breaking Changes
Datenstruktur-Änderungen
- Alter Pfad:
./image→ Neuer Pfad:./data/invoices(für Belege) - Alter Pfad:
./image→ Neuer Pfad:./data/paperless(für Paperless) - Alter Pfad:
./logs→ Neuer Pfad:./data/log(für Logs)
Wichtig: Bestehende Installationen müssen die Daten manuell migrieren (siehe Upgrade-Anleitung).
Docker Volumes
- Das separate
logs-Volume wurde entfernt - Alle Daten werden jetzt über das
data-Volume gemountet
📝 Hinweise
- Log-Dateien: Werden automatisch nach 30 Tagen gelöscht
- Log-Download: Verfügbar über Settings → Export Tab
- Belege: Werden automatisch nach Jahr/Monat organisiert
- Paperless: Dokumente werden in
data/paperless/gespeichert und nach Upload gelöscht
🔗 Weitere Informationen
Vollständige Änderungsliste: Siehe Git Commits seit v1.0.1
v1.0.1
Release Notes - Version 1.0.1
🎉 Neue Features
Versionsprüfung und Update-Benachrichtigungen
- System-Tab in den Einstellungen: Neuer Tab zeigt aktuelle Version und prüft automatisch auf Updates
- Docker Hub Integration: Automatische Versionsprüfung über Docker Hub API
- Update-Benachrichtigungen: Benutzer werden informiert, wenn eine neuere Version verfügbar ist
- Update-Anleitung: Direkte Anweisungen zum Aktualisieren der Docker-Container
Erweiterte Analyse-Funktionen
- Kategorien-Analysen: Detaillierte Aufschlüsselung der Ausgaben nach Kategorien
- Top-Kategorien nach Ausgaben: Übersicht der größten Ausgabenposten
- Anteil je Kategorie (%): Prozentuale Verteilung der Ausgaben als Tortendiagramm
- Jahresvergleich: Flexibler Vergleich mit auswählbarem Vergleichsjahr (statt nur Vorjahr)
Verbesserte CSV-Import-Funktionalität
- Robuster CSV-Parser: Automatische Erkennung verschiedener Bankformate
- Automatische Format-Erkennung:
- Encoding (UTF-8, Latin-1, Windows-1252, etc.)
- Trennzeichen (Semikolon, Komma, Tab, Pipe)
- Spaltennamen (verschiedene Varianten werden erkannt)
- Datumsformate (DD.MM.YYYY, YYYY-MM-DD, etc.)
- Betragsformate (deutsche und englische Formate)
- IBAN-Erkennung: Automatische Erkennung der eigenen IBAN aus CSV-Dateien
- Import-Feedback: Anzeige der Anzahl importierter Buchungen nach dem Upload
Datenexport und -import
- CSV-Export aller Buchungen: Neuer Tab in den Einstellungen zum Exportieren aller Buchungen
- CSV-Reimport: Möglichkeit, CSV-Dateien erneut zu importieren
- Duplikatsprüfung: Automatische Erkennung und Vermeidung von Duplikaten beim Import
Verbesserte Filterung
- Beschreibungssuche: Neues Suchfeld zum Filtern nach Begriffen in der Beschreibung
- Erweiterte Filteroptionen: Kombination mehrerer Filter für präzise Suche
🔧 Verbesserungen
Benutzerfreundlichkeit
- Intelligente Weiterleitung: Nach Bearbeitung/Löschen von Buchungen wird korrekt zur vorherigen Seite zurückgeleitet
- Verbesserte Dokumentation: README.md wurde benutzerfreundlicher gestaltet
- Info-Popover: Erklärungen zu Funktionen direkt in der Oberfläche verfügbar
- Bildergalerie: Screenshots in der Dokumentation für bessere Orientierung
Code-Qualität
- Modulare Struktur: Refactoring von
app.pyin separate Route-Module - Robuste Fehlerbehandlung: Verbesserte Fehlermeldungen und Logging
- Code-Organisation: Bessere Strukturierung in
routes/,services/,utils/
🐛 Bugfixes
- NaN-Werte in Beschreibung: Korrekte Behandlung leerer CSV-Felder (keine "nan"-Strings mehr)
- Weiterleitung nach Bearbeitung: Korrekte Rückkehr zur Buchungen-Seite oder Dashboard je nach Herkunft
- Docker-Container: Verbesserte Fehlerbehandlung bei Datenbankverbindungen
- Einrückung in app.py: Korrigierte Code-Formatierung
📦 Docker & Deployment
Docker Hub Integration
- Multi-Architecture Builds: Unterstützung für AMD64 und ARM64
- Automatisierte Builds: Scripts für einfaches Builden und Pushen
- Docker Compose Templates: Separate Dateien für interne und externe Datenbanken
- Verbesserte Dokumentation: Detaillierte Anleitungen in DOCKER.md und DOCKER_HUB.md
Container-Verbesserungen
- Robuste DB-Verbindungstests: Verbesserte Prüfung bei externen Datenbanken
- Netzwerk-Diagnose: Netcat-Tests für bessere Fehlerdiagnose
- Config.json Regeneration: Automatische Aktualisierung bei Container-Start
📚 Dokumentation
- Benutzerfreundliche README: Weniger technische Begriffe, mehr Fokus auf Endbenutzer
- Bildergalerie: Screenshots der wichtigsten Funktionen
- Docker-Anleitungen: Umfassende Dokumentation für Docker-Setup
- CSV-Import-Dokumentation: Detaillierte Beschreibung unterstützter Formate
🔄 Technische Details
Abhängigkeiten
packaging>=23.0für Versionsvergleichechardet>=5.0.0für Encoding-Erkennungpandas>=2.0.0für robuste CSV-Verarbeitung
Vollständige Änderungsliste: Siehe Git-Commits zwischen v1.0.0 und v1.0.1