name: ekklesia-development services: postgres: image: postgres:18.4-alpine3.24 restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:?POSTGRES_DB is required} POSTGRES_INITDB_ARGS: --data-checksums POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required} POSTGRES_USER: ${POSTGRES_USER:?POSTGRES_USER is required} TZ: UTC ports: - "127.0.0.1:${POSTGRES_PORT:-5432}:5432" volumes: - postgres-data:/var/lib/postgresql healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 12 start_period: 10s object-storage: image: chrislusf/seaweedfs:4.28 restart: unless-stopped command: ["mini", "-dir=/data"] environment: AWS_ACCESS_KEY_ID: ${S3_ACCESS_KEY:?S3_ACCESS_KEY is required} AWS_SECRET_ACCESS_KEY: ${S3_SECRET_KEY:?S3_SECRET_KEY is required} S3_BUCKET: ${S3_BUCKET:?S3_BUCKET is required} TZ: UTC ports: - "127.0.0.1:${S3_PORT:-8333}:8333" volumes: - object-storage-data:/data healthcheck: test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:9333/cluster/status"] interval: 5s timeout: 5s retries: 18 start_period: 15s volumes: object-storage-data: postgres-data: