services: headroom-proxy: build: context: . args: HEADROOM_EXTRAS: ${HEADROOM_EXTRAS:-proxy,code,ml,gpu} gpus: all command: ["--host", "0.0.0.0", "--port", "7860", "--workers", "${HEADROOM_WORKERS:-3}", "--no-rate-limit"] volumes: - ./headroom:/src/headroom:cached - ./headroom/dashboard/templates:/src/headroom/dashboard/templates:cached - ./headroom/dashboard/templates:/app/headroom/dashboard/templates:cached - ./.cache:/home/nonroot/.cache environment: - TZ=Asia/Bangkok - PYTHONPATH=/src - XDG_CACHE_HOME=/home/nonroot/.cache - HF_HOME=/home/nonroot/.cache/huggingface - HF_HUB_OFFLINE=${HF_HUB_OFFLINE} - TRANSFORMERS_OFFLINE=${TRANSFORMERS_OFFLINE} - HEADROOM_HOST=0.0.0.0 - HEADROOM_PORT=7860 - HEADROOM_LOG_MESSAGES=1 - HEADROOM_STATS_RESET_ON_RESTART=1 - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - ANTHROPIC_TARGET_API_URL=${ANTHROPIC_TARGET_API_URL} - HEADROOM_PROXY_API_KEY=${HEADROOM_PROXY_API_KEY} - REDIS_URL=${REDIS_URL:-} - REDIS_REST_TOKEN=${REDIS_REST_TOKEN:-} ports: - "${HOST_PORT}:7860" healthcheck: test: ["CMD", "curl", "--fail", "--silent", "http://127.0.0.1:7860/readyz"] interval: 30s timeout: 5s retries: 3 start_period: 40s restart: unless-stopped