Quick Start: Docker Run
Das All-in-One Image enthält alles, was FinAnalyzer braucht:
- PostgreSQL 16 + TimescaleDB — vollwertige Datenbank mit Zeitreihen-Optimierung
- Keycloak 26 — Identity & Access Management (deaktivierbar)
- Spring Boot Backend — REST API und Business-Logik
- Caddy — Reverse Proxy mit optionalem Auto-HTTPS
- Automatische Backups — tägliches pg_dump mit konfigurierbarer Aufbewahrung
- s6-overlay — Process Supervision für alle Services
Voraussetzungen
Section titled “Voraussetzungen”- Docker ≥ 24.0 installiert (Docker installieren)
- 2 GB RAM frei
- 1 GB Disk frei
Prüfe deine Docker-Version:
docker --version# Docker version 27.x.x, build ...FinAnalyzer starten
Section titled “FinAnalyzer starten”-
Container starten
Terminal window docker run -d \--name finanalyzer \-p 8080:80 \-v finanalyzer-data:/data \-e DB_PASSWORD=mein-sicheres-passwort \-e KEYCLOAK_ADMIN_PASSWORD=admin-passwort \-e KEYCLOAK_DB_PASSWORD=kc-db-passwort \-e EXTERNAL_URL=http://localhost:8080 \finanalyzer/allinone:latest -
Warten, bis der Container bereit ist
Terminal window docker logs -f finanalyzer# Warte auf: "Started FinAnalyzerApplication in X.XXX seconds"Der Start dauert ca. 60-90 Sekunden (PostgreSQL + Keycloak + Backend initialisieren).
-
Im Browser öffnen
- FinAnalyzer: http://localhost:8080 — Dashboard
- Keycloak Admin: http://localhost:8080/auth — Login mit
admin/ dem gesetzten Passwort
-
Erste CSV importieren
- Klicke auf „Import” in der Navigation
- Wähle eine CSV-Datei deiner Bank
- FinAnalyzer erkennt das Bankenformat automatisch und kategorisiert die Transaktionen
Keycloak deaktivieren
Section titled “Keycloak deaktivieren”Wenn du kein Login brauchst (Einzelbenutzer-Modus):
docker run -d \ --name finanalyzer \ -p 8080:80 \ -v finanalyzer-data:/data \ -e DB_PASSWORD=mein-sicheres-passwort \ -e KEYCLOAK_ENABLED=false \ -e FINANALYZER_AUTH_ENABLED=false \ -e EXTERNAL_URL=http://localhost:8080 \ finanalyzer/allinone:latestSSL aktivieren (optional)
Section titled “SSL aktivieren (optional)”Caddy kann automatisch HTTPS-Zertifikate via Let’s Encrypt ausstellen:
docker run -d \ --name finanalyzer \ -p 80:80 -p 443:443 \ -v finanalyzer-data:/data \ -e DB_PASSWORD=mein-sicheres-passwort \ -e KEYCLOAK_ADMIN_PASSWORD=admin-passwort \ -e KEYCLOAK_DB_PASSWORD=kc-db-passwort \ -e CADDY_DOMAIN=finance.example.com \ -e EXTERNAL_URL=https://finance.example.com \ finanalyzer/allinone:latestDaten persistieren
Section titled “Daten persistieren”Das Volume /data speichert alle persistenten Daten:
| Pfad | Inhalt |
|---|---|
/data/postgresql/ | PostgreSQL-Datenbank (PGDATA) |
/data/backups/ | Automatische pg_dump-Backups |
/data/uploads/ | Hochgeladene CSV-Dateien |
/data/categories.json | Benutzerdefinierte Kategorien (optional) |
# Volume anzeigendocker volume inspect finanalyzer-data
# Manuelles Backup des Volumesdocker run --rm -v finanalyzer-data:/data -v $(pwd):/backup \ alpine tar czf /backup/finanalyzer-backup.tar.gz -C /data .Konfiguration
Section titled “Konfiguration”| Variable | Default | Beschreibung |
|---|---|---|
DB_PASSWORD | Pflicht | PostgreSQL-Passwort |
EXTERNAL_URL | (leer) | URL über die FinAnalyzer erreichbar ist (inkl. Port). Pflicht bei Port ≠ 80 oder Reverse Proxy. |
DB_NAME | finanalyzer | Datenbankname |
DB_USER | finanalyzer | Datenbankbenutzer |
KEYCLOAK_ENABLED | true | Keycloak aktivieren/deaktivieren |
KEYCLOAK_ADMIN_PASSWORD | Pflicht | Keycloak Admin-Passwort |
KEYCLOAK_DB_PASSWORD | Pflicht | Keycloak-Datenbank-Passwort |
FINANALYZER_AUTH_ENABLED | true | OAuth2-Auth im Backend |
CADDY_DOMAIN | (leer) | Domain für Auto-HTTPS (Let’s Encrypt) |
CADDY_PORT | 80 | HTTP-Port |
JAVA_OPTS | -Xmx512m | JVM-Optionen für Backend |
KC_JAVA_OPTS | -Xmx256m | JVM-Optionen für Keycloak |
BACKUP_INTERVAL | 86400 | Backup-Intervall in Sekunden |
BACKUP_RETENTION_DAYS | 7 | Aufbewahrung Backups in Tagen |
TZ | (System) | Zeitzone für Logs und Backups |
Container verwalten
Section titled “Container verwalten”# Stoppendocker stop finanalyzer
# Startendocker start finanalyzer
# Logs anzeigendocker logs finanalyzer --tail 50
# Löschen (Daten bleiben im Volume!)docker stop finanalyzer && docker rm finanalyzer
# Update auf neue Versiondocker pull finanalyzer/allinone:latestdocker stop finanalyzer && docker rm finanalyzerdocker run -d --name finanalyzer -p 8080:80 \ -v finanalyzer-data:/data \ -e DB_PASSWORD=mein-passwort \ -e KEYCLOAK_ADMIN_PASSWORD=admin-pw \ -e KEYCLOAK_DB_PASSWORD=kc-db-pw \ -e EXTERNAL_URL=http://localhost:8080 \ finanalyzer/allinone:latestNächste Schritte
Section titled “Nächste Schritte”- Self-Hosting Guide — SSL, Reverse Proxy, Backup
- Konfiguration — Alle Environment Variables im Überblick