services: # --- Lunogram --- lunogram: build: context: . dockerfile: Dockerfile args: VERSION: dev COMMIT: local ports: - "8091:8080" - "8081:8081" environment: POSTGRES_MANAGEMENT_URI: postgres://postgres:postgrespw@postgres:5432/management?sslmode=disable POSTGRES_SUBJECTS_URI: postgres://postgres:postgrespw@postgres:5432/subjects?sslmode=disable POSTGRES_JOURNEY_URI: postgres://postgres:postgrespw@postgres:5432/journey?sslmode=disable RBAC_POSTGRES_URI: postgres://postgres:postgrespw@postgres:5432/rbac?sslmode=disable REDIS_ADDRESS: redis://redis:6379 NATS_URL: nats://nats:4222 AUTH_DRIVER: ${AUTH_DRIVER:-basic} AUTH_JWT_SECRET: ${AUTH_JWT_SECRET:-dev-secret-change-in-production} AUTH_BASIC_EMAIL: ${AUTH_BASIC_EMAIL:-admin@localhost} AUTH_BASIC_PASSWORD: ${AUTH_BASIC_PASSWORD:-admin} AUTH_CLERK_SECRET_KEY: ${AUTH_CLERK_SECRET_KEY:-} AUTH_CLERK_WEBHOOK_SECRET: ${AUTH_CLERK_WEBHOOK_SECRET:-} PUBLIC_URL: ${PUBLIC_URL:-http://localhost:8091} depends_on: postgres: condition: service_healthy nats: condition: service_started redis: condition: service_healthy networks: - app_network # --- renderer --- renderer: build: context: ./renderer dockerfile: Dockerfile environment: NATS_URL: nats://nats:4222 depends_on: nats: condition: service_started networks: - app_network # --- postgres --- postgres: image: postgres:18 environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgrespw POSTGRES_DB: postgres ports: - "5432:5432" volumes: - postgres_data:/var/lib/postgresql # - ./docker/postgres/init-databases.sh:/docker-entrypoint-initdb.d/init-databases.sh:ro - ./docker/postgres:/docker-entrypoint-initdb.d:ro healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 networks: - app_network # --- nats --- nats: image: nats:2.12 ports: - "4222:4222" - "8222:8222" - "6222:6222" command: "--http_port 8222 --js" networks: - app_network # --- REDIS --- redis: image: redis:8 ports: - "6379:6379" command: redis-server --appendonly yes volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 5s retries: 5 networks: - app_network # --- global --- volumes: postgres_data: redis_data: networks: app_network: driver: bridge