Open-Core · On-Premise · AI-Native

Accounting that lives
on your machine.

ApexLedger enforces double-entry integrity inside PostgreSQL — not in application code. Post journals, close periods, and read reports with an optional AI assistant. No cloud. No data leaves the host.

100%Local-first data
0Rows lost to ledger edits
53/53CI tests passing

Built like a vault, runs like a tool.

Database-enforced double entry

Balance validation, posting, reversals, and period closes are PL/pgSQL functions. The engine refuses unbalanced entries at the storage layer — no application bug can corrupt the books.

Immutable ledger

UPDATE and DELETE privileges on journal tables are revoked at the database level. Corrections happen through reversing entries, preserving the full audit trail forever.

Optional AI assistant

Bring your own key (OpenAI) or run a local model (Ollama). The assistant records transactions through the same secured RPCs — it can never leave your entity or bypass role checks.

Fast, dense UI

A dark, keyboard-first interface with virtualized journals for thousands of rows, live debit/credit balance indicators, and a trial balance that proves itself.

One-command setup

apexledger init prepares the container, database, and migrations. A first-boot wizard creates your entity, admin, and fiscal calendar — no manual SQL.

Auto-backup before anything

apexledger backup dumps a timestamped, gzipped snapshot. Updates are opt-in and never install themselves.

Security model

Row-Level Security

Every table is entity-scoped. JWT claims are injected into the PostgreSQL session so policies evaluate the caller without trusting the application.

Dual-layer defense

Read endpoints filter by entity again at the application layer. Isolation holds even if a connection bypasses RLS.

Roles in the engine

Only finance roles can create or post journals — checked inside the database function, not just the API.

Editions

Community

Free

  • Full core accounting (GL, CoA, trial balance)
  • Local JWT auth & multi-user roles
  • AI assistant via your own keys
  • Desktop & CLI packaging

Install

Pick how you want to run ApexLedger. All three use the same core.

Server

Linux · macOS · WSL

Full stack on one machine: Postgres container, migrations, API server. One line via terminal:

curl -fsSL https://raw.githubusercontent.com/faqihrayhan/apexledger/main/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/faqihrayhan/apexledger/main/install.ps1 | iex

Requires git, Python 3.11+, Docker. Then open http://localhost:8000.

Desktop app

Windows · macOS · Linux

Native app for employees — install on each PC, then point it at your factory server.

All downloads: GitHub Releases. First launch asks for the server address (e.g. http://192.168.1.100:8000). GitHub Releases

Browser

Any device on the LAN

Zero install for employees: the server machine already serves the web UI.

# on the server machine
python cli.py serve          # API + UI on :8000

# then, from any PC on the LAN
http://192.168.1.100:8000

No app to install — just a browser. Same features, same data.

Manual / advanced setup (no Docker, custom Postgres): see docs/SETUP.md. docs/SETUP.md