System Architecture
请求路径
部署拓扑
数据存放
| 组件 | 状态 | 存储 |
|---|---|---|
| Open WebUI | 有状态 | Docker 卷 openwebui_openwebui-data → /app/backend/data(SQLite 等) |
| LiteLLM | 无状态 | 仅内存;配置在 config.yaml + 环境变量 |
| Nginx | 无状态 | /etc/nginx/sites-available/ai.bucssa.org |
| 备份 | 归档 | 本地 staging + R2 bucket openwebui |
网络与安全边界
- 应用端口 不直接暴露公网,只监听
127.0.0.1 - LiteLLM 与 Open WebUI 在同一 Docker 网络,容器间可通过服务名通信;当前 LiteLLM 仍通过宿主机端口
4001供 Open WebUI 配置连接 - 提供商 API Key 存放在
/root/litellm/api_keys.env,权限建议chmod 600
为何 LiteLLM 不用数据库
在本架构中 LiteLLM 仅作 API Gateway / Router。无 DB 时:
- 无 Neon/Postgres 常驻连接
- 容器启动更快、故障面更小
- Open WebUI 已承担会话持久化
若未来需要虚拟 Key、团队配额、LiteLLM Admin 面板等,再单独评估 PostgreSQL。