Documentation
Docs Home › Install › Database Preparation

Database Preparation

Purpose

Prepare PostgreSQL for the Manager. The Manager does not use SQLite as its production database.

Configuration keys (example)

From configs/manager.example.yml / Community example:

Scroll sideways to see the full table. Use the arrow keys when focused.

KeyExampleNotes
database.hostlocalhostEnterprise installer requires a literal
database.port5432literal
database.namezwall_centralized_securityliteral
database.userzwall_userliteral
database.passwordempty in Enterprise examplesystemd database_password / installer DB_PASSWORD
database.ssl_moderequiredisable, require, verify-ca, verify-full
database.max_connections25
database.max_idle_connections5

Community example allows password: "${DB_PASSWORD:-}" in YAML. Enterprise production example keeps YAML empty and rejects literal JWT/database/admin password authority in YAML.

Community

Create the role and database yourself, then run:

./bin/manager -config /etc/zcs/manager.yml -migrate

-preflight-migrate and -check-schema exist for validation without apply (-check-schema) or without apply of pending plan (-preflight-migrate).

Enterprise

On Enterprise, schema admission is part of verified-release database install (provided separately to Enterprise customers). Optional --bootstrap-database creates a login role with SCRAM, without superuser/createdb/createrole/replication/bypassrls, and a UTF-8 database owned by that role.

Existing roles must already match that policy or admission fails.

Backup before migrate

Back up an existing Manager database before upgrade migrations. See Backup.