SSD Nodes Learn Hosting plans →
Anleitungen Matt ConnorVon Matt Connor · Aktualisiert 2026-09-06

Self-hosted-Budget-Apps im Vergleich

Welche Self-hosted-Budget-Apps Banktransaktionen automatisch abrufen, welche den manuellen Import brauchen und wie Actual, Firefly III, Fava und Wallos abschneiden.

Die kurze Antwort

Self-hosted-Budget-Apps unterscheiden sich vor allem in einem Punkt, der für die meisten Installationen entscheidend ist: Ruft die Software Ihre Transaktionen ab, oder geben Sie sie manuell ein? Actual Budget ist die beste Standardwahl für einen Haushaltsplan. Es verwendet die Umschlagmethode und läuft als einzelner Container. Auf Ihre Anforderung hin kann es Transaktionen auch über einen Bankdatenanbieter abrufen.

Firefly III ist die richtige Wahl, wenn Sie Konten mit doppelter Buchführung benötigen oder Importe automatisch nach einem Zeitplan ausführen lassen möchten. Beancount mit Fava eignet sich für Personen, die das Hauptbuch als einfache Textdatei unter Versionsverwaltung führen möchten. Wallos erfüllt eine klar abgegrenzte Aufgabe: Es erfasst die wiederkehrenden Kosten, die jeden Monat von Ihrem Konto abgehen.

Keine dieser Anwendungen stellt selbst eine Verbindung zu Ihrer Bank her. Jede Anwendung, die Banktransaktionen anzeigt, bezieht diese von einem Drittanbieter-Aggregator. Ein Konto bei einem solchen Aggregator einzurichten, ist der Schritt, an dem viele Nutzer abbrechen. Lesen Sie den Abschnitt zur Synchronisierung, bevor Sie etwas installieren.

Was jeweils ausgeführt wird, im direkten Vergleich

ChartServices, storage and sync model, taken from each project's own install docs
The data behind this chart
[
  {
    "tool": "Actual Budget",
    "services": 1,
    "storage": "SQLite files",
    "bank_sync": "Aggregators, manual pull",
    "multi_user": "Needs OpenID",
    "encryption": "Optional end to end"
  },
  {
    "tool": "Firefly III",
    "services": 3,
    "storage": "MariaDB",
    "bank_sync": "Importer, cron capable",
    "multi_user": "Built in accounts",
    "encryption": "None at rest"
  },
  {
    "tool": "Beancount + Fava",
    "services": 1,
    "storage": "Text file",
    "bank_sync": "Import scripts only",
    "multi_user": "No login at all",
    "encryption": "File level, your choice"
  },
  {
    "tool": "Wallos",
    "services": 1,
    "storage": "SQLite file",
    "bank_sync": "Manual entry only",
    "multi_user": "Extra logins in settings",
    "encryption": "None at rest"
  }
]

Actual Budget führt 1 dauerhaft laufenden Dienst aus. Firefly III führt 3 aus, weil die offizielle Compose-Datei die Anwendung, eine MariaDB-Datenbank und einen Cron-Hilfsdienst als separate Container startet. Das ist die vollständige Ressourcenübersicht für diese 4 Anwendungen: Ein Datenbankserver ist der einzige ressourcenintensive Bestandteil in der Gruppe. Der Rest ist ein kleiner Prozess, der eine kleine Datei verwaltet.

Welche Self-Hosted-Budget-Apps können Transaktionen von Ihrer Bank abrufen?

Keine Self-Hosted-App verbindet sich direkt mit einer Bank. Banken stellen Transaktionen über Open-Banking-APIs bereit. Diese APIs werden über einen Aggregator erreicht: ein Unternehmen, das die Bankbeziehungen unterhält und den Zugriff weiterverkauft. Die eigentliche Frage hat daher zwei Teile. Spricht die App mit einem Aggregator? Und können Sie bei einem Aggregator ein Konto erhalten, der Ihre Bank unterstützt?

