跳到主要内容
版本:Current

Docker Deployment

新机或灾难恢复时的标准步骤。假设已满足 Requirements

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(与生产一致,勿在仓库提交真实 Key):

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"
volumes:
- openwebui-data:/app/backend/data

volumes:
openwebui-data:

启动:

docker compose up -d

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 会:

  1. docker stop/rm litellm
  2. openwebui_default 网络上启动新容器
  3. 映射 127.0.0.1:4001:4000

须先启动 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

迁移备注

本机曾从 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 格式。