Lokale Buchhaltungssoftware für Selbstständige, Freiberufler und kleine Unternehmen. Läuft vollständig auf dem eigenen Rechner (keine Cloud), die Daten liegen in einer SQLite-Datenbank.
Projektwebsite: sqonto.de.
- Verkauf: Angebote, Auftragsbestätigungen, Lieferscheine, Rechnungen, Abschlags- und Schlussrechnungen, Gutschriften und Stornorechnungen – inklusive Umwandlung entlang des Vorgangs (Angebot → Auftrag → Lieferschein/Rechnung).
- E-Rechnungen: Erzeugen von ZUGFeRD (PDF/A-3 mit eingebettetem XML) und XRechnung 3.0 (CII, EN 16931), Einlesen von ZUGFeRD/XRechnung bei der Belegerfassung.
- Layouts: Layout-Designer mit frei positionierbaren Elementen, Logo, Briefpapier (PDF/Bild), Schriften und Farben. PDF-Satz mit Typst.
- Offene Posten & Mahnwesen: Altersstruktur, Zahlungserinnerungen und Mahnstufen mit Gebühren und Verzugszinsen, Mahnlauf, GiroCode auf Rechnungen und Mahnungen.
- Einkauf: Belegerfassung (Upload, Kategorisierung, Aufteilung nach Steuersätzen, § 13b), Lieferanten automatisch aus E-Rechnungen anlegen.
- Bank & Kasse: CSV- und CAMT-Import mit automatischer Zuordnung, Zahlungen, Skonto, Ausbuchungen, GoBD-konformes Kassenbuch mit Stornobuchungen.
- Buchhaltung: Einnahmen-Überschuss-Rechnung (Ist-Versteuerung) oder doppelte Buchführung (Bilanzierung, Soll-Versteuerung), SKR03/SKR04, Buchungsjournal, Kontenblätter, manuelle Buchungen, Anlagenverzeichnis mit AfA (linear, GWG, Sammelposten), Festschreibung.
- Steuern & Berichte: Umsatzsteuer-Voranmeldung (inkl. Dauerfristverlängerung und Kleinunternehmerregelung), EÜR, GuV, Bilanz, BWA, Summen- und Saldenliste, Auswertungen, Dashboard, DATEV-Export (EXTF-Buchungsstapel), Beleg-ZIP, alle Berichte als PDF.
Fertige Windows-Installer und portable Archive stehen nach einem Release unter Releases im GitHub-Repository bereit. Der Installer installiert Sqonto für den aktuellen Benutzer (ohne Administratorrechte) und legt einen Eintrag im Startmenü sowie optional auf dem Desktop an.
Zum eigenen Bauen: Rust (stable, unter Windows x64 MSVC),
Node.js ab Version 22 und Inno Setup 6.
ISCC.exe wird im PATH oder im Standardordner von Inno Setup gesucht; alternativ die
Umgebungsvariable ISCC auf den vollständigen Pfad setzen.
build.cmdbaut Frontend und Backend und legt die fertigen Programme unter dist\ ab:
Sqonto.exe– die Desktop-Anwendung. Ein Doppelklick (oderstart.cmd) öffnet Sqonto in einem eigenen Fenster – ohne Konsole und ohne Browser. Ein erneuter Start holt das bereits geöffnete Fenster in den Vordergrund. PDFs zum Drucken öffnen sich in einem eigenen Fenster, Downloads fragen mit dem Dialog „Speichern unter“ nach dem Ziel. Beim Schließen mit ungespeicherten Änderungen fragt Sqonto nach.sqonto-server.exe– derselbe Server ohne Fenster, z. B. für die Nutzung im Browser (http://localhost:8787) oder für die Entwicklung.packages\Sqonto-<Version>-windows-x64-setup.exe– Windows-Installer mit beiden Programmen und Lizenztexten.build.cmd --no-installerbaut nur die portablen Programme. Nach einem bereits fertigen Build kann mitpowershell -NoProfile -ExecutionPolicy Bypass -File scripts\build-installer.ps1nur der Installer neu erstellt werden.
Die Daten liegen im Ordner dist\data neben den Programmen (beide nutzen dieselben Daten). Zum
Umziehen oder Sichern genügt es, diesen Ordner zu kopieren – oder unter
Einstellungen → Daten & Sicherung eine Sicherung herunterzuladen.
Bei Installation ist der Standardpfad %LOCALAPPDATA%\Programs\Sqonto, die Daten liegen
entsprechend in %LOCALAPPDATA%\Programs\Sqonto\data. Updates über denselben Installer
ersetzen nur die Programmdateien. Auch eine Deinstallation lässt die Daten bestehen.
Beim Wechsel von einer portablen Version Sqonto schließen und den bisherigen data-Ordner
in den Installationsordner kopieren, bevor die installierte Anwendung gestartet wird.
Die Desktop-Anwendung benötigt die „Microsoft Edge WebView2 Runtime“, die auf vielen
Windows-Systemen bereits vorhanden ist. Falls sie fehlt, die
Evergreen Runtime von Microsoft
installieren; sie ist nicht im Sqonto-Installer enthalten. Unter Linux/macOS entsprechend
sh build.sh; Linux benötigt dafür webkit2gtk-4.1 und GTK 3 (zum Bauen die jeweiligen
Entwicklungspakete). Mit SQONTO_SERVER_ONLY=1 sh build.sh wird nur der Server gebaut.
Das Skript erzeugt zusätzlich ein portables .tar.gz unter dist/packages/. Linux-Archive
benötigen auch auf dem Zielsystem WebKitGTK 4.1/GTK 3; macOS-Archive enthalten native Programme,
kein .app-Bundle. Die Pakete sind derzeit weder signiert noch unter macOS notarisiert.
Beim ersten Start führt ein Assistent durch die Einrichtung. Mit „Erst einmal ausprobieren“ wird ein vollständiges Demo-Geschäftsjahr geladen.
| Umgebungsvariable | Bedeutung | Standard |
|---|---|---|
SQONTO_DATA_DIR |
Datenverzeichnis (Datenbank, Dateien, Protokoll sqonto.log) |
data neben der Programmdatei |
SQONTO_PORT |
Port des lokalen Servers (ist er belegt, wird der nächste freie genutzt) | 8787 |
SQONTO_DESKTOP_URL |
Desktop-Fenster zeigt diese Adresse statt des eingebauten Frontends | – |
SQONTO_DEVTOOLS |
gesetzt: Entwicklerwerkzeuge im Desktop-Fenster | nur in Debug-Builds |
sqonto-server --open öffnet nach dem Start zusätzlich den Browser.
Der Server lauscht ausschließlich auf 127.0.0.1 und ist damit nur vom eigenen Rechner aus
erreichbar – auch wenn er in der Desktop-Anwendung läuft.
Backend und Frontend lassen sich weiterhin getrennt starten:
# Backend (Port 8787), Daten im Arbeitsverzeichnis unter ./data
cd backend && cargo run
# Frontend mit Hot Reload (Port 5173, leitet /api an das Backend weiter)
cd frontend && npm install && npm run devDie Oberfläche dann im Browser unter http://localhost:5173 öffnen – oder im Desktop-Fenster:
cd backend && SQONTO_DESKTOP_URL=http://localhost:5173 cargo run --bin sqonto-desktopDie TypeScript-Typen der API werden aus den Rust-Strukturen erzeugt (ts-rs):
cd frontend && npm run typesTests: cd backend && cargo test, Typprüfung: cd frontend && npm run typecheck.
.github/workflows/build.yml läuft bei Pushes, Pull Requests und manuell. Auf Windows x64,
Linux x64 (Ubuntu 24.04) und macOS ARM64 werden Frontend-Typprüfung und Frontend-Build,
Rust-Tests aller Targets und der Release-Build ausgeführt. Tests laufen mit --release,
damit sie ihre kompilierten Abhängigkeiten mit dem anschließenden Paket-Build teilen.
Ein Rust-Cache pro Plattform hält Abhängigkeiten und kompilierte Artefakte zwischen Läufen
vor; Änderungen am Compiler oder den Abhängigkeiten werden bei der Cache-Auswahl berücksichtigt.
Die Build-Skripte verwenden in CI mit SQONTO_FRONTEND_READY=1 das bereits gebaute Frontend
(lokale Builds bauen es weiterhin selbst). Unter Linux werden nach dem Paket-Build zusätzlich
die Bibliothek und der Server ohne Desktop-Features im Release-Profil getestet.
Unter Windows prüft ein zusätzlicher Test Installation, Start des installierten
Servers mit eingebettetem Frontend, Update und Datenerhalt bei Deinstallation. Die fertigen
Pakete können bei jedem erfolgreichen Lauf als Workflow-Artefakte heruntergeladen werden.
Für einen Release:
- Dieselbe Version
X.Y.Zinbackend/Cargo.tomlundfrontend/package.jsonsetzen, die Lockdateien aktualisieren und die Änderungen committen. - Den Tag
vX.Y.Zerstellen und zu GitHub pushen, z. B.git tag v0.9.1undgit push origin v0.9.1. - Nach erfolgreichen Builds aller Plattformen veröffentlicht die Pipeline automatisch einen GitHub Release mit Windows-Installer, Windows-ZIP, Linux/macOS-Archiven, SHA-256-Prüfsummen und automatisch erzeugten Release Notes. Der Tag muss exakt zur Paketversion passen. Zum Wiederholen eines fehlgeschlagenen Releases den Workflow des Tags erneut ausführen; ein manueller Branch-Lauf veröffentlicht keinen Release.
Der Workflow benötigt keine eigenen Secrets: nur der Release-Job erhält Schreibrechte
über den eingebauten GITHUB_TOKEN. GitHub Actions muss im Repository aktiviert sein.
Die Paketlisten enthalten ausschließlich Programme und Lizenztexte; lokale data-Ordner
werden nicht verpackt.
backend/– Rust-Bibliotheksqonto(Axum, SQLite über rusqlite, rust_decimal) mit zwei Programmen:src/main.rs(sqonto-server) undsrc/bin/sqonto-desktop.rs(Fenster mit WebView2/WebKit überwry/tao). Buchungslogik insrc/services/posting.rs, Berichte insrc/services/reports.rs, E-Rechnung insrc/services/einvoice.rs, PDF-Erzeugung mit eingebettetem Typst insrc/pdf/undtemplates/.frontend/– React, TypeScript, Mantine, TanStack Query. Das fertige Frontend wird beim Release-Build in die Programme eingebettet;src/lib/desktop.tsxverbindet es mit dem Desktop-Fenster (ungespeicherte Änderungen beim Schließen, Download-Hinweise).
Copyright © 2026 Johannes Asal
Sqonto ist freie Software unter der GNU Affero General Public License, Version 3 oder später (AGPL-3.0-or-later). Sie dürfen Sqonto nutzen, untersuchen, verändern und weitergeben – auch kommerziell. Wer Sqonto weitergibt oder eine veränderte Fassung als Dienst über ein Netzwerk anbietet, muss den Quellcode dieser Fassung unter derselben Lizenz zugänglich machen.
Mit Sqonto erstellte Rechnungen, Berichte und sonstige Dokumente gehören Ihnen und unterliegen nicht der AGPL.
Sqonto enthält Bibliotheken und Schriften anderer Projekte unter deren eigenen freien Lizenzen
(u. a. MIT, Apache-2.0, BSD, SIL Open Font License). Die Lizenzen der Schriften liegen in
backend/assets/fonts/LICENSE-FONTS.txt; die
vollständige Übersicht aller Komponenten erzeugt der Build als dist/THIRD-PARTY-LICENSES.txt
(node scripts/third-party-licenses.mjs).
Die Software unterstützt bei der Buchführung, ersetzt aber keine steuerliche Beratung und wird ohne Gewährleistung bereitgestellt. Die Übermittlung der Umsatzsteuer-Voranmeldung erfolgt über ELSTER; Sqonto liefert die Kennzahlen.