version: '3.9' services: orchestrator-db: container_name: {{ customer }}-orchestrator-db image: postgres:16-alpine restart: always environment: POSTGRES_USER: orchestrator POSTGRES_PASSWORD: {{ orchestrator_db_password }} POSTGRES_DB: orchestrator volumes: - {{ customer }}-orchestrator-db:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U orchestrator -d orchestrator"] interval: 5s timeout: 5s retries: 5 networks: {{ customer }}-orchestrator: ipv4_address: 172.20.32.2 orchestrator-api: container_name: {{ customer }}-orchestrator-api image: code.letsbe.solutions/letsbe/orchestrator:latest restart: always labels: - "diun.enable=true" ports: - '127.0.0.1:8100:8000' command: ["sh", "-c", "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 8000"] environment: DATABASE_URL: postgresql+asyncpg://orchestrator:{{ orchestrator_db_password }}@orchestrator-db:5432/orchestrator DEBUG: "false" APP_NAME: "LetsBe Orchestrator" ADMIN_API_KEY: {{ admin_api_key }} LOCAL_MODE: "true" LOCAL_AGENT_KEY: {{ local_agent_key }} HUB_URL: {{ hub_url }} HUB_API_KEY: {{ hub_api_key }} HUB_TELEMETRY_ENABLED: {{ hub_telemetry_enabled }} INSTANCE_ID: {{ instance_id }} LICENSE_KEY: {{ license_key }} depends_on: orchestrator-db: condition: service_healthy healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"] interval: 5s timeout: 5s retries: 10 start_period: 10s networks: {{ customer }}-orchestrator: ipv4_address: 172.20.32.3 networks: {{ customer }}-orchestrator: name: {{ customer }}-orchestrator ipam: driver: default config: - subnet: 172.20.32.0/28 gateway: 172.20.32.1 volumes: {{ customer }}-orchestrator-db: