FixFin
Kleine responsive Webapp für monatliche Fixplanung ohne Buchungsverlauf und ohne Kontostände.
Datenmodell
- Konten: nur Name / Zuordnung
- fixe Eingänge: Bezeichnung, Betrag pro Monat, Konto
- fixe Ausgänge: Bezeichnung, Betrag pro Monat, Konto
- fixe Transfers: Bezeichnung, Betrag pro Monat, Quellkonto, Zielkonto
- kein Datum
- keine einmaligen Buchungen
- keine Datenbank
- Speicherung ausschließlich in
finance.json
Berechnung
Je Konto:
Eingänge - Ausgänge + Transfers rein - Transfers raus = monatlicher Kontosaldo
Gesamt:
alle Eingänge - alle Ausgänge = monatlicher Gesamtsaldo
Interne Transfers verändern den Gesamtsaldo nicht.
Lokal starten
chmod +x start-local.sh
./start-local.sh
Die App läuft standardmäßig auf http://127.0.0.1:3000 und speichert lokal in .local-data/finance.json.
Docker-Server
Persistente Daten:
/srv/docker/fixfin/data/finance.json
Compose / Anwendung:
/opt/docker-infra/fixfin
Installation:
sudo chmod +x install.sh
sudo ./install.sh
Danach: http://DOCKER-SERVER-IP:3080
Build + Push in Gitea Container Registry
Vor dem ersten Push:
sudo docker login git.example.de
Dann:
sudo ./build-and-push-gitea.sh git.example.de owner/fixfin latest
Das Image wird als git.example.de/owner/fixfin:latest gepusht.
Standardplattform ist linux/amd64. Abweichend z. B.:
sudo PLATFORM=linux/arm64 ./build-and-push-gitea.sh git.example.de owner/fixfin latest
Registry-Image deployen
cd /opt/docker-infra/fixfin
sudo FIXFIN_IMAGE=git.example.de/owner/fixfin:latest docker compose -f docker-compose.registry.yml up -d
JSON-Migration
Alte FixFin-v1-Dateien mit balance in Konten werden automatisch auf v2 migriert. Die alten Kontostände werden entfernt; Eingänge, Ausgänge und Transfers bleiben erhalten. Vor dem Umschreiben wird finance.json.bak angelegt.