Actual Budget unterstützt mehrere Anbieter. Im August 2026 nennt die Dokumentation Akahu für Neuseeland, Enable Banking für Europa, GoCardless Bank Account Data für Europa, SimpleFIN Bridge für Nordamerika und Pluggy.ai für Brasilien. Sie registrieren sich selbst beim Anbieter, erzeugen Schlüssel und Secrets und tragen diese anschließend auf Ihrem Server ein. Zwei Einschränkungen sind wichtig. In der Dokumentation steht ausdrücklich, dass Actual Bankdaten nicht automatisch synchronisiert. Eine Person muss die Synchronisierung per Schaltfläche starten. Auf derselben Seite wird außerdem darauf hingewiesen, dass GoCardless keine neuen Konten annimmt. Damit entfällt der kostenlose europäische Weg, den ältere Anleitungen weiterhin empfehlen. SimpleFIN Bridge ist ein kostenpflichtiger Abonnementdienst. Die Abrechnung erfolgt durch den Anbieter und nicht durch Actual.

Firefly III lagert den Import in einen zweiten Container aus: den Firefly III Data Importer. Die Beispielkonfiguration enthält neben CSV- und CAMT.053-Dateiimporten Felder für Zugangsdaten von GoCardless (Nordigen), Enable Banking, Spectre und SimpleFIN. Setzen Sie CAN_POST_AUTOIMPORT=true und tragen Sie in AUTO_IMPORT_SECRET einen langen zufälligen Wert ein. Anschließend kann ein Cron-Job auf dem Host einen Import auslösen, ohne dass ein Browser geöffnet sein muss. Das ist in diesem Vergleich die einzige tatsächlich unbeaufsichtigte Synchronisierung.

Beancount bietet keine Synchronisierung. Sie laden eine CSV- oder OFX-Datei von Ihrer Bank herunter und führen ein Importskript aus, das Sie selbst geschrieben oder übernommen haben. Auch Wallos bietet keine Synchronisierung. Das ist beabsichtigt: Sie tragen ein Abonnement einmal ein, und es wird nach seinem eigenen Zeitplan wiederholt.

Der manuelle Import funktioniert immer und bleibt auch dann nutzbar, wenn Ihre Bank den Anbieter wechselt. Wenn die Bankanbindung für Sie ausschlaggebend ist, prüfen Sie vor der Installation, ob ein Aggregator Ihre konkrete Bank unterstützt. Diese Prüfung dauert zehn Minuten und erspart Ihnen ein ganzes Wochenende.

Actual Budget: Umschlagbudgetierung in einem Container

Umschlagbudgetierung bedeutet, dass Sie bereits vorhandenes Geld einer Kategorie zuweisen, bevor Sie es ausgeben. Für Lebensmittel werden 300 zugewiesen, für den Transport 80. Die Summe der Zuweisungen darf niemals höher sein als das Geld auf Ihren Konten. Actual setzt diese Methode um und ist lokal ausgerichtet: Ihr Browser oder Desktop-Client enthält eine vollständige Kopie des Budgets und synchronisiert sie mit Ihrem Server. Dadurch funktioniert die Anwendung weiter, wenn der Server nicht verfügbar ist.

services:
  actual_server:
    image: actualbudget/actual-server:latest
    ports:
      - '5006:5006'
    volumes:
      - ./actual-data:/data
    restart: unless-stopped

Starten Sie die Anwendung mit docker compose up -d und öffnen Sie http://your-server:5006. Im Datenvolume werden zwei Verzeichnisse angelegt: server-files und user-files. Diese Verzeichnisse enthalten Ihr Budget. Schalten Sie einen Reverse Proxy mit TLS (Transport Layer Security) davor, bevor Sie die Anwendung außerhalb Ihres eigenen Netzwerks verwenden. Die vollständige Anleitung finden Sie in unserer Installationsanleitung für Actual Budget. Die Compose-Muster hinter dieser Datei werden in Docker Compose auf einem VPS erklärt.

Mehrere Benutzer. Standardmäßig verwendet der Server ein gemeinsames Passwort für alle Benutzer. Separate Konten erfordern OpenID Connect. Der Server unterstützt dafür Anbieter wie Authentik, Keycloak, Google und GitHub. Die erste Person, die sich über OpenID anmeldet, wird Eigentümer des Servers. ACTUAL_USER_CREATION_MODE legt fest, ob spätere Anmeldungen automatisch eigene Konten erstellen. Zwei Personen können dieselbe Budgetdatei gleichzeitig öffnen. Die Dokumentation warnt jedoch davor, dass gleichzeitig vorgenommene widersprüchliche Änderungen nicht sicher sind. Ein Paar, das ein gemeinsames Budget verwendet, sollte daher vermeiden, gleichzeitig dieselbe Ansicht zu bearbeiten.

Verschlüsselung. Actual bietet Ende-zu-Ende-Verschlüsselung pro Budgetdatei. Wenn sie aktiviert ist, speichert der Server Daten, die er nicht lesen kann. Das ist auf einem gemieteten Server erwünscht. Daraus ergeben sich zwei Konsequenzen. Wenn Sie das Verschlüsselungspasswort verlieren, ist die Datei verloren, da es keine Möglichkeit zum Zurücksetzen gibt. Tokens für die Banksynchronisierung werden separat gespeichert und nicht durch diese Verschlüsselung geschützt. Jeder Benutzer mit Datenbankzugriff auf dem Server kann sie daher lesen.

Firefly III: doppelte Buchführung und der einzige unbeaufsichtigte Import hier

Bei der doppelten Buchführung hat jede Transaktion ein Quellkonto und ein Zielkonto. Beim Kauf von Lebensmitteln wird Geld vom Girokonto auf ein Aufwandskonto übertragen, sodass kein Geld aus dem Nichts erscheint. Geld, das Sie nicht erklären können, wird als unausgeglichenes Konto sichtbar, statt in einer Kategoriesumme verborgen zu bleiben. Das ist der Grund, Firefly III auszuwählen: Die Anwendung ist eher auf Buchhaltung als auf Budgetplanung ausgerichtet.

Installieren Sie die Anwendung aus den Dateien des Projekts:

mkdir -p /srv/firefly
curl -fsSL -o /srv/firefly/docker-compose.yml https://raw.githubusercontent.com/firefly-iii/docker/main/docker-compose.yml
curl -fsSL -o /srv/firefly/.env https://raw.githubusercontent.com/firefly-iii/firefly-iii/main/.env.example
curl -fsSL -o /srv/firefly/.db.env https://raw.githubusercontent.com/firefly-iii/docker/main/database.env

Bearbeiten Sie .env vor dem ersten Start. APP_KEY muss eine Zeichenkette mit genau 32 Zeichen sein. Das Projekt liefert den Befehl, der eine solche Zeichenkette erzeugt:

head /dev/urandom | LC_ALL=C tr -dc 'A-Za-z0-9' | head -c 32 && echo

STATIC_CRON_TOKEN benötigt eine zweite Zeichenkette mit 32 Zeichen. Der Cron-Container in dieser Compose-Datei ruft die Anwendung einmal täglich auf. Ohne ein gültiges Token wird der Aufruf abgewiesen. Wiederkehrende Transaktionen und Zahlungserinnerungen werden dann nicht ausgelöst. Setzen Sie SITE_OWNER auf Ihre E-Mail-Adresse. Verwenden Sie für das Datenbankpasswort in .env denselben Wert wie in .db.env. Starten Sie die Anwendung anschließend:

docker compose up -d
docker compose logs -f app

Ein erfolgreicher erster Start endet damit, dass die Anwendung innerhalb des Containers auf Port 80 bereitgestellt wird und sich die Logausgabe stabilisiert. Eine Schleife aus Fehlern bei der Datenbankverbindung bedeutet, dass die Passwörter in .env und .db.env nicht übereinstimmen. Die Anwendung kann sich deshalb nicht bei MariaDB anmelden.

Automatischer Import. Der Data Importer läuft in einem eigenen Container und authentifiziert sich bei Firefly III mit einem persönlichen Zugriffstoken in FIREFLY_III_ACCESS_TOKEN. Konfigurieren Sie einen Import interaktiv und speichern Sie die dabei erzeugte Konfigurationsdatei. Lassen Sie anschließend Cron den Auto-Import-Endpunkt regelmäßig aufrufen. Das ist gemeint, wenn von der Synchronisierung durch Firefly III die Rede ist: Der Aggregator verwaltet die Bankverbindung, der Importer ruft die Daten ab, und Ihr Server erledigt die Arbeit, während Sie schlafen.

