# 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 ```bash 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: ```bash sudo chmod +x install.sh sudo ./install.sh ``` Danach: `http://DOCKER-SERVER-IP:3080` ## Build + Push in Gitea Container Registry Vor dem ersten Push: ```bash sudo docker login git.example.de ``` Dann: ```bash 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.: ```bash sudo PLATFORM=linux/arm64 ./build-and-push-gitea.sh git.example.de owner/fixfin latest ``` ## Registry-Image deployen ```bash 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.