# ============================================================================= # LANDING: Database Infrastructure # ============================================================================= # # PostgreSQL for merch submissions, idea voting, and waitlist data. # MinIO for object storage (merch submission images). # # Usage: # docker-compose up -d # Start postgres + minio # docker-compose logs -f # Follow logs # docker-compose down # Stop # # ============================================================================= services: landing-postgres: image: postgres:16-alpine container_name: lilith-landing-postgres restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-landing} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-devpassword} POSTGRES_DB: ${POSTGRES_DB:-lilith_landing} ports: - "${POSTGRES_PORT:-25438}:5432" volumes: - landing-postgres-data:/var/lib/postgresql/data healthcheck: test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-landing} -d ${POSTGRES_DB:-lilith_landing}'] interval: 10s timeout: 5s retries: 5 logging: driver: json-file options: max-size: "100m" max-file: "5" landing-minio: image: minio/minio:latest container_name: lilith-landing-minio restart: unless-stopped environment: MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin} MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin} ports: - "${MINIO_PORT:-9011}:9000" - "${MINIO_CONSOLE_PORT:-9012}:9001" volumes: - landing-minio-data:/data command: server /data --console-address ":9001" healthcheck: test: ['CMD', 'mc', 'ready', 'local'] interval: 10s timeout: 5s retries: 5 logging: driver: json-file options: max-size: "100m" max-file: "5" volumes: landing-postgres-data: name: lilith-${LILITH_ENV:-dev}-landing-postgres-data landing-minio-data: name: lilith-${LILITH_ENV:-dev}-landing-minio-data