WeKnora离线部署完整教程:内网无网络环境下4步搭建私有知识问答系统
【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora
WeKnora 是一个开源的 LLM 知识平台,把原始文档变成可提问的 RAG 知识库、能自主推理的智能体和自动维护的 Wiki。本文带你在一台没有外网的内网服务器上,只靠 Docker 把整套系统跑起来——文档解析、向量检索、大模型问答全部发生在你的硬件里,数据不出域。
你会得到什么
先说结果,让你知道这套折腾换来的是什么。部署完成后,浏览器打开http://localhost,你能做到三件事:
- 快速问答:上传一批 PDF、Word、Excel,用大白话提问,答案带来源引用;
- 智能体推理:面对多步复杂问题,ReAct 智能体会自己规划检索、调用工具、逐步求解;
- 自动 Wiki:智能体把散装文档蒸馏成带互链的 Markdown 知识库,还能一键回滚历史版本。
整个系统由五个容器组成:前端界面、后端 API、文档解析器(docreader)、带向量检索能力的 PostgreSQL(ParadeDB 镜像)和 Redis 缓存。它们全部运行在一个名为WeKnora-network的 Docker 内部桥接网络里,彼此通过内网通信,不产生任何出网请求。
这套方案适合谁
先花 10 秒判断一下自己该走哪条路,能省很多事:
| 你的情况 | 建议 | 说明 |
|---|---|---|
| 个人或小团队,只想本机试用 | Lite 形态 | 单应用、零依赖,数据完全存本地,默认只允许本机访问,不需要数据库和消息队列 |
| 企业内网、多成员协作、完整解析链路 | 标准版(本文主角) | Docker Compose 多容器部署,私有化后数据同样留在本地 |
| 涉密环境,服务器完全断网 | 标准版 + 镜像/模型预迁移 | 见下文"起飞前检查" |
Lite 与标准版的完整差异可以看 Lite 文档。本文按标准版展开,因为绝大多数内网部署最终都要走到这一步。
起飞前检查:先确认三件事
新手卡住,八成不是命令打错,而是准备工作缺了一块。按顺序过一遍:
1. Docker 环境
docker compose version能输出版本号就行。装不上 Docker 的话,这一步会卡最久,优先解决。
2. 硬件规模
一套推荐配置:8 核 CPU、32GB 内存、200GB 可用 SSD 空间。大模型推理是内存大户,如果你还要跑本地对话模型,内存不足时问答会慢得让人怀疑人生。
3. 无网络环境下的"搬运"计划(完全断网才需要)
在有网的机器上准备两样东西,拷到内网目标机:
- 容器镜像:
docker save导出,目标机docker load导入(涉及 weknora-app / weknora-ui / weknora-docreader、ParadeDB 版 PostgreSQL、Redis 等镜像); - Ollama 模型文件:对话模型和嵌入模型(嵌入模型是把文字转成数字向量、供语义检索用的"翻译官"),在有网机上
ollama pull后用ollama cp迁移,或整目录拷贝~/.ollama/models。
有外网的内网跳板机环境可以跳过这一节。
四步把系统跑起来
第一步:拿到项目代码
git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora内网机器上可以直接把整个目录打包拷过去,效果一样。
第二步:生成配置文件
cp .env.example .env.env是整套部署的总开关,模板文件里每一项都有中文注释。默认值大多可以直接用,离线场景重点关注三行:
STORAGE_TYPE=local # 文件落在本地卷,默认值即可,无需改 OLLAMA_BASE_URL=http://host.docker.internal:11434 # 容器访问宿主机 Ollama 的地址,默认即可 SYSTEM_AES_KEY=weknora-system-aes-key-32bytes!! # 建议换成自己生成的32字节字符串前两项解释一下:STORAGE_TYPE=local保证所有上传文档都写进本地 Docker 卷;host.docker.internal是容器里指代"宿主机"的固定写法,Ollama 跑在你本机 11434 端口上,这个地址不用动。第三项SYSTEM_AES_KEY用来加密数据库里存的 API 密钥等敏感字段——一旦丢失,已加密的数据无法恢复,所以务必自己换掉模板里的示例值并妥善备份。
第三步:启动全部服务
docker compose up -d镜像已在第三步"搬运"计划里导入过的机器,加--pull never避免它尝试出网拉取;或者直接用仓库自带的启动脚本:
./scripts/start_all.sh --no-pull脚本会顺手把宿主机的 Ollama 也拉起,并持续跟踪后端、解析器、数据库的启动日志,方便你确认状态。
第四步:等健康检查通过
首次启动会执行数据库自动迁移(AUTO_MIGRATE默认开启),比平时慢一些。等一两分钟后检查:
docker compose ps五个容器都显示Up,其中WeKnora-app是healthy才算就绪——前端容器配置了"等 app 健康再启动"的依赖关系,所以 app 不绿,页面就不开,这是正常保护逻辑,不是故障。
如何验证部署完全离线
部署成功后值得花两分钟做个"断网测试",彻底放心:
- 探活后端:
curl http://localhost:8080/health,返回正常即后端在线; - 看端口面:标准部署只向宿主机开放 80(前端)和 8080(API)两个端口,其余组件(如 docreader 的 50051)只在内部网络可见;
- 看数据流:浏览器开开发者工具的 Network 面板,问一个问题,你会看到所有请求都发往
localhost; - 终极验证:如果条件允许,直接拔掉网线再问一轮,答案照常生成——这就是"数据不出域"的字面含义。
大模型这一环也值得确认:Ollama 跑在宿主机上,容器经host.docker.internal连入,也就是说连"大脑"都在你自己的机器里,而不是某家云厂商的 API。
接入本地模型,问出第一个问题
服务都绿了,但系统还不知道用哪个模型"思考"。接下来五分钟内完成初始化:
- 确认 Ollama 就绪:宿主机上
ollama list能看到你迁移过来的模型即可; - 浏览器打开
http://localhost:注册账号,进入设置里的模型配置,把 Ollama 作为 Provider 接入,分别选一个对话模型(负责生成回答)和嵌入模型(负责把文档切片变成向量); - 建知识库、传文档:新建知识库后拖入 PDF、Word、TXT 等文件,系统自动走"解析 → 切块 → 向量化"流水线,切片可以在界面上逐块查看和编辑;
- 开问:处理完成后在对话框提问,答案下方会列出引用来源,点一下就能跳回原文位置。
如果还想看智能体把文档整理成 Wiki 的效果,同一个知识库可以切换到 Wiki 模式,几分钟后得到一份带知识图谱的互链文档:
常见卡点速查
| 现象 | 原因 | 解法 |
|---|---|---|
| 页面 502 或一直打不开 | app 容器健康检查未通过,前端在等它 | docker compose logs app看日志;首启数据库迁移慢属正常,等 1-2 分钟 |
| 模型配置里 Ollama 连不上 | 宿主机 Ollama 未启动,或地址配错 | 宿主机跑ollama serve;确认.env里OLLAMA_BASE_URL指向http://host.docker.internal:11434 |
| 文档解析慢到怀疑 | CPU 跑嵌入模型,或单文件过大 | 换更小的嵌入模型;用MAX_FILE_SIZE_MB限制单文件体积 |
| 升级后界面还是旧版 | 只执行了up -d,复用了本地旧镜像 | 先docker compose pull(或./scripts/start_all.sh -p)再up -d |
| 数据"消失" | 误删了 Docker 卷 | 数据在postgres-data、data-files等卷里,docker compose down时千万别带-v |
更多排障细节见官方 FAQ,环境变量的完整清单(约 150 项、含注释)在官网文档里可查。
跑起来之后,可以往这三步走
- 按需开启可选组件:知识图谱加
--profile neo4j,对象存储加--profile minio,全链路追踪加--profile langfuse,--profile full一次全开,组件间仍走内网; - 接入内网 IM:WeCom、飞书、Slack 等渠道都支持私网部署,把知识库变成同事随手可问的机器人;
- 给 Ollama 配 GPU:推理速度能提升一个数量级,文档批量导入体验会质变。
对于政府、金融、医疗这类数据合规要求严格的场景,这套"断网可用"的部署形态已经能覆盖大部分知识管理需求;后续版本在向量库、解析引擎上的扩展能力,也让它有余量跟着你的数据规模一起长大。
【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考