部署文档

部署到服务器

两套方案任选,仓库里有完整的 docs/DEPLOYMENT.md

🐳 Docker Compose

环境隔离,一条命令起停,迁移方便。

仓库自带 docker-compose.yml,MySQL / Redis / Qdrant / Milvus 按需起停。

# 装 Docker curl -fsSL https://get.docker.com | sh # 拉代码 cd /opt && git clone <仓库地址> ics cd ics # 配置(必改 SECRET_KEY 和 CORS) cp backend/.env.example backend/.env # 启动 docker compose -f docker-compose.prod.yml up -d --build

🔧 systemd + Nginx

不用 Docker,直接在宿主机跑。

单台云服务器最省心:systemd 负责守护进程,Nginx 负责反代与 HTTPS。

# 建专用用户(不要用 root 跑应用) sudo useradd -r -s /bin/false -d /opt/ics csapp # 装依赖 cd /opt/ics/backend sudo -u csapp python3 -m venv .venv sudo -u csapp .venv/bin/pip install -r requirements.txt # 写 systemd 服务后启动 sudo systemctl enable --now ics

⚠️ 三个必须知道的坑

这三条是部署时最容易出问题的地方。

问题说明
上线第一件事:改默认密码 后台已内置登录,但默认账号是公开的 admin / 123456。没改就对外,等于把 API Key 配置页开放给所有人。同时把 APP_SECRET_KEY 换成随机值 —— 它负责签发登录 token。应用只绑 127.0.0.1:8000,公网只让 Nginx 露出来。
SSE 必须关缓冲 不关的话回答不会逐字出现,而是等全部生成完才一次性蹦出来,长回答还可能超时断开。
iframe 尺寸要给够 需要 400 × 636,且 background: transparent。给小了面板被裁,不透明会露出白底。
# Nginx 关键配置:SSE 流式问答必须关闭缓冲 location /api/chat/stream { proxy_pass http://127.0.0.1:8000; proxy_http_version 1.1; proxy_buffering off; # ← 关键 proxy_cache off; chunked_transfer_encoding off; proxy_read_timeout 300s; } # 文档入库耗时长,超时要放宽 location /api/documents/process { proxy_pass http://127.0.0.1:8000; proxy_read_timeout 1800s; }
安全清单:改掉后台默认密码 admin/123456 · 换掉 APP_SECRET_KEY(签发登录 token) · AUTH_ENABLED 保持 true · APP_DEBUG=false · CORS_ORIGINS 限定域名 · 启用 HTTPS · 不用 root 跑 · 给聊天接口限流 · 定期备份 backend/data/存着你的 API Key,已被 .gitignore 排除)

继续阅读仓库文档

完整部署文档、API 说明和嵌入指南都在仓库的 docs/ 目录。

现在就把它跑起来

克隆、装依赖、点运行 —— 五分钟后你就有一个能用的智能客服

免费下载源码 常见问题