services: postgres: image: postgres:16-alpine environment: POSTGRES_USER: ${AIGW_POSTGRES_USER:?set AIGW_POSTGRES_USER} POSTGRES_PASSWORD: ${AIGW_POSTGRES_PASSWORD:?set AIGW_POSTGRES_PASSWORD} POSTGRES_DB: ${AIGW_POSTGRES_DB:?set AIGW_POSTGRES_DB} ports: - "127.0.0.1:5432:5432" volumes: - aigw-postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"] interval: 5s timeout: 3s retries: 20 redis: image: redis:7-alpine ports: - "127.0.0.1:6379:6379" volumes: - aigw-redis:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 20 mailpit: image: axllent/mailpit:v1.27 ports: - "127.0.0.1:8025:8025" - "127.0.0.1:1025:1025" healthcheck: test: ["CMD", "/mailpit", "readyz"] interval: 5s timeout: 3s retries: 20 aigw: image: aigw-debug:local build: . depends_on: postgres: condition: service_healthy mailpit: condition: service_healthy ports: - "127.0.0.1:8080:8080" environment: AIGW_SERVER_ADDRESS: ${AIGW_SERVER_ADDRESS:?set AIGW_SERVER_ADDRESS} AIGW_DATABASE_URL: ${AIGW_DATABASE_URL_DOCKER:?set AIGW_DATABASE_URL_DOCKER} AIGW_REDIS_URL: ${AIGW_REDIS_URL_DOCKER:-} AIGW_CREDENTIAL_KEY: ${AIGW_CREDENTIAL_KEY:?set AIGW_CREDENTIAL_KEY} AIGW_ADMIN_TOKEN: ${AIGW_ADMIN_TOKEN:?set AIGW_ADMIN_TOKEN} AIGW_PUBLIC_URL: ${AIGW_PUBLIC_URL:?set AIGW_PUBLIC_URL} AIGW_WEBAUTHN_RP_ID: ${AIGW_WEBAUTHN_RP_ID:?set AIGW_WEBAUTHN_RP_ID} AIGW_WEBAUTHN_ORIGINS: ${AIGW_WEBAUTHN_ORIGINS:?set AIGW_WEBAUTHN_ORIGINS} AIGW_SMTP_FROM_ADDRESS: ${AIGW_SMTP_FROM_ADDRESS:?set AIGW_SMTP_FROM_ADDRESS} AIGW_SMTP_ADDRESS: ${AIGW_SMTP_ADDRESS_DOCKER:?set AIGW_SMTP_ADDRESS_DOCKER} AIGW_SMTP_USERNAME: ${AIGW_SMTP_USERNAME:-} AIGW_SMTP_PASSWORD: ${AIGW_SMTP_PASSWORD:-} AIGW_STRIPE_API_KEY: ${AIGW_STRIPE_API_KEY:?set AIGW_STRIPE_API_KEY} AIGW_STRIPE_WEBHOOK_SECRET: ${AIGW_STRIPE_WEBHOOK_SECRET:?set AIGW_STRIPE_WEBHOOK_SECRET} AIGW_STRIPE_SUCCESS_URL: ${AIGW_STRIPE_SUCCESS_URL:?set AIGW_STRIPE_SUCCESS_URL} AIGW_STRIPE_CANCEL_URL: ${AIGW_STRIPE_CANCEL_URL:?set AIGW_STRIPE_CANCEL_URL} volumes: - ./config.control.example.json:/etc/aigw/config.json:ro healthcheck: test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:8080/readyz"] interval: 3s timeout: 2s retries: 20 start_period: 5s volumes: aigw-postgres: aigw-redis: