Skip to content
firsttrisPublic

About

Selbst gehostete Buchhaltung für Freiberufler, Selbstständige und Kleinunternehmer: E-Rechnung mit ZUGFeRD und XRechnung, Belege, Bankabgleich, EÜR, Umsatzsteuer-Voranmeldung und Jahreserklärungen direkt an ELSTER. GoBD-konform, DATEV-Export. Open-Source-Alternative zu Lexware Office (lexoffice) und sevDesk. Docker-Image für den eigenen Server.

Topics

Resources

Stars

15 stars

Watchers

3 watching

Forks

Repository files navigation

Haben: Open-Source-Buchhaltung für Freiberufler, selbst gehostet

Haben: Rechnung 2026-031 festgeschrieben, Zahlungseingang zugeordnet, Voranmeldung September an ELSTER übermittelt

Die Buchhaltungssoftware für Freiberufler, Selbstständige und Kleinunternehmer, die du selbst betreibst.
Rechnungen mit E-Rechnung (ZUGFeRD, XRechnung), Belege, Bankabgleich, EÜR und die Umsatzsteuer-Voranmeldung direkt an ELSTER. GoBD-konform, auf deinem Server, ohne Abo, ohne Datenabfluss.

Status: Beta CI Release Lizenz: AGPL-3.0 Doku E-Rechnung ELSTER TypeScript TanStack Start PostgreSQL Docker Pulls Image Size Plattformen Podman

Warum? • Funktionen • Schnellstart • Dokumentation • Entwicklung

English: self-hosted open-source bookkeeping for German freelancers and small businesses, with e-invoicing (ZUGFeRD, XRechnung), bank reconciliation, EÜR and VAT returns via ELSTER. The app and its documentation are in German.

Übersicht in Haben: offene Forderungen, Umsatz, Umsatzsteuer-Zahllast, Kontostand und die nächsten Aufgaben

Warning

Beta: Haben wird noch stark weiterentwickelt. Datenmodell und Abläufe können sich von Version zu Version ändern, und Migrationen lassen sich nicht zurückspielen. Vor jedem Update ein Backup machen (docker compose exec backup backup.sh, siehe Backup und Wiederherstellen) und Auswertungen und Meldungen ans Finanzamt vor dem Absenden prüfen.

💡 Warum Haben?

Als Freiberufler schreibst du Rechnungen, sammelst Belege, gleichst das Konto ab und schickst die Voranmeldung. Dafür braucht es kein Abo bei Lexware Office (früher lexoffice) oder sevDesk und keinen fremden Dienst, der jede Rechnung sieht. Haben ist die Open-Source-Alternative dazu: eine Web-App für Buchhaltung, Steuern und Rechnungen, die du mit Docker oder Podman auf deinem eigenen Server betreibst.

  • Ein Weg vom Beleg bis zum Finanzamt: festschreiben, Zahlung zuordnen, Voranmeldung prüfen und senden
  • GoBD-konform von Anfang an: Festschreibung per Postgres-Trigger, Audit-Log, Korrekturen nur über Storno
  • Deine Daten bleiben bei dir: eigener Server, Schlüssel verschlüsselt, Jahresarchiv mit Prüfsummen; KI nur auf Wunsch
  • Umzug ohne Datenverlust: Rechnungen, Belege und Kontakte aus Lexware Office übernehmen, DATEV-Export archivieren
  • Für Freiberufler und Kleingewerbe: Einnahmen-Überschuss-Rechnung (EÜR), Ist- oder Soll-Versteuerung, Kleinunternehmerregelung nach § 19 UStG, Kontenrahmen SKR03 oder SKR04

✨ Funktionen

