Funktionen
Was Financy heute kann, und was als Nächstes kommt
Financy wird von Grund auf neu gebaut. Was heute funktioniert: Konten in jeder Währung und das Fundament darunter: Anmeldung, Teilen mit Rollen, Änderungen in Echtzeit, eine Offline-App, Export, neun Sprachen und dein eigener Server. Jeder Abschnitt verlinkt den Code dahinter.
Von Anton ShubinAktualisiert
Buchungen und Budgets gibt es noch nicht. Sieh nach, wie weit der Neubau ist.
Funktioniert heute
Das Fundament für das Geld deines Haushalts
Diese Teile funktionieren und werden in CI getestet. Konten in jeder Währung und ihre Kategorien sind da; Buchungen kommen als Nächstes.
Funktioniert heuteDie Anmeldung mit Google und GitHub braucht eigene Schlüssel für den Server, deshalb bietet eine frische Installation zunächst nur die Anmeldung per E-Mail.
Jedes Konto in seiner eigenen Währung
Bargeld, Bankkonten, Karten, Ersparnisse, Vermögenswerte und Schulden, jedes in seiner eigenen Währung, nach Art gruppiert und mit einem Standardkonto. Der ganze Haushalt sieht jede Änderung sofort.
Für Entwickler
- Der Server berechnet den Kontostand bei jedem Lesen und speichert ihn nirgends, deshalb weicht er nie ab
- Beträge sind ganze Zahlen in der kleinsten Einheit der Währung: Der Yen hat keine, der Dinar drei Nachkommastellen
- Ein Betrachter sieht die Konten; ändern können sie nur Bearbeiter und höher, und der Server prüft das
Kategorien, eine Ebene tief
Ordne Ausgaben und Einnahmen in Kategorien, jede mit Symbol und Farbe. Leg Lebensmittel und Auswärts essen unter Essen. Ein neuer Haushalt beginnt mit einer kurzen Liste in seiner Sprache.
Für Entwickler
- Eine Kategorie wird nie gelöscht: Archivieren nimmt sie aus den Auswahllisten, und frühere Einträge behalten sie
- Eine Unterkategorie hat die Art ihrer Oberkategorie, und eine Oberkategorie hat selbst keine, geprüft auf dem Server
- Ein Betrachter liest die Kategorien; nur ein Bearbeiter oder höher ändert sie
Anmeldung, erledigt
Du registrierst dich mit E-Mail-Adresse und Passwort und bestätigst die Adresse mit einem Code. Ein vergessenes Passwort setzt du zurück; anmelden kannst du dich mit Google oder GitHub, mit einem Passkey oder mit einem Code per E-Mail. Eine Authenticator-App ergänzt den Zwei-Faktor-Schutz (2FA), und du siehst jedes Gerät, auf dem du angemeldet bist, und kannst die anderen abmelden.
Für Entwickler
- Passwörter mit PBKDF2-SHA-256 über Web Crypto gehasht, standardmäßig mit 600.000 Runden
- Signierte Sitzungscookies und ein Audit-Trail für jedes Anmeldeereignis
- Persönliche API-Tokens, nur als Hashes mit Schlüssel gespeichert
Ein Haushalt, jede Person mit eigenem Login
Ein Haushalt (in der App eine Gruppe) sind die Menschen, die sich Geld teilen. Lade deine Partnerin, deinen Partner oder die Familie ein, gib jeder Person eine Rolle von Betrachter bis Inhaber und übertrage die Inhaberschaft, wenn nötig. Ein gelöschter Haushalt lässt sich 30 Tage lang wiederherstellen, und das Aktivitätsprotokoll zeigt, wer was geändert hat.
Für Entwickler
- Der Haushalt ist die eine Grenze, an der alle Daten geprüft werden
- Jede Person sieht nur die Haushalte, zu denen sie gehört
- Einladungen, Rollenwechsel und Übertragung der Inhaberschaft, jeweils mit eigenen Tests
Änderungen erscheinen auf jedem Gerät ohne Neuladen
Ändert eine Person im Haushalt etwas, sehen es alle anderen sofort, auf jedem offenen Gerät. Ein Laptop, der aus dem Ruhezustand aufwacht, holt nach, was er verpasst hat.
Für Entwickler
- Ein Standard-WebSocket, mit einer laufenden Nummer an jeder Änderung
- Ein Gerät, das sich neu verbindet, holt nach, was es verpasst hat
Eine App, die ohne Netz startet
Installiere Financy auf Handy oder Computer: Es startet auch ohne Netz und zeigt, was es zuletzt geladen hat.
Für Entwickler
- Eine lokale Kopie jeder Liste in IndexedDB und eine Schreibwarteschlange mit Idempotenzschlüsseln
- Bei jedem Konflikt entscheidest du: deine Version behalten oder die vom Server nehmen
Deine Daten gehen mit dir
Wer Inhaber ist, kann einen Haushalt jederzeit in eine offene JSON-Datei exportieren und später als neuen Haushalt importieren. Ein Import überschreibt nie das Original.
Für Entwickler
- Die ganze Datei wird geprüft, bevor etwas gespeichert wird, und dann in einem Schritt importiert
- Jeder Datensatz bekommt eine neue ID, daher kollidiert ein Import nie mit vorhandenen Daten
In neun Sprachen
Die App und diese Website gibt es auf Englisch, Russisch, Spanisch, Deutsch, Portugiesisch (Brasilien), Arabisch, Französisch, Japanisch und Chinesisch (vereinfacht). Jede Person wählt ihre Sprache in der App, so kann ein Haushalt mehrere Sprachen nutzen.
Für Entwickler
- Ein Katalog pro Sprache, geprüft von einem Test, der jede fehlende Nachricht nennt
- Zahlen und Daten über das Intl des Browsers
- Arabische Seiten laufen von rechts nach links
Läuft auf deinem eigenen Server
Financy läuft mit Docker Compose auf jedem Linux-Server, den du mietest oder besitzt. Selbst hosten ist unter der AGPL‑3.0-Lizenz kostenlos, und die Daten deines Haushalts bleiben auf deinem Server.
Für Entwickler
- Traefik davor, mit automatischen Zertifikaten
- Postgres und Valkey direkt neben den Apps
- Metriken, Logs und Alarme mit VictoriaMetrics, VictoriaLogs und Grafana
- Ein optionales tägliches, verschlüsseltes Backup der Datenbank, mit schriftlicher Anleitung zur Wiederherstellung
- Traefik
- Postgres
- Valkey
- VictoriaMetrics
- VictoriaLogs
- Grafana
- Alertmanager
- Garage file store
- restic backups
Fragen
Kann Financy das?
Läuft Financy auf Shared Hosting oder Serverless?
Nein. Financy läuft als dauerhafte Container mit Docker Compose auf einem Linux-Server, weil die API WebSocket-Verbindungen offen hält und ein Worker eine Warteschlange abarbeitet.
Welche Datenbank nutzt Financy?
Postgres. Die Migrationen, Abfragen und Integrationstests setzen sie voraus.
Gibt es eine App fürs Handy?
Noch nicht in den App-Stores. Die Web-App lässt sich schon heute aus dem Browser auf Handy und Computer installieren und startet auch ohne Netz.