networks: lyra_net: driver: bridge volumes: nebula_fallback: driver: local relay_sessions: driver: local services: # ============================================================ # Lyra (Unified: Relay + Cortex + Intake) # ============================================================ lyra: build: context: . dockerfile: Dockerfile container_name: lyra restart: unless-stopped env_file: - ./.env volumes: - relay_sessions:/app/relay/sessions - nebula_fallback:/app/.nebula_fallback - ./cortex:/app/cortex # Mount for hot reload during development - /var/run/docker.sock:/var/run/docker.sock:ro ports: - "7078:7078" # Relay API (user-facing) - "7081:7081" # Cortex API (internal/debug) networks: - lyra_net healthcheck: test: ["CMD", "curl", "-f", "http://localhost:7078/_health"] interval: 30s timeout: 10s retries: 3 start_period: 40s # ============================================================ # UI Server # ============================================================ lyra-ui: image: nginx:alpine container_name: lyra-ui restart: unless-stopped ports: - "8081:80" volumes: - ./core/ui:/usr/share/nginx/html:ro networks: - lyra_net depends_on: lyra: condition: service_healthy