# ============================================================================= # SuiAgent — single-container stack (SQLite only, no Redis / Milvus / Postgres) # Matches standalone settings in backend/suiagent/config/settings.py. # Data: set SUIAGENT_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 suiagent # ============================================================================= name: suiagent services: suiagent: build: context: .. dockerfile: deploy/Dockerfile target: ${BUILD_TARGET:-production} image: suiagent:${SUIAGENT_VERSION:-latest} container_name: suiagent-backend restart: unless-stopped environment: SUIAGENT_HOME: /app/data SUIAGENT_PORT: "8000" SUIAGENT_HOST: 0.0.0.0 SUIAGENT_WORKERS: ${SUIAGENT_WORKERS:-1} SUIAGENT_DEBUG: "false" SUIAGENT_LOG_LEVEL: ${SUIAGENT_LOG_LEVEL:-INFO} SUIAGENT_ENVIRONMENT: production FILES_UPLOAD_DIR: /app/uploads SUIAGENT_SECRET_KEY: ${SUIAGENT_SECRET_KEY:?Set SUIAGENT_SECRET_KEY in .env (openssl rand -hex 32)} SUIAGENT_FILES__SIGNED_URL_SECRET: ${SUIAGENT_SECRET_KEY} SUIAGENT_LLM__DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-} SUIAGENT_LLM__OPENAI_API_KEY: ${OPENAI_API_KEY:-} SUIAGENT_LLM__ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-} ports: - "${SUIAGENT_HOST_PORT:-8000}:8000" volumes: - suiagent-data:/app/data - suiagent-uploads:/app/uploads - suiagent-logs:/app/logs - suiagent-cache:/app/cache healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 start_period: 45s volumes: suiagent-data: driver: local suiagent-uploads: driver: local suiagent-logs: driver: local suiagent-cache: driver: local