PostgreSQL (Tier 0 – Foundation)¶
Purpose: Relational metadata store for orchestration, BI and platform services.
Image¶
- Docker image:
postgres:17.6-alpine3.22(pinned, never:latest)
Configuration¶
- Environment variables from
.env:POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DB,POSTGRES_PORT. - Persistent volume:
postgres_data→/var/lib/postgresql/data. - Healthcheck:
pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}. - Static configs: Using container defaults (no custom file under
/config/postgresat this tier).
How it is generated¶
Configuration is created by Makefile targets; do not edit files manually.
- Target: make config-postgres (no-op, uses container defaults).
Validate¶
# Wait for health
make health-postgres
# Smoke test (create table, insert, select)
make test-postgres
# Persistence check (restart and verify rows)
make persist-postgres
Useful endpoints¶
- Host port:
5432(mapped to container5432).