name: kanera services: postgres: image: postgres:18.6-alpine container_name: kanera-postgres restart: unless-stopped # Mirrors docker-compose.yml: pg_stat_statements must be loaded at server start via # shared_preload_libraries, so local query profiling can read the view that # docker/postgres/init.sql creates. Without this the extension exists but every read of # pg_stat_statements errors, which silently blinds local performance work. command: - "postgres" - "-c" - "shared_preload_libraries=pg_stat_statements" - "-c" - "pg_stat_statements.track=top" - "-c" - "work_mem=${POSTGRES_WORK_MEM:-16MB}" environment: POSTGRES_USER: kanera POSTGRES_PASSWORD: kanera POSTGRES_DB: kanera PGDATA: /var/lib/postgresql/18/docker ports: - "127.0.0.1:5433:5432" volumes: - kanera_pgdata:/var/lib/postgresql - ./docker/postgres/init.sql:/docker-entrypoint-initdb.d/00-init.sql:ro,Z healthcheck: test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -p 5432 -U kanera -d kanera"] interval: 5s timeout: 3s retries: 10 valkey: image: valkey/valkey:9.1.3-alpine container_name: kanera-valkey restart: unless-stopped ports: - "127.0.0.1:6379:6379" healthcheck: test: ["CMD", "valkey-cli", "ping"] interval: 5s timeout: 3s retries: 10 volumes: kanera_pgdata: