Docker Deployment
新机或灾难恢复时的标准步骤。假设已满足 Requirements。
CSSA GPT 是本机 Docker 服务:openwebui 用 Compose,litellm 用 docker run(/root/litellm/operation.sh)。两者都加入 openwebui_default 网络。
1. 安装 Docker
# 以 Ubuntu 为例,也可用官方 install script
sudo apt-get update
sudo apt-get install -y docker.io docker-compose-v2
sudo systemctl enable --now docker
2. 部署 Open WebUI
mkdir -p /root/openwebui
cd /root/openwebui
创建 docker-compose.yml。不要把 API Key 写进 Compose。 需要厂商 Key 时用受限 env 文件(chmod 600)再 env_file 注入:
version: "3.8"
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
container_name: openwebui
restart: unless-stopped
ports:
- "127.0.0.1:3002:8080"
env_file:
- /root/openwebui/secrets.env # 仅本机;勿提交 Git
volumes:
- openwebui-data:/app/backend/data
volumes:
openwebui-data:
启动:
docker compose up -d
生产核对:若现有 Compose 的 environment 里仍有明文 Key,在维护窗口把它迁到 env 文件,并在对应厂商控制台轮换该 Key。本文档更新没有改运行中的容器或文件。
3. 部署 LiteLLM
mkdir -p /root/litellm
# 放置 config.yaml、api_keys.env(chmod 600)、operation.sh
chmod +x /root/litellm/operation.sh
bash /root/litellm/operation.sh
operation.sh 会:
docker stop/rm litellm- 在
openwebui_default网络上docker run新容器 - 映射
127.0.0.1:4001:4000 --env-file /root/litellm/api_keys.env注入密钥
当前脚本没有 --restart。重建时建议加上 --restart unless-stopped,否则宿主机重启后 LiteLLM 不会自动起来。须先启动 Open WebUI 一次,以便 Compose 创建 openwebui_default 网络。
4. 配置 Nginx + HTTPS
参考 Nginx HTTPS。
5. 配置 Open WebUI → LiteLLM
按 Connect LiteLLM 在管理后台填写 Base URL 与 master key。
6. 从备份恢复(可选)
若有 R2 归档:
# 见 /root/infra-backup/docs/runbook-restore.md
/root/infra-backup/restore/openwebui.sh /path/to/openwebui-YYYY-MM-DD.tar.gz
7. 验证清单
-
docker ps两容器 Up -
curl http://127.0.0.1:4001/→ 200 -
curl http://127.0.0.1:3002/→ 200/307 - HTTPS 域名可登录、流式对话正常
- cron 或手动跑通
backup/openwebui.sh - Compose / env 文件中无明文 Key 进 Git
迁移备注
本机曾从 migration-backup 恢复卷:
docker run --rm \
-v openwebui_openwebui-data:/data \
-v ~/migration-backup:/backup \
alpine sh -c "rm -rf /data/* && tar xzf /backup/openwebui-volume.tar.gz -C /data"
新迁移建议统一走 infra-backup 的 tar.gz 格式。