Community edition · AGPLv3

Your books. Your database. Your control.

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.

Free · AGPLv3 Postgres 16 bundled ~10 min to running Australian data residency
Not a mockup

This is what you'll be running.

Live screenshots from cashbook-demo.saebooks.com.au — the same build you self-host, seeded with sample data. No login required, click anything.

SAE Books cashbook overview — cash in / cash out, recent entries, this-month summary
Cashbook overview — cash in / out, live entries, this-month totals.
SAE Books invoices list — draft, open and due-soon invoices with AUD totals
Invoices — draft / open / due-soon, the full AR ledger.
Why self-host

Six reasons it's yours, not theirs.

It's your Postgres

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.

Free, AGPLv3

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.

Full export, any time

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.

Public REST API

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.

One command to run

Postgres ships in the compose stack — no separate database to install. docker compose up -d, migrate, and you're live in about ten minutes.

Nothing held hostage

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.

Quickstart

From clone to running in ten minutes.

Prerequisites: Docker Engine 24+ with docker compose v2, and outbound HTTPS. No Postgres install needed — the stack ships one.

  1. Grab the release compose file.
    mkdir saebooks && cd saebooks
    curl -fsSL https://raw.githubusercontent.com/saebooks/saebooks/main/docker-compose.release.yml -o docker-compose.yml
  2. Set the four env values that matter.
    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
  3. Pull and start.
    docker compose pull
    docker compose up -d
    # app :8042 (API) · web :8043 (UI) · db :5432 (internal)
  4. Migrate and seed the AU chart of accounts.
    docker compose exec app alembic upgrade head
    docker compose exec app python -m saebooks.scripts.bootstrap
    # 135 accounts + standard AU tax codes, idempotent
  5. Create your admin user, then log in.
    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
Full install guide — TLS, backups, hardening
What you get free

The Community edition is the full core ledger.

Single-company, self-hosted, AGPLv3. Same codebase as the paid tiers — runtime-flagged for what you need.

Chart of accounts, journals, GL

Full double-entry general ledger with the AU standard chart of accounts pre-loaded.

Sales, purchases, contacts

Invoices, quotes, bills and a contact ledger — the full AR/AP workflow.

Bank reconciliation

Reconcile against statement imports; OFX/CSV in, matched transactions out.

GST / BAS report generation

BAS labels from the Odoo AU localisation. Generate, review, lodge via the ATO portal.

Full export

CSV, JSON, OFX, QIF, or a complete Postgres dump — your data, on demand.

Immutable audit ledger

Every posting is append-only and traceable. Period locks keep closed months closed.

Runs on Postgres 14+

Bring your own Postgres, or use the bundled image for a one-box setup.

No licence key, no nag screens

The Community binary just runs. Paid features are flag-gated in the same image.

Run it your way

Self-host, or let us run it.

Run it yourself

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

Or let us run it

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.

  • · Hourly snapshot · 30-day retention
  • · Cairns, QLD data residency
  • · Authentik SSO included
  • · Migration assistance from Xero / MYOB
See hosted plans
FAQ

Self-hosting, answered.

What does AGPLv3 mean for my business?

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.

Can I get my data out?

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.

How do upgrades work?

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.

What if something goes wrong?

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.

Is the Cashbook bundle a different product?

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 →

Status

Pre-1.0 — and honest about it.

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.