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

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.
| Variable | Description | Required |
|---|---|---|
| NODE_ENV | Default: production | Optional |
| HOSTNAME | Default: 0.0.0.0 | Optional |
| PORT | Default: 3000 | Optional |
| OPENBOOKS_APP_PASSWORD | Default: {{KUBERO_GEN_HEX:32}} | Optional |
| OPENBOOKS_DB_URL | Default: postgres://openbooks_app:$(OPENBOOKS_APP_PASSWORD)@$(PGHOST):$(PGPORT)/$(PGDATABASE) | Optional |
| OPENBOOKS_RUNTIME_DB_URL | Default: postgres://openbooks_app:$(OPENBOOKS_APP_PASSWORD)@$(PGHOST):$(PGPORT)/$(PGDATABASE) | Optional |
| OPENBOOKS_MIGRATION_DB_URL | Default: postgres://postgres:$(PGPASSWORD)@$(PGHOST):$(PGPORT)/$(PGDATABASE) | Optional |
| OPENBOOKS_REDIS_URL | Default: redis://$(REDISHOST):$(REDISPORT) | Optional |
| OPENBOOKS_APP_URL | Default: {{KUBERO_APP_URL}} | Optional |
| APP_BASE_URL | Default: {{KUBERO_APP_URL}} | Optional |
| OPENBOOKS_TRUST_PROXY | Default: 1 | Optional |
| SESSION_SECRET | Default: {{KUBERO_GEN_HEX:64}} | Optional |
| OPENBOOKS_DATA_KEY | Default: {{KUBERO_GEN_HEX:64}} | Optional |
| OPENBOOKS_INTERNAL_TOKEN | Default: {{KUBERO_GEN_HEX:48}} | Optional |
| OPENBOOKS_INTERNAL_URL | Default: http://{{KUBERO_APP_NAME}}:3000 | Optional |
| ORG_NAME | Default: OpenBooks | Optional |
| ORG_COUNTRY | Default: US | Optional |
| ORG_CURRENCY | Default: USD | Optional |
| ADMIN_EMAIL | Default: admin@openbooks.local | Optional |
| ADMIN_NAME | Default: Administrator | Optional |
| ADMIN_PASSWORD | Default: {{KUBERO_GEN_HEX:24}} | Optional |
Ready to deploy openbooks?
One click. Dependencies pre-wired. No infrastructure to manage.