Bereich Was Haben kann
🧾 Rechnungen Live-Vorschau, ZUGFeRD/XRechnung (KoSIT-geprüft), Netto- oder Bruttopreise (Endpreise für Privatkunden), Storno, Reverse Charge, § 19 UStG, Abschlagsrechnungen, wiederkehrende Rechnungen, Mahnwesen, Versand per E-Mail
📝 Angebote Eigener Nummernkreis, PDF und Versand, mit einem Klick zur Rechnung
📎 Belege Drag-and-drop, Kamera, Teilen am Handy oder per E-Mail (IMAP); E-Rechnungen direkt gelesen, sonst optional per KI
🏦 Bankabgleich Automatischer Abruf per PSD2 oder Import (DKB, N26, CAMT.053), Vorschläge mit Begründung, Teil- und Sammelzahlungen
📤 Voranmeldung Kennzahlen aus den Buchungen (Ist oder Soll), Herkunft jeder Zahl, Vorprüfung, Übermittlung per ERiC, Berichtigung
📑 Jahreserklärungen USt-Erklärung, Anlage EÜR mit AVEÜR, Einkommensteuererklärung; vorausgefüllte Belege von ELSTER abrufen
🏛️ Finanzamt Bescheide und Nachrichten über ELSTER, Herabsetzung der Vorauszahlungen mit Steuerprognose
⏰ Fristen Alle Steuertermine auf einer Seite, als Kalender-Abo und per E-Mail
🚗 Pauschalen · Kasse Homeoffice, Kilometer, Verpflegungsmehraufwand; Kassenbuch für Barzahlungen
🖥️ Anlagen und AfA Anlagenverzeichnis, lineare AfA, GWG und Sammelposten, AfA-Buchung zum Jahresende
📊 Auswertungen EÜR, offene Posten, Monatsverlauf, Jahresexport als ZIP mit SHA-256-Prüfsummen
📚 Buchhaltung Doppelte Buchführung nach SKR03/SKR04, Journal, Saldenliste, Kontenblätter, DATEV-Export
📦 Umzug aus Lexoffice Abruf über die Public API, DATEV-Buchungsstapel, offene Posten und Anlagen übernehmen
🔐 Anmeldung und App Passkey (Passwort als Ersatz), installierbar als PWA auf Handy und Desktop, helle und dunkle Themes

📸 Screenshots

Rechnungseditor mit Positionen links und Live-Vorschau des PDFs rechts
Rechnung schreiben: Vorschau des PDFs, während du tippst
Bankabgleich: Umsatz von Rheinpixel GmbH mit dem besten Treffer Rechnung 2026-033 und den Gründen
Bankabgleich: Vorschlag mit Begründung, Enter ordnet zu
Voranmeldung September mit Kennzahlen 81, 86, 66 und 83 und dem Bereich zum Übermitteln an ELSTER
Voranmeldung: aus den Buchungen berechnet, direkt an ELSTER
Auswertungen 2026 mit Einnahmen, Ausgaben, Gewinn und Monatsdiagramm
Auswertungen: EÜR nach Zufluss und Abfluss

🚀 Schnellstart

Haben läuft als drei Container: die App (tristanteu/haben, amd64 und arm64), PostgreSQL und Caddy für HTTPS. Du brauchst einen Linux-Server mit Docker oder Podman und eine Domain, die auf ihn zeigt (Ports 80 und 443), denn Passkeys funktionieren nur über HTTPS.

mkdir haben && cd haben
curl -O https://raw.githubusercontent.com/firsttris/haben/main/deploy/compose.yml
curl -o .env https://raw.githubusercontent.com/firsttris/haben/main/deploy/compose.env.example
# in .env eintragen: DOMAIN, DB_PASSWORD (openssl rand -hex 24),
# AUTH_SECRET und ENCRYPTION_KEY (je openssl rand -base64 32), dann
docker compose up -d

Öffne https://deine-domain, leg dein Konto an und richte Firmendaten, Nummernkreis und ELSTER ein, wie in Erste Schritte beschrieben.

Podman Quadlets, ERiC für die ELSTER-Übermittlung, Backup, Updates und alle Umgebungsvariablen stehen in Betrieb und Installation.

Important

Sichere den Verschlüsselungsschlüssel (ENCRYPTION_KEY bzw. das Secret haben-encryption-key) zusätzlich an einem zweiten Ort. Ohne ihn sind ELSTER-Zertifikat und Lexoffice-Schlüssel nach einer Wiederherstellung nicht mehr lesbar.

📚 Dokumentation

Auch als Website mit Suche: https://firsttris.github.io/haben/