Mehrere Benutzer. Firefly III verwaltet echte Benutzerkonten in einer eigenen Datenbank. Das wird durch AUTHENTICATION_GUARD=web ausgewählt. Wenn Sie stattdessen auf remote_user_guard verweisen, übernimmt ein authentifizierender Proxy wie Authelia die Anmeldung und übergibt den Benutzernamen in einem Header. LDAP wird nicht mehr unterstützt. Wenn die Instanz aus dem Internet erreichbar ist, öffnen Sie nach der ersten Anmeldung die Administrationsseite und prüfen Sie die Einstellung für den Einzelbenutzermodus. Sie steuert, ob weitere Benutzer sich registrieren können.

Verschlüsselung. Im Ruhezustand gibt es keine Verschlüsselung. Die Transaktionen liegen lesbar in MariaDB. Jeder, der das Datenbankpasswort oder eine Kopie des Volumes besitzt, kann dadurch Ihre Finanzhistorie einsehen. Beenden Sie TLS davor, halten Sie die Anwendung nach Möglichkeit vom offenen Internet fern und verschlüsseln Sie die Backups.

Beancount und Fava: Ihr Hauptbuch ist eine Textdatei

Beancount ist eine Klartextsyntax für die doppelte Buchführung. Eine Transaktion besteht aus wenigen Zeilen in einer Datei, die Ihnen gehört:

2026-08-19 * "Supermarket" "Weekly shop"
  Expenses:Food:Groceries   42.10 EUR
  Assets:Bank:Checking

Fava ist die Weboberfläche für diese Datei. Sie erstellt Diagramme, die Bilanz und die Gewinn- und Verlustrechnung und kann die Quelldatei bearbeiten. Installieren Sie Fava in einer virtuellen Umgebung:

sudo apt update && sudo apt install -y python3-venv
python3 -m venv ~/.venvs/fava
~/.venvs/fava/bin/pip install fava
~/.venvs/fava/bin/fava --read-only ~/ledger/main.beancount

Ein einfaches pip3 install fava schlägt unter Ubuntu 24.04 mit error: externally-managed-environment fehl, weil apt die System-Python-Installation verwaltet. Die virtuelle Umgebung ist daher die richtige Lösung und kein Workaround.

Fava lauscht standardmäßig auf localhost an Port 5000. -H ändert den Host und -p ändert den Port. Überlegen Sie jedoch, bevor Sie den Zugriff erweitern: Fava hat keine Anmeldung. Die Befehlszeile bietet keine Option für Benutzername oder Passwort. Alles, was den Port erreichen kann, kann daher alle Transaktionen lesen, die Ihnen gehören. Behalten Sie den Standard-Host bei und greifen Sie über einen SSH-Tunnel, ein VPN oder einen Proxy mit Authentifizierung darauf zu. Das Flag --read-only verhindert Schreibzugriffe über den Browser. Das ist sinnvoll, wenn Sie die Datei auf Ihrem Laptop bearbeiten und committen.

Mehrere Benutzer und Verschlüsselung. Es gibt überhaupt kein Benutzermodell. Eine Instanz stellt ein Hauptbuch bereit, ohne dass eine Identität zugeordnet ist. Das Teilen bedeutet daher, dass Sie den Proxy-Zugang teilen. Die Verschlüsselung hängt davon ab, wie Sie die Datei schützen, beispielsweise mit einer mit age oder gpg verschlüsselten Kopie oder einem verschlüsselten Backup-Repository. Der Vorteil eines textbasierten Hauptbuchs ist, dass git kostenlos Versionsverlauf, Blame-Informationen und eine entfernte Kopie bereitstellt.

Wallos: die kleine Lösung für wiederkehrende Kosten

services:
  wallos:
    image: bellamy/wallos:latest
    ports:
      - "8282:80/tcp"
    volumes:
      - './db:/var/www/html/db'
      - './logos:/var/www/html/images/uploads/logos'
    restart: unless-stopped

Wallos speichert alle Daten in einer SQLite-Datei unter db/wallos.db. Die Anwendung unterstützt mehrere Währungen und rechnet Beträge um. Außerdem kann sie Sie per E-Mail, Discord, Telegram, Gotify, Pushover oder über einen Webhook auf eine bevorstehende Verlängerung hinweisen. Zusätzliche Anmeldungen erstellen Sie auf der Einstellungsseite. Jede Anmeldung hat ihre eigene Liste.

Wichtig ist, was Wallos nicht ist. Wallos erfasst keine täglichen Ausgaben und kennt kein Budgetkonzept. Die Anwendung beantwortet eine Frage: Was bezahle ich jeden Monat, und was wird nächste Woche verlängert? Viele betreiben Wallos genau deshalb parallel zu Actual. Wenn es bei den wiederkehrenden Beträgen um die Beträge geht, die Sie versenden, statt um die Beträge, die Sie bezahlen, sehen Sie sich stattdessen Self-Hosting-Software für Rechnungsstellung an.

Was ist mit Maybe?

Maybe Finance wird in vielen Diskussionen empfohlen und benötigt daher eine Einordnung. In der README steht, dass das Repository nicht mehr aktiv gepflegt wird. Die letzte Version ist als v0.6.0 gekennzeichnet, und der Code steht unter AGPLv3. Die Anwendung läuft weiterhin. Budgetdaten werden über ein Jahrzehnt aufbewahrt. Nicht gepflegte Software, die ein Datenbankschema und Bankzugangsdaten verwaltet, ist dafür kein geeigneter Ort. Das war im August 2026 der Stand. Prüfen Sie daher das Repository selbst, bevor Sie sich dafür entscheiden.

Wie viel Serverkapazität benötigen diese Anwendungen?

Alle diese Anwendungen sind klein. Sie sollten den tatsächlichen Bedarf messen, statt einer Zahl aus einem Blog zu vertrauen. Führen Sie diesen Befehl nach einem normalen Nutzungstag auf Ihrem eigenen Server aus:

docker stats --no-stream

Lesen Sie die Spalte MEM USAGE. Actual, Wallos und Fava halten jeweils eine kleine Datei hinter einem kleinen Prozess. Daher laufen sie problemlos auf einem kleinen VPS neben anderen Diensten. Firefly III unterscheidet sich, weil MariaDB Teil des Stacks ist. Ein Datenbankserver belegt Arbeitsspeicher, unabhängig davon, ob Sie gerade Abfragen ausführen. Planen Sie den zusätzlichen Spielraum für die Datenbank ein, nicht für Ihre Transaktionen. Trotzdem ist eine Budgetanwendung nur selten der Dienst, der einen VPS auslastet. Wenn Sie einen Server für den gesamten Stack dimensionieren, entscheiden eher die Speicheranforderungen von PhotoPrism und Immich, wie viel RAM Sie benötigen.

Die Daten selbst wachsen kaum. Zehn Jahre Haushaltsbuchungen belegen nur wenige Megabytes. Der Speicherplatz ist daher nicht der begrenzende Faktor. Die wichtigste Folge dieser langen Nutzungsdauer wird im nächsten Abschnitt behandelt.

Die mobile Nutzung und ihre Grenzen

Hier verlieren Self-Hosted-Finanzanwendungen gegenüber kommerziellen Lösungen. Seien Sie daher realistisch, bevor Sie einen Haushalt auf eine solche Anwendung umstellen.

Die offiziellen mobilen Anwendungen sind nach der aktuellen Dokumentation veraltet. Stattdessen erhalten Sie die Webversion. In der zugehörigen Dokumentation wird sie als responsive Progressive Web App beschrieben, die Sie auf dem Startbildschirm installieren und wie eine native Anwendung verwenden. Sie funktioniert gut. Sie ist jedoch keine App aus einem App Store. Die Community pflegt allerdings inoffizielle native Clients.

Firefly III veröffentlicht ebenfalls keine offizielle App. Seine API hat jedoch zwei leistungsfähige inoffizielle Apps hervorgebracht. Waterfly III ist eine Android-App, die bei Google Play und F-Droid veröffentlicht wird. Abacus läuft auf iPhone, iPad und Android, meldet sich mit OAuth2 an und speichert seine Tokens im iOS-Schlüsselbund. Beide Apps benötigen eine von Ihrem Telefon aus erreichbare Instanz.

Fava und Wallos stellen lediglich eine responsive Webseite bereit. Das Lesen eines Ledgers auf einem Telefon ist unproblematisch. Eine Beancount-Transaktion über die Telefontastatur einzugeben, ist es nicht.

