Skip to content

PostgreSQL

Runs PostgreSQL 14 – 18 · macOS & Linux · registry page ↗

A real PostgreSQL server per instance — no Docker. Declare roles, schemas, extensions and grants in HCL and doze converges them: creating what’s new, updating what changed, dropping what you removed. Boots on first connect, reaps when idle.

module postgres "app" {
version = 18
port = 5432
owner = "app"
encoding = "UTF8"
locale = "en_US.UTF-8"
connection_limit = 50
comment = "primary app database"
shared_buffers = "256MB"
max_connections = 100
settings = {
log_min_duration_statement = "200ms"
}
role "app" {
password = "app"
login = true
createdb = true
connection_limit = 20
member_of = ["readers"]
}
role "readers" {
login = false
}
schema "analytics" {
owner = "app"
}
extension "pg_trgm" {}
grant {
role = "app"
privileges = ["ALL"]
schema = "analytics"
objects = "tables"
}
}

The version = you write is the engine’s own version — the only version that’s yours. Declare a series and doze pins its newest published build, or declare an exact build; either way it’s fetched, verified, and pinned in doze.lock (so it never moves on its own).

version =pins (today)exact builds
1414.24.025
1515.19.020
1616.15.016
1717.11.012
1818.6.06
Every exact build, per series

14 — 14.24.0 · 14.23.0 · 14.22.0 · 14.21.0 · 14.20.0 · 14.19.0 · 14.18.0 · 14.17.0 · 14.16.0 · 14.15.0 · 14.14.0 · 14.13.0 · 14.12.0 · 14.11.0 · 14.10.0 · 14.9.0 · 14.8.0 · 14.7.0 · 14.6.0 · 14.5.0 · 14.4.0 · 14.3.0 · 14.2.0 · 14.1.0 · 14.0.0

15 — 15.19.0 · 15.18.0 · 15.17.0 · 15.16.0 · 15.15.0 · 15.14.0 · 15.13.0 · 15.12.0 · 15.11.0 · 15.10.0 · 15.9.0 · 15.8.0 · 15.7.0 · 15.6.0 · 15.5.0 · 15.4.0 · 15.3.0 · 15.2.0 · 15.1.0 · 15.0.0

16 — 16.15.0 · 16.14.0 · 16.13.0 · 16.12.0 · 16.11.0 · 16.10.0 · 16.9.0 · 16.8.0 · 16.7.0 · 16.6.0 · 16.5.0 · 16.4.0 · 16.3.0 · 16.2.0 · 16.1.0 · 16.0.0

17 — 17.11.0 · 17.10.0 · 17.9.0 · 17.8.0 · 17.7.0 · 17.6.0 · 17.5.0 · 17.4.0 · 17.3.0 · 17.2.0 · 17.1.0 · 17.0.0

18 — 18.6.0 · 18.4.0 · 18.3.0 · 18.2.0 · 18.1.0 · 18.0.0

FieldTypeDefaultDescription
versionnumber—Engine major to run — 14, 15, 16, 17 or 18. Required.
ownerstring—Owner role for the instance’s default database.
encodingstringUTF8Character-set encoding for the database.
localestring—Locale (LC_COLLATE + LC_CTYPE) for the database.
lc_collatestring—Collation order, overriding locale.
lc_ctypestring—Character classification, overriding locale.
templatestring—Template database to create from.
connection_limitnumber-1Max concurrent connections to the database.
is_templateboolfalseMark the database as a template.
allow_connectionsbooltrueWhether the database accepts connections.
tablespacestring—Tablespace the database lives in.
commentstring—COMMENT applied to the database.
shared_buffersstring16MBshared_buffers server setting, e.g. “256MB”.
max_connectionsnumber50max_connections server setting.
fsyncboolfalsefsync server setting (off for the dev tuning profile).
autovacuumbooltrueautovacuum server setting.
extensionslist(string)—Shorthand list of extensions to CREATE (or use extension blocks).
settingsmap(string)—Arbitrary postgresql.conf settings, applied verbatim.

Machinery, for the curious: the plugin releases that provide this engine. doze selects the newest compatible one and pins it in doze.lock — you never write these. Older releases stay resolvable for pinned lockfiles.

ReleaseEngine versionsPlatforms
0.2.314 · 15 · 16 · 17 · 183stable
0.2.214 · 15 · 16 · 17 · 183
0.2.114 · 15 · 16 · 17 · 183

Raw signed data: index.yaml ↗ · meta.yaml ↗