finance

Deploy openbooks in one click

Open-source accounting-first ERP with a PostgreSQL-enforced double-entry ledger, projects/job costing, and optional Canada/US payroll packs (alpha).

Templatesopenbooks

openbooks screenshot

Deploy

What gets deployed

OpenBooks is ALPHA software. Postgres is a dedicated CloudNativePG cluster (mode: server), not a communal logical database, because bootstrap must CREATE ROLE as the cluster superuser and then serve as openbooks_app. Valkey is bundled. Sign in with ADMIN_EMAIL / ADMIN_PASSWORD from the app env. Change ORG_COUNTRY and ORG_CURRENCY before first boot if you are not US/USD. If a previous deploy used the communal database, delete the app and its Postgres add-on, then redeploy — an existing logical database is not converted in place. Do not change OPENBOOKS_DATA_KEY after data exists.

This stack

Web

openbooks server

Worker

Background worker

PostgreSQL

managed database · TCP:5432

Valkey

managed cache · TCP:6379

OpenBooks is ALPHA software. Postgres is a dedicated CloudNativePG cluster (mode: server), not a communal logical database, because bootstrap must CREATE ROLE as the cluster superuser and then serve as openbooks_app. Valkey is bundled. Sign in with ADMIN_EMAIL / ADMIN_PASSWORD from the app env. Change ORG_COUNTRY and ORG_CURRENCY before first boot if you are not US/USD. If a previous deploy used the communal database, delete the app and its Postgres add-on, then redeploy — an existing logical database is not converted in place. Do not change OPENBOOKS_DATA_KEY after data exists.

After you deploy

OpenBooks is ALPHA software. Postgres is a dedicated CloudNativePG cluster (mode: server), not a communal logical database, because bootstrap must CREATE ROLE as the cluster superuser and then serve as openbooks_app. Valkey is bundled. Sign in with ADMIN_EMAIL / ADMIN_PASSWORD from the app env. Change ORG_COUNTRY and ORG_CURRENCY before first boot if you are not US/USD. If a previous deploy used the communal database, delete the app and its Postgres add-on, then redeploy — an existing logical database is not converted in place. Do not change OPENBOOKS_DATA_KEY after data exists.

Reference

Environment variables

Set at deploy. Empty values are yours to fill.

VariableDescriptionRequired
NODE_ENVDefault: productionOptional
HOSTNAMEDefault: 0.0.0.0Optional
PORTDefault: 3000Optional
OPENBOOKS_APP_PASSWORDDefault: {{KUBERO_GEN_HEX:32}}Optional
OPENBOOKS_DB_URLDefault: postgres://openbooks_app:$(OPENBOOKS_APP_PASSWORD)@$(PGHOST):$(PGPORT)/$(PGDATABASE)Optional
OPENBOOKS_RUNTIME_DB_URLDefault: postgres://openbooks_app:$(OPENBOOKS_APP_PASSWORD)@$(PGHOST):$(PGPORT)/$(PGDATABASE)Optional
OPENBOOKS_MIGRATION_DB_URLDefault: postgres://postgres:$(PGPASSWORD)@$(PGHOST):$(PGPORT)/$(PGDATABASE)Optional
OPENBOOKS_REDIS_URLDefault: redis://$(REDISHOST):$(REDISPORT)Optional
OPENBOOKS_APP_URLDefault: {{KUBERO_APP_URL}}Optional
APP_BASE_URLDefault: {{KUBERO_APP_URL}}Optional
OPENBOOKS_TRUST_PROXYDefault: 1Optional
SESSION_SECRETDefault: {{KUBERO_GEN_HEX:64}}Optional
OPENBOOKS_DATA_KEYDefault: {{KUBERO_GEN_HEX:64}}Optional
OPENBOOKS_INTERNAL_TOKENDefault: {{KUBERO_GEN_HEX:48}}Optional
OPENBOOKS_INTERNAL_URLDefault: http://{{KUBERO_APP_NAME}}:3000Optional
ORG_NAMEDefault: OpenBooksOptional
ORG_COUNTRYDefault: USOptional
ORG_CURRENCYDefault: USDOptional
ADMIN_EMAILDefault: admin@openbooks.localOptional
ADMIN_NAMEDefault: AdministratorOptional
ADMIN_PASSWORDDefault: {{KUBERO_GEN_HEX:24}}Optional

Environment variables · Persistent disks · Custom domains

Ready to deploy openbooks?

One click. Dependencies pre-wired. No infrastructure to manage.

One-click deploy
Managed databases
Persistent disks
Custom domains
Env vars