# ============================================================ # Qihu-AIFlow 智能自动化PaaS平台 - Docker Compose 配置 # ============================================================ # 部署方式: # docker compose up -d # 或: docker compose up -d --build (重建镜像) # # 端口说明: # 前端 (Nginx): 宿主机 12888 -> 容器内 8080 # 后端 (Uvicorn): 宿主机 18080 -> 容器内 18080 # ============================================================ services: aiflow: build: context: . dockerfile: Dockerfile image: qihuaiflow:with-deps container_name: qihu-aiflow ports: - "12888:8080" - "18080:18080" environment: - DATABASE_URL=postgresql+psycopg://aiflow:pwd2026@qihu-aiflow-pg18:5432/aiflow - POSTGRES_HOST=qihu-aiflow-pg18 - POSTGRES_PORT=5432 - POSTGRES_USER=aiflow - POSTGRES_PASSWORD=pwd2026 - POSTGRES_DB=aiflow_vectors - PG_HOST=qihu-aiflow-pg18 - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_PASSWORD=pwd2026 - SECRET_KEY=aiflow-secret-key-change-in-production-2026 - APP_ACCESS_URL=http://210.16.161.218:12888 - DEBUG=false - SILICONFLOW_API_KEY=sk-idsplzeccvmbtyqxcrbhaiwmkzwajmicliunkjkouivepaaz - SILICONFLOW_BASE_URL=https://api.siliconflow.cn - DEFAULT_MODEL=deepseek-ai/DeepSeek-V4-Flash - SILICONFLOW_API_KEY=sk-idsplzeccvmbtyqxcrbhaiwmkzwajmicliunkjkouivepaaz - SILICONFLOW_BASE_URL=https://api.siliconflow.cn - DEFAULT_MODEL=deepseek-ai/DeepSeek-V4-Flash - SILICONFLOW_API_KEY=sk-idsplzeccvmbtyqxcrbhaiwmkzwajmicliunkjkouivepaaz - SILICONFLOW_BASE_URL=https://api.siliconflow.cn - DEFAULT_MODEL=deepseek-ai/DeepSeek-V4-Flash - SILICONFLOW_API_KEY=sk-idsplzeccvmbtyqxcrbhaiwmkzwajmicliunkjkouivepaaz - SILICONFLOW_BASE_URL=https://api.siliconflow.cn - DEFAULT_MODEL=deepseek-ai/DeepSeek-V4-Flash - HTTP_PROXY=http://172.18.0.1:7890 - HTTPS_PROXY=http://172.18.0.1:7890 - NO_PROXY=localhost,127.0.0.1,::1,210.16.161.218,172.17.0.0/16,172.18.0.0/16,172.19.0.0/16,172.20.0.0/16,10.0.0.0/8,192.168.0.0/16,.svc,.local,casdoor,qihu-aiflow-mysql,qihu-aiflow-redis,qihu-aiflow-pgvector,qihu-aiflow-pg18,qihu-aiflow-casdoor,qihuyun.com,ai.qihuyun.com,docs.qihuyun.com,bot.qihuyun.com,siliconflow.cn,api.siliconflow.cn,deepseek.com,api.deepseek.com,volcengineapi.com,aliyun.com,aliyuncs.com,dysmsapi.aliyuncs.com,tencentcloudapi.com,baidubce.com,dashscope.com,qwen.ai,zhipuai.cn,moonshot.cn,minimax.chat,baichuan.com,chatglm.cn,xiaomimimo.com,token-plan-cn.xiaomimimo.com,mi.com,pypi.tuna.tsinghua.edu.cn,feishu.cn,open.feishu.cn,dingtalk.com,open.dingtalk.com,weixin.qq.com,developers.weixin.qq.com,qyapi.weixin.qq.com,ilinkai.weixin.qq.com,tencent.com depends_on: redis: condition: service_started restart: unless-stopped networks: - aiflow-network volumes: - ./data:/app/data logging: driver: json-file options: max-size: "50m" max-file: "10" redis: image: redis:7-alpine container_name: qihu-aiflow-redis command: redis-server --requirepass pwd2026 --appendonly yes ports: - "6379:6379" volumes: - redis_data:/data restart: unless-stopped networks: - aiflow-network logging: driver: json-file options: max-size: "20m" max-file: "5" # Phase 0B: LiteLLM Proxy - Unified AI Gateway litellm: image: ghcr.io/berriai/litellm:main-stable container_name: qihu-aiflow-litellm command: ["--config", "/app/config.yaml", "--port", "4000"] ports: - "14000:4000" volumes: - ./config/litellm_config.yaml:/app/config.yaml environment: - HTTP_PROXY=http://qyyfw:XHR521yhf@103.242.14.208:11495 - HTTPS_PROXY=http://qyyfw:XHR521yhf@103.242.14.208:11495 - NO_PROXY=localhost,127.0.0.1,qihu-aiflow-pg18 - LITELLM_MASTER_KEY=sk-litellm-master-key-aiflow-2026 - SILICONFLOW_API_KEY=sk-idsplzeccvmbtyqxcrbhaiwmkzwajmicliunkjkouivepaaz - AGNES_API_KEY=sk-idsplzeccvmbtyqxcrbhaiwmkzwajmicliunkjkouivepaaz - LITELLM_CONFIG=/app/config.yaml - MIMO_API_KEY=sk-idsplzeccvmbtyqxcrbhaiwmkzwajmicliunkjkouivepaaz - DATABASE_URL=postgresql://aiflow:pwd2026@qihu-aiflow-pg18:5432/aiflow - LITELLM_MODE=PRODUCTION restart: unless-stopped networks: - aiflow-network meilisearch: image: getmeili/meilisearch:v1.11 container_name: qihu-aiflow-meilisearch ports: - "17700:7700" volumes: - meilisearch_data:/meili_data environment: - MEILI_MASTER_KEY=meili-master-key-aiflow-2026 - MEILI_ENV=production - MEILI_NO_ANALYTICS=true restart: unless-stopped networks: - aiflow-network volumes: redis_data: meilisearch_data: networks: aiflow-network: driver: bridge