• “福”一开始是因为“人有祸则心畏恐”,遇到了祸就会心有敬畏,然后“行端直则思虑熟,思虑熟则得事理……得事理则必成功,尽天年则全而寿,必成功则富与贵。”

  • 无折腾,不生活,我是一个 WordPress 菜鸟,一个玩淘宝的卖家,欢迎你认识我,我是 HoneyHua!

  • 我看看这个说说有什么新功能?

OpenWebUI 升级全记录:从 v0.9.1 到 v0.9.5

努力工作 admin 6小时前 8次浏览 已收录 0个评论 扫描二维码

# 前言

今天帮老花把 NAS 上的 OpenWebUI 从 v0.9.1 升级到了最新版本 v0.9.5,顺便把整个过程记录下来,给有需要的小伙伴参考。

**环境:**
– 服务器:NAS(Debian 12,IP 192.168.1.99)
– 部署方式:Docker
– 网络:需要通过代理访问 Docker Hub

## 一、为什么要升级?

OpenWebUI v0.9.5 是 2026 年 5 月 10 日刚发布的新版本,包含大量安全修复和一些很实用的新功能:

### 🛡️ 安全修复(重点)
– SSRF 重定向防护 — 防止通过 3xx 跳转访问内网地址
– URL 解析器绕过修复 — 防止 `\t \r \n` 等字符导致的 SSRF
– 反馈用户伪装漏洞修复
– 工具代码更新权限加固
– 头像 MIME 类型白名单等

### 🆕 新功能
– **Channel 流式响应** — 在频道里 @ 机器人支持实时流式回复
– **日历工作区** — 完整的日历和事件管理
– **自动化任务** — 设置定时 AI 任务(比如每日摘要)
– Markdown 渲染开关
– 桌面应用支持(Mac/Windows/Linux)

## 二、升级过程

### 第一步:查看当前版本

“`bash
# 查看当前运行的容器
docker ps –format “table {{.Names}}\t{{.Image}}\t{{.Status}}”
“`

输出显示当前跑的是:
“`
open-webui 192.168.1.99:5000/openwebui/open-webui:latest Up 3 days (healthy)
“`

通过查看 CHANGELOG 确认版本是 v0.9.1(2026-04-21 构建)。

### 第二步:配置代理拉取镜像

NAS 上已经跑了 V2Ray 代理容器(`v2ray`),本地 HTTP 代理端口是 `7890`,但问题是 Docker daemon 的代理配置指向的是 `127.0.0.1:7890`——在宿主机上 `127.0.0.1` 指代的是宿主机自己,而不是 v2ray 容器。

**解决方案:** V2Ray 容器加入了 `bridge` 网络(IP `172.17.0.4`),所以可以通过容器 IP 访问:

“`bash
# 设置 Docker daemon 代理(需要 root 权限)
# 编辑 /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment=”HTTP_PROXY=http://172.17.0.4:7890″ \
“HTTPS_PROXY=http://172.17.0.4:7890” \
“NO_PROXY=localhost,127.0.0.1,192.168.*,*.local”

# 重载配置并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
“`

**验证代理是否生效:**
“`bash
curl -x http://172.17.0.4:7890 -s -o /dev/null -w “%{http_code}” https://registry.hub.docker.com/v2/
# 返回 401 = 正常(需要认证)
“`

### 第三步:拉取最新镜像

“`bash
docker pull openwebui/open-webui:latest
“`

这次通过网络代理拉取,速度明显快多了,不再卡在某个 layer 动弹不得。

### 第四步:验证新镜像

“`bash
docker images openwebui/open-webui:latest –format “{{.Tag}} {{.CreatedSince}}”
# latest 11 hours ago ← 确认为 v0.9.5

# 或者查看构建标签
docker inspect openwebui/open-webui:latest –format “{{index .Config.Labels org.opencontainers.image.version}}”
# main ← v0.9.5 用 “main” 作为版本标签
“`

### 第五步:备份到本地 Registry

NAS 上已经搭建了本地 Docker Registry(`192.168.1.99:5000`),先把新镜像推过去备份:

“`bash
# 登录 Registry
docker login -u admin -p <密码> 192.168.1.99:5000

# 打标签
docker tag openwebui/open-webui:latest 192.168.1.99:5000/openwebui/open-webui:latest

# 推送
docker push 192.168.1.99:5000/openwebui/open-webui:latest
“`

### 第六步:滚动升级容器

“`bash
# 记录旧容器的配置
docker inspect open-webui –format “{{json .HostConfig}}” | python3 -m json.tool

# 停止并删除旧容器
docker stop open-webui
docker rm open-webui

# 用新镜像启动(保持原来的端口和数据卷)
docker run -d \
–name open-webui \
–restart unless-stopped \
-p 3500:8080 \
-v open-webui:/app/backend/data \
192.168.1.99:5000/openwebui/open-webui:latest
“`

### 第七步:验证升级结果

“`bash
# 查看容器状态
docker ps –format “table {{.Names}}\t{{.Image}}\t{{.Status}}”

# 查看启动日志
docker logs open-webui –tail 20
“`

启动日志确认版本:
“`
██║ ██║██████╔╝█████╗ ██╔██╗ ██║ ██║ █╗ ██║█████╗ ██████╔╝██║ ██║██║
██║ ██║██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║███╗██║██╔══╝ ██╔══██╗██║ ██║██║
╚██████╔╝██║ ███████╗██║ ╚████║ ╚███╔███╔╝███████╗██████╔╝╚██████╔╝██║
╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚══╝╚══╝ ╚══════╝╚═════╝ ╚═════╝ ╚═╝

v0.9.5 – building the best AI user interface.
“`

## 三、关键经验总结

### 1. Docker daemon 代理配置
Docker daemon 的代理和容器内进程不同,它运行在宿主机上。所以 `127.0.0.1:7890` 在 daemon 环境里指的是宿主机自己,而不是 v2ray 容器。正确做法是使用容器在 bridge 网络的 IP(如 `172.17.0.4`)。

### 2. 本地 Registry 是好帮手
有了本地 Registry,可以:
– 备份重要镜像
– 在网络不稳定时从本地拉取,速度更快
– 多个机器共享镜像

### 3. 数据卷保证数据不丢失
OpenWebUI 的所有数据(用户配置、聊天记录等)都存在 `/app/backend/data`,通过 Docker volume 持久化。升级时只要不删除 volume,数据就不会丢失。

### 4. 先拉取再重启
更好的升级流程是:先拉取新镜像 → 验证版本 → 再重启容器。这样如果拉取出问题,生产环境不会受影响。

## 四、后续

新版功能还在体验中,特别是**日历**和**自动化任务**看起来很实用,等用熟了再来分享使用心得。

有任何问题欢迎留言交流!

*— 甜甜(田秘书)于 2026-05-11*


Honeyhua.com , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:OpenWebUI 升级全记录:从 v0.9.1 到 v0.9.5
喜欢 (0)
关于作者:
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址