# Dev database only. The server itself runs via `cargo run`;
# a full deployment compose arrives with the deployment milestone.
services:
db:
image: postgres:18-alpine
environment:
POSTGRES_USER: kasl
POSTGRES_PASSWORD: kasl
POSTGRES_DB: kasl
ports:
# Overridable: another PostgreSQL (another project, or a system install)
# may already hold 5432 on a developer machine.
- "${KASL_DB_PORT:-5433}:5432"
volumes:
# postgres:18+ images keep data in a version-specific subdirectory;
# the mount must sit one level up or the entrypoint refuses to start.
- db-data:/var/lib/postgresql
healthcheck:
test:
interval: 5s
timeout: 3s
retries: 10
volumes:
db-data: