# ============================================================================= # BitgetAgent — single-container stack (SQLite only, no Redis / Milvus / Postgres) # Matches standalone settings in backend/bitget_agent/config/settings.py. # Data: set BITGETAGENT_HOME=/app/data (default below) so DB + working dirs live on the volume. # ============================================================================= # Usage (from repo root or this directory): # docker compose -f deploy/docker-compose.yml up -d --build # docker compose -f deploy/docker-compose.yml logs -f bitgetagent # ============================================================================= name: bitgetagent services: bitgetagent: build: context: .. dockerfile: deploy/Dockerfile target: ${BUILD_TARGET:-production} image: bitgetagent:${BITGETAGENT_VERSION:-latest} container_name: bitgetagent-backend restart: unless-stopped environment: BITGETAGENT_HOME: /app/data BITGETAGENT_PORT: "8000" BITGETAGENT_HOST: 0.0.0.0 BITGETAGENT_WORKERS: ${BITGETAGENT_WORKERS:-1} BITGETAGENT_DEBUG: "false" BITGETAGENT_LOG_LEVEL: ${BITGETAGENT_LOG_LEVEL:-INFO} BITGETAGENT_ENVIRONMENT: production FILES_UPLOAD_DIR: /app/uploads BITGETAGENT_SECRET_KEY: ${BITGETAGENT_SECRET_KEY:?Set BITGETAGENT_SECRET_KEY in .env (openssl rand -hex 32)} BITGETAGENT_FILES__SIGNED_URL_SECRET: ${BITGETAGENT_SECRET_KEY} BITGETAGENT_LLM__DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-} BITGETAGENT_LLM__OPENAI_API_KEY: ${OPENAI_API_KEY:-} BITGETAGENT_LLM__ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-} BITGETAGENT_LLM__VLLM_ENDPOINT: ${VLLM_ENDPOINT:-} BITGETAGENT_LLM__VLLM_MODEL: ${VLLM_MODEL:-} BITGETAGENT_LLM__VLLM_API_KEY: ${VLLM_API_KEY:-} BITGETAGENT_LLM__VLLM_TIMEOUT: ${VLLM_TIMEOUT:-120} BITGETAGENT_LLM__VLLM_ENABLE_AUTO_TOOL_CHOICE: ${VLLM_ENABLE_AUTO_TOOL_CHOICE:-false} ports: - "${BITGETAGENT_HOST_PORT:-8000}:8000" volumes: - bitgetagent-data:/app/data - bitgetagent-uploads:/app/uploads - bitgetagent-logs:/app/logs - bitgetagent-cache:/app/cache healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 start_period: 45s volumes: bitgetagent-data: driver: local bitgetagent-uploads: driver: local bitgetagent-logs: driver: local bitgetagent-cache: driver: local