Ein Punkt gilt für alle Anwendungen: Ein Telefon mit Mobilfunkverbindung befindet sich nicht in Ihrem Heimnetzwerk. Entweder veröffentlichen Sie die Anwendung unter einer Domain mit TLS und starker Authentifizierung, oder Sie verbinden das Telefon mit einem VPN. Eine Finanzanwendung mit nur einem gemeinsamen Passwort im offenen Internet zu veröffentlichen, ist der Fehler, den Sie vermeiden sollten. Wenn keine dieser Möglichkeiten infrage kommt, ist die Instanz hinter einem v3-Onion-Service zu betreiben eine dritte Option. Dafür benötigen Sie weder einen öffentlichen DNS-Eintrag noch einen für das gesamte Internet offenen Port. Sie erreichen die Anwendung dann jedoch auf dem Telefon über Tor Browser.

Backups: der wichtigste Abschnitt in dieser Kategorie

Der Verlust einer Mediathek kostet Sie einen Download. Der Verlust von fünf Jahren kategorisierter Transaktionen kostet Sie Daten, die Sie nicht erneut herunterladen können. Richten Sie Backups am ersten Tag ein.

Was Sie pro Anwendung kopieren sollten:

  • Actual Budget: das gesamte Daten-Volume, sowohl server-files als auch user-files.
  • Firefly III: einen Datenbank-Dump sowie .env, .db.env und das Upload-Volume.
  • Beancount: die Ledger-Datei, idealerweise als Git-Repository mit einem Remote.
  • Wallos: db/wallos.db und das Verzeichnis mit den hochgeladenen Logos.

Eine aktive SQLite-Datei zu kopieren, ist der klassische Weg zu einem Backup, das sich nicht wiederherstellen lässt. SQLite speichert aktuelle Schreibvorgänge in einer separaten Write-Ahead-Log-Datei. Deshalb können in einer Kopie der .sqlite-Datei allein die neuesten Transaktionen fehlen, oder die Datei lässt sich überhaupt nicht öffnen. Stoppen Sie den Container für die wenigen Sekunden, die das Kopieren dauert:

cd /srv/actual
docker compose stop actual_server
tar czf /srv/backups/actual-$(date +%F).tgz -C /srv/actual actual-data
docker compose start actual_server

Firefly III erwartet stattdessen einen Dump. Erstellen Sie ihn innerhalb des Datenbank-Containers, damit das Passwort nicht in Ihrer Shell-Historie landet:

cd /srv/firefly
docker compose exec -T db sh -c 'mariadb-dump -u firefly -p"$MYSQL_PASSWORD" firefly' > /srv/backups/firefly-$(date +%F).sql

Ältere MariaDB-Images enthalten dasselbe Tool noch unter seinem früheren Namen mysqldump. Bewahren Sie .env und .db.env zusammen mit dem Dump auf. Eine Datenbank, die Sie in eine Installation wiederherstellen, deren Konfiguration Sie nicht mehr haben, wird sonst zu einem Rätsel, das Sie am denkbar schlechtesten Tag lösen müssen.

Eine Kopie auf demselben VPS schützt Sie vor einer fehlerhaften Änderung. Sie schützt Sie nicht vor einem verlorenen oder kompromittierten Server. Übertragen Sie das Backup-Verzeichnis mit restic in einen Objektspeicher. restic verschlüsselt das Repository, bevor Daten den Server verlassen:

export RESTIC_REPOSITORY=s3:s3.example.com/money-backups
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init
restic backup /srv/backups
restic forget --keep-daily 7 --keep-weekly 8 --keep-monthly 12 --prune

restic snapshots sollte jetzt einen Snapshot mit dem heutigen Datum anzeigen. Die Einrichtung der Zeitplanung, der Zugangsdaten und des systemd-Timers wird in unserem Leitfaden zu verschlüsselten restic-Backups auf einem VPS beschrieben.

Ein Backup, das Sie noch nie wiederhergestellt haben, ist nur eine Vermutung. Testen Sie es jetzt einmal, solange alles funktioniert:

restic restore latest --target /tmp/restore-test

Entpacken Sie das Actual-Archiv in ein temporäres Verzeichnis. Starten Sie darin einen zweiten Container auf einem anderen Port und öffnen Sie ihn. Sie sollten Ihre Konten mit den Kontoständen sehen, die sie zum Zeitpunkt des Backups hatten. Laden Sie den Dump für Firefly III in eine temporäre Datenbank und zählen Sie die Zeilen in der transactions-Tabelle. Stimmen die Zahlen mit der aktiven Instanz überein, ist das Backup tatsächlich verwendbar. Löschen Sie anschließend die temporären Kopien. Eine vergessene Testinstanz mit echten Finanzdaten ist ein eigenes Problem.

