SAE Books is API-first double-entry accounting you run on your own server. The full ledger — invoicing, payroll, time tracking, GST/BAS — in one binary, on a Postgres database you own. Free to self-host for life. No licence key, no nag screens, nothing held hostage.
Live screenshots from cashbook-demo.saebooks.com.au — the same build you self-host, seeded with sample data. No login required, click anything.
Your books live in a Postgres database you control — your laptop, your NAS, a VPS you rent. Any DBA on the planet can help you in a pinch. Nothing is locked in a vendor format.
The full core ledger, free to self-host for life. No licence key, no nag screens. Self-compile and flip the licence flag — that's what AGPL means.
CSV, JSON, OFX, QIF, or a complete Postgres dump from Settings → Export — importable into a fresh instance with one command. Portability is a feature, not a goodbye gift.
Every screen is a thin client over the same OpenAPI-documented endpoints your scripts call. Anything you can do in a browser, your automations can do too — same auth, same schema.
Postgres ships in the compose stack — no separate database to install. docker compose up -d, migrate, and you're live in about ten minutes.
The core app works fully offline. Internet features — bank feeds, FX rates, ABN lookup, BAS e-lodgement — are additive, never required. No vendor can revoke access to your own ledger.
Prerequisites: Docker Engine 24+ with docker compose v2, and outbound HTTPS. No Postgres install needed — the stack ships one.
mkdir saebooks && cd saebooks curl -fsSL https://raw.githubusercontent.com/saebooks/saebooks/main/docker-compose.release.yml -o docker-compose.yml
cp .env.example .env # then edit .env: POSTGRES_PASSWORD=change-me SAEBOOKS_SECRET_KEY=$(openssl rand -hex 32) SAEBOOKS_PUBLIC_URL=http://localhost:8042 SAEBOOKS_EDITION=community # free; no licence key
docker compose pull
docker compose up -d
# app :8042 (API) · web :8043 (UI) · db :5432 (internal)
docker compose exec app alembic upgrade head
docker compose exec app python -m saebooks.scripts.bootstrap
# 135 accounts + standard AU tax codes, idempotent
docker compose exec app python -m saebooks.scripts.create_admin \ --email [email protected] --name "Your Name" # open http://localhost:8042 — it walks you through your first company
Single-company, self-hosted, AGPLv3. Same codebase as the paid tiers — runtime-flagged for what you need.
Full double-entry general ledger with the AU standard chart of accounts pre-loaded.
Invoices, quotes, bills and a contact ledger — the full AR/AP workflow.
Reconcile against statement imports; OFX/CSV in, matched transactions out.
BAS labels from the Odoo AU localisation. Generate, review, lodge via the ATO portal.
CSV, JSON, OFX, QIF, or a complete Postgres dump — your data, on demand.
Every posting is append-only and traceable. Period locks keep closed months closed.
Bring your own Postgres, or use the bundled image for a one-box setup.
The Community binary just runs. Paid features are flag-gated in the same image.
docker compose up. Postgres bundled, or bring your own 14+. Any OIDC provider for SSO. Ships with a backup runbook. Free, forever, AGPLv3.
$ docker compose up -d ✓ saebooks-app started on :8042 ✓ saebooks-web started on :8043 ✓ postgres healthy ✓ migrations applied (head)Read the install guide
Same code, signed releases, off-site backup, SSO, Australian data residency. Pay monthly or annually — and cancel any time with a full DB dump in hand.
Run it however you want — internally, with clients, anywhere. The licence only kicks in if you modify the code and offer the modified version as a network service to others. Most users will never trigger it. SAE Books is dual-licensed: AGPLv3 for self-host, commercial licence for anyone who needs to ship a proprietary fork. Forking under AGPL is fine; calling your fork “SAE Books” is not.
Always. Export to CSV, JSON, OFX, QIF, or a full Postgres dump from the Settings → Export screen — importable into a fresh instance with one command. Data portability is a first-class feature, not a goodbye gift.
Tagged Docker images. docker compose pull && up -d; migrations run on boot. We test every migration against a parallel-run copy of Richard’s own live books before publishing — so if it eats your data, it eats his first.
Community support is GitHub issues plus the forum at discourse.saebooks.com.au — mostly self-supported. And because your books are a Postgres database, any DBA on the planet can help you in a pinch. Nothing is locked in a vendor format.
No — it's the same Community binary pre-configured for sole traders: cash-basis mode, single-user lock, sole-trader chart of accounts. Flip one config flag and you're on full accrual double-entry. Same data, same server. See the Cashbook bundle →
SAE Books is in private development, approaching its first public beta. It runs today — the Community edition is real, the demo is live — but it is not yet generally available and APIs may still shift before 1.0. Self-host it, kick the tyres, and tell us what breaks. Licence: AGPLv3 (self-host) + commercial dual licence.