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:
docker login git.example.de
Dann:
./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.:
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.
Periodische Fixkosten und Jahresprognose (v1.2)
Eingänge, Ausgänge und Transfers unterstützen monthly, quarterly, semiannual und yearly.
Der eingegebene Betrag ist immer der Betrag pro Intervall. Für Salden kann FixFin periodische Werte automatisch auf einen Monatsdurchschnitt umrechnen. Diese Berücksichtigung lässt sich global in der Übersicht ein-/ausschalten.
Für nicht-monatliche Positionen kann optional ein Fälligkeitsmonat angegeben werden. Bei vierteljährlichen und halbjährlichen Positionen ist dies der erste Fälligkeitsmonat. Die Jahresansicht verteilt die Position anschließend auf die tatsächlichen Fälligkeitsmonate. Positionen ohne Monat bleiben für die Monatsdurchschnittsrechnung nutzbar, werden in der Jahresprognose aber separat als nicht zugeordnet angezeigt.
Jahresansicht auf Mobilgeräten
Die Jahresprognose verwendet kompakte Monats-Akkordeons. Monat, Eingänge, Ausgänge und Saldo sind immer sichtbar. Fällige Einzelpositionen werden erst beim Aufklappen angezeigt. Die mobile Bottom-Navigation bleibt auf allen Ansichten identisch.
Finanzcockpit und Planung (v3.9)
- Navigation: Eingänge, Ausgänge und Transfers sind unter Bewegungen zusammengefasst.
- Übersicht: Kennzahlen, benötigte Zuführung je Konto und Rücklagenübersicht.
- Statistik: Kategorie-Drilldown bis auf einzelne Fixpositionen. Bei einem gewählten Einzelkonto werden Transfers je nach Richtung den Eingängen oder Ausgängen zugerechnet.
- Jahr: Belastungsprofil für die zwölf Monate zusätzlich zu den Monats-Akkordeons.
- Szenarien: Was-wäre-wenn-Anpassungen für zusätzliche Eingänge, Ausgänge und Transfers, ohne den Basisplan zu verändern.
- Bewegungen können dupliziert und anschließend angepasst werden.
Das JSON-Datenmodell verwendet aktuell version: 11. Neben Konten und Kategorien gibt es eine zentrale Personenliste (persons). Eingänge, Ausgänge, Transfers und Szenario-Anpassungen können über personIds einer oder mehreren Personen zugeordnet werden. In personenbezogenen Auswertungen wird der Betrag einer gemeinsam zugeordneten Bewegung gleichmäßig auf die ausgewählten Personen verteilt; in Gesamtansichten wird die Bewegung nur einmal mit ihrem vollen Betrag gerechnet. Bestehende personId-Zuordnungen aus Version 9 werden automatisch in ein ein-elementiges personIds-Array migriert. Ältere Daten ohne Zuordnung bleiben als „Ohne Person“ erhalten. Vor einer Migration bzw. jedem Speichern wird weiterhin eine .bak-Datei angelegt.
Gemeinsame Kosten relativ zum persönlichen Einkommen (v3.25)
In der Statistik gibt es zusätzlich eine einkommensbasierte Vergleichssicht für Gemeinschaftsbereiche. Gemeinsame Einnahmen auf Gemeinschaftskonten werden zuerst zur Deckung gemeinsamer Kosten verwendet und niemals als persönliches Einkommen eines Eigentümers gezählt. Der verbleibende Finanzierungsbedarf wird für diese Vergleichsstatistik proportional zu den echten Einnahmen auf persönlich zugeordneten Konten der Gemeinschaftseigentümer verteilt. Angezeigt werden persönliches Einkommen, Einkommensanteil, Soll-Finanzierung nach Einkommen, Belastungsquote, tatsächliche Gemeinschaftsfinanzierung und deren Abweichung. Diese Vergleichssicht verändert keine Bewegungen, Kosten-Personenzuordnungen oder Kontosalden.
Beitragsanteile zu gemeinsamen Ausgaben (v3.26)
Die Gemeinschaftsfinanzierung zeigt je Person zusätzlich Prozentwerte. Kostenanteil ist der Anteil der Person an den zugeordneten gemeinsamen Kosten. Soll-Finanzierung % zeigt den daraus resultierenden Anteil am verbleibenden Finanzierungsbedarf nach Abzug gemeinsamer Einnahmen. Ist-Beitrag % zeigt den Anteil der Person an allen tatsächlichen persönlichen Einzahlungen in diesen Gemeinschaftsbereich. Anteil am Bedarf zeigt, wie viel des verbleibenden Finanzierungsbedarfs durch die tatsächliche Einzahlung dieser Person gedeckt wird. In der einkommensbasierten Vergleichssicht werden Soll-% (Einkommensanteil) und Ist-% direkt gegenübergestellt; die Abweichung wird zusätzlich in Prozentpunkten angezeigt.