Wählen Sie eine Anwendung aus und betreiben Sie sie einen Monat lang mit echten Daten, bevor Sie historische Daten migrieren. Richten Sie das Backup noch in derselben Woche ein. Wenn Sie noch entscheiden, welche Teile Ihres Lebens auf dem eigenen Server laufen sollen, behandelt unsere Übersicht zu empfehlenswerten Self-Hosting-Anwendungen im Jahr 2026 den restlichen Stack.

FAQ

Welche Self-Hosting-Budgetanwendung kann eine Verbindung zu meiner Bank herstellen?

Actual Budget und Firefly III können das beide über einen Drittanbieter-Aggregator, nicht über eine direkte Bankverbindung. Actual unterstützt unter anderem SimpleFIN Bridge für Nordamerika, Enable Banking für Europa, Akahu für Neuseeland und Pluggy.ai für Brasilien. In der Dokumentation steht außerdem, dass Actual Bankdaten nicht automatisch synchronisiert. Sie müssen die Synchronisierung daher manuell starten. Firefly III verwendet einen separaten Data Importer-Container, der über cron ausgelöst werden kann. Damit läuft die Synchronisierung tatsächlich unbeaufsichtigt. Beancount und Wallos bieten überhaupt keine Bankverbindung. Prüfen Sie vor der Auswahl, ob ein Aggregator Ihre konkrete Bank unterstützt. Die Abdeckung ist dafür häufiger entscheidend als der Funktionsumfang.

Kann ich diese Budgetanwendungen auf meinem Smartphone verwenden?

Ja, allerdings nicht mit einer offiziellen App. Laut der Dokumentation von Actual sind die offiziellen mobilen Anwendungen veraltet. Stattdessen wird die Webversion empfohlen, eine responsive Progressive Web App, die Sie auf dem Startbildschirm installieren können. Für Firefly III gibt es zwei gute inoffizielle Clients: Waterfly III für Android sowie Abacus für iOS und Android. Fava und Wallos bieten responsive Webseiten und nichts darüber hinaus. In jedem Fall muss das Smartphone Ihren Server erreichen können. Planen Sie daher eine Domain mit TLS und starker Authentifizierung ein oder verbinden Sie das Smartphone über ein VPN.

Wie sichere ich eine Self-Hosting-Budgetanwendung, ohne die Datenbank zu beschädigen?

Kopieren Sie niemals eine aktive SQLite-Datei allein. SQLite speichert aktuelle Schreibvorgänge in einer separaten Write-Ahead-Log-Datei. Eine Kopie während eines Schreibvorgangs kann daher Transaktionen nicht enthalten oder sich nicht öffnen lassen. Stoppen Sie den Container, kopieren Sie das Datenverzeichnis und starten Sie den Container anschließend wieder. Bei so kleinen Anwendungen dauert das nur wenige Sekunden. Führen Sie bei Firefly III stattdessen mariadb-dump im Datenbank-Container aus und bewahren Sie die Umgebungsdateien zusammen mit dem Dump auf. Übertragen Sie das Ergebnis in ein verschlüsseltes restic-Repository außerhalb des Servers. Stellen Sie die Sicherung einmal wieder her, um ihre Funktionsfähigkeit zu überprüfen.

Ist Firefly III für einen kleinen VPS zu umfangreich?

Firefly III ist hier die ressourcenintensivste Option. Der Grund ist, dass die offizielle Compose-Datei neben den Containern für die Anwendung und cron auch einen MariaDB-Server startet. Finanzdaten für eine einzelne Person sind sehr klein. Der Speicherbedarf entsteht daher hauptsächlich durch den untätigen Datenbankprozess und nicht durch Ihre Transaktionen. Führen Sie nach einem normalen Nutzungstag docker stats --no-stream auf Ihrem eigenen Server aus und prüfen Sie die Spalte MEM USAGE, statt einer veröffentlichten Angabe zu vertrauen. Wenn Sie eine möglichst geringe Ressourcennutzung benötigen, führen Actual Budget und Wallos jeweils einen Prozess aus, der auf eine einzelne Datei zugreift.

#budgeting#personal-finance#self-hosting#docker#privacy