Jede Ausgabe nach eigener Regel
Feste Quote oder nach Einkommen — pro Posten gewählt, nie angenommen. Die Standard-Aufteilung füllt nur das Formular vor.
Zwei Einkommen, ein Haushalt, ein klarer Plan.
Der Haushaltsplaner für alle, die Kosten ungleich teilen — und wollen, dass die Rechnung stimmt. Miete nach Einkommen, Strom halbe-halbe, das Fitnessstudio zahlt nur einer. Jeder Posten bekommt seine eigene Regel, und beide sehen sofort, was er sie kostet.
Das Problem
Aufteilungs-Apps kennen genau eine Regel für alles. Tabellen können es ausdrücken — bis eine Zelle verrutscht und die Formel monatelang still falsch rechnet. KassenKnoten macht die Aufteilung zur bewussten Entscheidung pro Posten, rechnet sie auf den Cent und zeigt beim Tippen, was dabei herauskommt.
Feste Quote oder nach Einkommen — pro Posten gewählt, nie angenommen. Die Standard-Aufteilung füllt nur das Formular vor.
Beträge sind ganze Cent, Anteile Basispunkte. 39,99 € halbe-halbe werden 20,00 € und 19,99 € — nie 39,98 €. Die Rechen-Engine ist ein reines, getestetes Modul.
Jeder Eintrag trägt die Monate, für die er gilt. Eine Gehaltserhöhung im September lässt den August August bleiben — und die App fragt nach, ob eine Änderung neu gilt oder schon immer galt.
Lebensmittel, Tanken, Ausgehen: entweder zählt der Plan — oder jede Rechnung mit Datum, und der Plan wird zum Budget, gegen das gemessen wird.
Fotografieren, und Betrag, Datum und Geschäft sind eingetragen. Gelesen auf deinem eigenen Server — das Foto wird nirgends hochgeladen und nicht gespeichert.
Zwölf Monate in einem Diagramm. Am Verlauf entlangziehen, und Einnahmen, Kosten, Sparrate und freies Geld jedes Monats folgen — ohne Seitenwechsel.
Eine Versicherung für 132,00 € im Jahr steht als 11,00 € im Monat neben allem anderen. Niemand teilt mehr im Kopf durch zwölf.
Spartöpfe mit monatlicher Rate, Stand und optionalem Ziel — einer Person zugeordnet oder dem Haushalt.
Negatives freies Geld, eine Sparrate über den Einnahmen, ein überschrittenes Budget — als Hinweis, nicht als Modal. Löschen zeigt „Rückgängig“ statt „Bist du sicher?“.
Ein Haushalts-Passwort mit optionalem Einmalcode, Authentik oder ein anderer OpenID-Connect-Anbieter — oder beides, umgeschaltet in den Einstellungen.
Eigenes Symbol auf dem Home-Bildschirm, Start ohne Adressleiste. Browser, die das nicht können, bekommen den Weg durch ihr eigenes Menü genannt.
Die Sprache wählst du beim Einrichten und änderst sie jederzeit. Sie gehört dem Haushalt, nicht dem Browser — das Küchen-Tablet spricht dieselbe wie der Rechner.
Lade eine eigene Erweiterung hoch, und sie steuert Karten zur Übersicht bei. Sie läuft auf deinem Server mit vollem Zugriff — installiere nur, was du gelesen hast oder wem du vertraust.
Eine SQLite-Datei auf einem Volume, das dir gehört. Der Server hebt daneben die letzten vierzehn Stände eurer Daten auf — herunterladen, in einem Schritt wiederherstellen.
Gemeinsame Fixkosten
Jeder gemeinsame Posten zeigt beide Anteile in Euro und Prozent, und welche Regel sie erzeugt hat. Die Aufteilung wird beim Tippen vorgerechnet, mit derselben Funktion, die später auch speichert — eine Vorschau, die anders rechnet als das Ergebnis, ist keine.
Monat für Monat
Jeder Eintrag kennt die Monate, in denen er gilt, also lässt sich jeder Monat so zeigen, wie er wirklich war. Die Übersicht zeichnet die letzten zwölf — am Diagramm entlangziehen oder die Pfeiltasten nutzen, und die Zahlen des Monats folgen.
Variable Kosten
Was nicht jeden Monat gleich ist, bekommt ein Budget — und du entscheidest pro Budget, wie es geführt wird. Plan zählt den geplanten Betrag und fragt nichts weiter. Detailliert zählt, was tatsächlich gebucht ist, jede Ausgabe mit Datum.
Belege
Beleg scannen öffnet die Kamera, und Betrag, Datum und Geschäft kommen ausgefüllt zurück. Offen bleibt nur, zu welchem Budget er gehört — das Budget trägt die Aufteilung, also bleibt das eure Entscheidung.
Rücklagen
Spartöpfe mit Rate, Stand und optionalem Ziel. Der Fortschritt ist ein Balken, kein Kopfrechnen — und wenn ein Topf sein Ziel überschreitet, sagt die Übersicht es freundlich.
Einstellungen
Sprache und Darstellung, Standardaufteilung und Kategorien, Anmeldung, Sicherungen und Erweiterungen — jede auf ihrer eigenen Seite, alle auf einer Übersicht. Auf dem großen Bildschirm bleibt die Liste daneben.
Am Handy
Der Haushaltsplan wird in der Küche geöffnet, nicht am Schreibtisch. Gleiche Funktionen, Navigation in Daumenreichweite, ein Zahlenfeld, das den Ziffernblock aufruft, und ein Design, das dem Systemthema folgt.
Sicherheit
Ein Haushalts-Passwort, mit argon2id gehasht und aus der Umgebung gelesen — eine Kopie der Datenbank ist keine Kopie des Passworts. Optional dazu ein Code aus jeder Authenticator-App (TOTP nach RFC 6238). Ein benutzter Code wird abgelehnt.
OpenID Connect mit PKCE, das ID-Token gegen die Schlüssel des Anbieters geprüft, und herein kommen nur Adressen auf einer Allowlist in der App. Wer von der Liste genommen wird, ist beim nächsten Klick abgemeldet.
Das Sitzungs-Cookie ist verschlüsselt, nicht bloß signiert (JWE, A256GCM), httpOnly, SameSite=Lax und Secure über HTTPS.
Jede Route außer Anmeldung und Health-Check verlangt eine Sitzung — deny by default, damit eine neue Seite nicht versehentlich öffentlich ist. Server Actions prüfen zusätzlich selbst.
Content-Security-Policy mit Nonce pro Anfrage, Schriften selbst gehostet, keine CDNs, keine Telemetrie. Der Container läuft als unprivilegierter Benutzer.
Kein Image wird veröffentlicht, bevor die Tests bestehen und ein echter Browser sich angemeldet, einen Haushalt eingerichtet und eine Aufteilung in der Handy-Ansicht geprüft hat — gegen genau den Server, den das Image startet.
Selbst hosten
Kein Quellcode, kein Node, kein Build. Das Image gibt es für amd64 und arm64, und es läuft überall, wo Docker Linux-Container ausführt: auf einem Linux-Server oder NAS, einem Raspberry Pi 4 oder 5 mit 64-Bit-System, einem Mac oder unter Windows mit Docker Desktop. Beide Images werden vor jedem Release gestartet und im Browser getestet. Zwei Dateien herunterladen, die Geheimnisse erzeugen — die Skripte dafür laufen im Image selbst — und starten.
Linux und macOS
mkdir kassenknoten && cd kassenknoten
curl -LO https://github.com/jankln/KassenKnoten/releases/latest/download/docker-compose.yml
curl -L -o .env https://github.com/jankln/KassenKnoten/releases/latest/download/env.example
# ein Sitzungsschlüssel, an .env angehängt
docker run --rm ghcr.io/jankln/kassenknoten:latest \
node scripts/session-secret.ts >> .env
# euer Haushalts-Passwort, gehasht — die ausgegebene Zeile in .env einfügen
docker run -it --rm ghcr.io/jankln/kassenknoten:latest \
node scripts/hash-password.ts
# optional: zweiter Faktor, druckt einen QR-Code ins Terminal
docker run -it --rm ghcr.io/jankln/kassenknoten:latest \
node scripts/totp-secret.ts
# optional: mit Authentik anmelden — die OIDC_*-Zeilen in .env ausfüllen
docker compose up -d
Windows · PowerShell
mkdir kassenknoten; cd kassenknoten
curl.exe -LO https://github.com/jankln/KassenKnoten/releases/latest/download/docker-compose.yml
curl.exe -L -o .env https://github.com/jankln/KassenKnoten/releases/latest/download/env.example
# ein Sitzungsschlüssel, an .env angehängt
docker run --rm ghcr.io/jankln/kassenknoten:latest `
node scripts/session-secret.ts | Add-Content .env
# euer Haushalts-Passwort, gehasht — die Zeile in .env einfügen (notepad .env)
docker run -it --rm ghcr.io/jankln/kassenknoten:latest `
node scripts/hash-password.ts
docker compose up -d
Windows braucht Docker Desktop mit WSL 2. Danach http://127.0.0.1:3000 öffnen — ein Assistent in drei Schritten richtet den Haushalt ein. Für den Zugriff von außen gehört ein Reverse Proxy mit TLS davor.