Betrieb und Installation Docker Compose, Podman Quadlets, Caddy, Secrets, ERiC einbinden, Backup, Updates, häufige Probleme
Erste Schritte Konto und Passkey, Firmendaten, Ist oder Soll, SKR03 oder SKR04, Nummernkreis, ELSTER-Zertifikat, Bankkonten
Rechnungen und E-Rechnung Editor, Festschreiben, ZUGFeRD und XRechnung, Pflichtangaben, Storno, Mahnwesen
Angebote Nummernkreis, PDF, Versand, Rechnung aus dem Angebot
Belege Hochladen, Teilen am Handy, E-Rechnungen lesen, KI-Auslesung, Reverse Charge
Pauschalen · Kassenbuch Homeoffice, Kilometer, Verpflegungsmehraufwand; Barkasse
Anlagen und AfA Anlagenverzeichnis, lineare AfA, GWG, Sammelposten, Abgang
Bankimport und Abgleich PSD2, DKB, N26, CAMT.053, Vorschläge, Teilzahlungen
Umsatzsteuer-Voranmeldung Kennzahlen, Vorprüfung, Übermittlung an ELSTER, Berichtigung
Jahreserklärungen Umsatzsteuererklärung, Anlage EÜR mit AVEÜR, Einkommensteuererklärung
Finanzamt · Fristen ELSTER-Postfach, Vorauszahlungen, alle Steuertermine als Kalender-Abo
Auswertungen und Jahresexport EÜR, offene Posten, Archiv-ZIP mit Prüfsummen, Aufbewahrung
Umzug aus Lexoffice API-Abruf, DATEV-Buchungsstapel, offene Posten, Abgleich vor der Kündigung
KI-Assistenten (MCP) Im Gespräch mit Claude Code, Claude Desktop oder einem lokalen Modell abfragen; nur lesen
Buchhaltung in Haben GoBD, Festschreibung, Kontenrahmen, alle Buchungssätze, Steuerschlüssel
Architektur · Entwicklung Aufbau, Datenmodell, ERiC-Worker; lokale Umgebung, Tests, Mitwirken
Roadmap Was als Nächstes kommt

🔧 Entwicklung

Voraussetzungen: Node 22, pnpm 10 und PostgreSQL 16.

pnpm install
cp apps/web/.env.example apps/web/.env   # DATABASE_URL, BETTER_AUTH_SECRET, HABEN_ENCRYPTION_KEY eintragen
pnpm db:migrate
pnpm dev                                  # http://localhost:3000

Ohne ERiC (unter Einstellungen per Knopf von der Finanzverwaltung geladen) simuliert Haben die ELSTER-Übermittlung und zeigt das deutlich an. Ohne ANTHROPIC_API_KEY bleibt die KI-Auslesung aus.

Stack: TanStack Start (React, Server Functions), PostgreSQL mit Drizzle, Better Auth mit Passkeys, Zod, Typst für die Rechnungs-PDFs, @e-invoice-eu/core für ZUGFeRD und XRechnung, ERiC über koffi in einem eigenen Prozess, Vitest und Playwright. Aufbau und Abläufe beschreibt die Architektur, alles Weitere Entwicklung.

Paket Inhalt
apps/web Oberfläche, Server Functions, Datenbank, Anmeldung
packages/core Beträge, Zeiträume, Voranmeldung, EÜR, Buchungssätze, Zuordnungsvorschläge
packages/einvoice Rechnungs-PDF, ZUGFeRD und XRechnung erzeugen, eingehende E-Rechnungen lesen
packages/elster ERiC-Anbindung, UStVA-XML, Worker-Prozess
packages/import Kontoauszüge (DKB, N26, CAMT.053), DATEV-Buchungsstapel, Lexware-Office-API

🤝 Mitwirken

Fehler und Ideen gern als Issue. Besonders hilfreich sind anonymisierte Kontoauszüge von Banken, die Haben noch nicht kennt, und Rückmeldungen zur ELSTER-Übermittlung. Vor einem Pull Request bitte pnpm lint, pnpm typecheck und pnpm test laufen lassen (die Datenbanktests brauchen TEST_DATABASE_URL, siehe Entwicklung).

Danke an @ngres für durchdachte, genau ausgearbeitete Issues, aus denen der Artikelkatalog (#65), die Bruttopreise (#76) und die Manipulationserkennung im Audit-Log (#78) entstanden sind.


⭐ Gefällt dir Haben? Ein Stern auf GitHub hilft anderen, es zu finden.
🐛 Fehler melden · 💡 Idee vorschlagen

Lizenz: AGPL-3.0 · © Tristan Teufel und Mitwirkende
Wer Haben für andere betreibt, muss ihnen den Quellcode anbieten; der Link steht in der Navigation. Eine kommerzielle Lizenz ohne diese Pflichten gibt es über teufel-it.de.
Haben ist keine Steuerberatung. Konten, Kategorien und Aufbewahrung vor dem Echtbetrieb mit deiner Steuerberatung abgleichen.
ELSTER ist eine Marke der Finanzverwaltung. Haben steht in keiner Verbindung zu Lexware, DATEV oder der Finanzverwaltung.

About

Selbst gehostete Buchhaltung für Freiberufler, Selbstständige und Kleinunternehmer: E-Rechnung mit ZUGFeRD und XRechnung, Belege, Bankabgleich, EÜR, Umsatzsteuer-Voranmeldung und Jahreserklärungen direkt an ELSTER. GoBD-konform, DATEV-Export. Open-Source-Alternative zu Lexware Office (lexoffice) und sevDesk. Docker-Image für den eigenen Server.

Topics

Resources

Stars

15 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages