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.

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.23.024
1515.18.019
1616.14.015
1717.10.011
1818.4.05
Every exact build, per series

1414.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

1515.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

1616.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

1717.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

1818.4.0 · 18.3.0 · 18.2.0 · 18.1.0 · 18.0.0

FieldTypeDefaultDescription
versionnumberEngine major to run — 14, 15, 16, 17 or 18. Required.
ownerstringOwner role for the instance’s default database.
encodingstringUTF8Character-set encoding for the database.
localestringLocale (LC_COLLATE + LC_CTYPE) for the database.
lc_collatestringCollation order, overriding locale.
lc_ctypestringCharacter classification, overriding locale.
templatestringTemplate 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.
tablespacestringTablespace the database lives in.
commentstringCOMMENT 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 ↗