platform-codebase/features/landing/docker-compose.yml
2026-02-01 18:36:39 -08:00

78 lines
2 KiB
YAML

# =============================================================================
# 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