跳至正文

NAS 上的 Ollama 怎么变成全家能用的 AI 助手:Open WebUI 部署与 5 个踩坑

猫哥自言自语时间。我家那台群晖 DS420+ 上早早就跑着 Ollama(qwen2.5:3b),但一直只有我能在命令行里敲。家里人想问点啥,还得凑到我电脑前——这不扯么。后来我把 Open WebUI 架上去,现在谁打开浏览器就能跟本地模型聊天,模型数据全在 NAS 里,一个字节不外泄。部署本身十分钟,但中间踩的坑够我喝一壶。今天把完整的 docker-compose 和 5 个坑都甩出来。

为什么是 Open WebUI

Ollama 只提供 API 和命令行,没有界面。Open WebUI 是开源的 ChatGPT 式前端,原生对接 Ollama,支持多用户、对话历史、文档问答(RAG)、模型切换。关键是它能直接跑在 NAS 的 Docker 里,跟 Ollama 在同一个内网,延迟低、不依赖任何云服务。

本地 AI 助手界面

部署:一个 docker-compose 搞定

我的 Ollama 已经在另一个容器里跑着,所以 Open WebUI 只需要连过去:

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    volumes:
      - ./open-webui-data:/app/backend/data
    environment:
      # 重点:这里填 Ollama 容器名,不是 127.0.0.1
      - OLLAMA_BASE_URL=http://ollama:11434
      - WEBUI_SECRET_KEY=换一个长随机串
    restart: unless-stopped
    networks:
      - ai-net

networks:
  ai-net:
    external: true   # 复用 Ollama 所在的网络

docker compose up -d 起来后,浏览器开 http://nas内网IP:3000,第一次访问注册的第一个账号就是管理员。

Docker 容器网络

踩坑 1:OLLAMA_BASE_URL 填 127.0.0.1 死活连不上

这是新手第一坑。在宿主机上 127.0.0.1:11434 能通,但 Open WebUI 是独立容器,它的 127.0.0.1 指的是自己那个容器,根本找不到 Ollama。解决办法:两个容器放进同一个 Docker 网络(上面 ai-net),然后 OLLAMA_BASE_URLhttp://ollama:11434(Ollama 的容器名/服务名)。容器内靠服务名做 DNS 解析,这才是正解。

踩坑 2:容器一删,模型全没了

默认情况下 Ollama 拉取的模型存在容器内部存储层,容器重建就丢。必须把模型目录挂出来:在 Ollama 容器加 -v /volume2/ollama/models:/root/.ollama,并设置环境变量 OLLAMA_MODELS=/root/.ollama。另外,大模型拉取经常超时中断,别在 Open WebUI 界面里点下载,直接用命令行 docker exec ollama ollama pull qwen2.5:3b 提前拉好,稳定又快。

踩坑 3:3000 端口被群晖自己占了

群晖的某些套件(比如 Audio Station)会占用 3000 端口,直接映射 3000:8080 会起不来。我改成映射 13000:8080,或者更省心——走 Nginx 反代,用二级域名 ai.nas.local 访问,证书也顺便用上,内网体验直接拉满。

踩坑 4:3b 模型都卡,响应慢得像在思考人生

群晖没有独显,全靠 CPU 推理。qwen2.5:3b 在 CPU 上还能跑,但并发一高就卡。几个调优:

  • 用量化版模型(如 qwen2.5:3b-q4_K_M),体积减半、速度翻倍;
  • 限制并行:OLLAMA_NUM_PARALLEL=1OLLAMA_MAX_LOADED_MODELS=1,避免多个会话抢资源;
  • 在 Open WebUI 里把上下文窗口调小(如 4096),别动不动就 32k。

踩坑 5:直接把 3000 端口暴露在公网,等于给全网发邀请函

本地服务器安全

家里人出门也想用,有人图省事直接端口映射出去——大忌。Open WebUI 自带用户系统(注册需管理员审批可关),但裸暴露仍有风险。正确姿势:用 Cloudflare Tunnel 或 frp 做内网穿透,前端套一层鉴权;或者干脆只允许 VPN 回家再访问。我走的是 Cloudflare 隧道 + 浏览器基本认证,手机上点开就能聊,又不用把 NAS 裸奔到公网。

猫哥总结

NAS + Ollama + Open WebUI 这套组合,本质是把”AI 能力”从云上搬回自己家。部署不难,难的是那几个网络、存储、性能、安全的坑。踩完这五个,全家老小都能用上本地模型,问啥都不怕隐私泄露,也不花一分钱 API 费。如果你家也有台闲着的 NAS,别让它只当下载机了,给它装上脑子。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注