news 2026/9/20 10:11:12

WeKnora 私有 RAG 知识库:Docker Compose 部署上线完整实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WeKnora 私有 RAG 知识库:Docker Compose 部署上线完整实战

WeKnora 私有 RAG 知识库:Docker Compose 部署上线完整实战

【免费下载链接】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 知识库、推理 Agent 和自动维护的 Wiki。这篇文章只讲一件事——在一台机器上用 Docker Compose 把 WeKnora 部署跑通,然后完成验证、调优和上线前的安全检查。

用 Docker Compose 把核心五件套拉起来

LLM 走 API(云端或远程 Ollama)的话,4 核 8GB 的机器就够;本机跑 Ollama 时内存取决于你加载多大的模型。先花十秒自检一下环境:

# 检查 CPU、内存、磁盘和 Docker Compose 是否可用 nproc; free -h; df -h .; docker compose version

都过了就直接进入 WeKnora 部署,整条路径就三步,断点排查也方便:

# 克隆代码仓库,并复制环境变量模板 git clone https://gitcode.com/GitHub_Trending/we/WeKnora && cd WeKnora cp .env.example .env

打开.env,只需要动下面这几项,其余保持默认即可:

变量你该做什么
DB_PASSWORD/REDIS_PASSWORD改成自己的强密码
SYSTEM_AES_KEY生成 32 字符,离线保管
FRONTEND_PORT80 被占用改 8088
STORAGE_TYPE保持 local
OLLAMA_BASE_URL不用 Ollama 就留默认

STORAGE_TYPE默认是local,文件落在 Docker 卷里最省事;有对象存储需求再换minio/s3OLLAMA_BASE_URL默认指向宿主机的 Ollama,不用的话留着也无害,最多启动时告警一句。

# 拉取镜像并后台启动核心服务 docker compose pull && docker compose up -d

仓库里还有一键脚本 启动脚本(会顺带装 Ollama),但手动走 docker compose 更可控,推荐上面的路径。

验证容器健康检查与网页响应

判断"起没起来"只有一条硬标准:docker compose ps里 app 显示 healthy。

# 查看容器状态,app 为 healthy 才算就绪 docker compose ps
WeKnora-postgres paradedb/paradedb healthy WeKnora-app wechatopenai/weknora-app healthy # ……(略)

默认启动的核心五件套各就各位:

容器作用宿主端口
frontendWeb 界面80
appAPI 与业务逻辑8080
postgresParadeDB 关系+向量不对外
redis队列与流处理不对外
docreader文档解析 gRPC不对外

这里说一下 postgres:它是 ParadeDB 镜像,本质是带向量扩展的 Postgres;所以选它,是为了单机部署少养一个独立的向量库;不这么做的话,就得另起 Qdrant 或 Milvus 再填连接配置。

然后打开浏览器:http://localhost是前端界面,http://localhost:8080是 API 服务。

用 profile 叠加可选组件

默认up -d只拉起核心服务,其余组件用--profile按需叠加,可自由组合:

# 例:同时启用知识图谱(Neo4j)与对象存储(MinIO) docker compose --profile neo4j --profile minio pull docker compose --profile neo4j --profile minio up -d

常用的有:full(全部功能)、neo4j(知识图谱)、minio(对象存储)、langfuse(链路追踪)、searxng(自建网页搜索)。

配置模型并灌入第一批文档

容器健康但上传文档没动静,十有八九是模型没配。LLM 和 Embedding 模型要在网页「系统设置」里首次填写,API 或 Ollama 均可。走 Ollama 的话先把它跑起来:

# 启动 Ollama 并拉取一个对话模型 ollama serve ollama pull qwen2.5:7b

模型配好之后,建一个知识库,扔进几篇 PDF 或 Markdown,就可以直接提问了:

回答会带引用来源,点开能核对检索命中的是不是正确段落——这一步就是检验部署质量的最直接方式。

批量导入慢就动这三个旋钮

WeKnora 部署跑起来之后,最常见的抱怨是"解析慢"。按优先级动这三处:

  1. 模型别将就。回答质量九成取决于 LLM,先把能力强的模型配上,胜过调任何参数。
  2. 调解析并发WEKNORA_ASYNQ_CORE_CONCURRENCY是文档解析主链路的队列并发数;它默认 8,对单机偏保守;不调的话批量导入会排队变慢,机器有余量就提到 16,体感立竿见影。
  3. 降日志级别LOG_LEVEL默认debug,又吵又占盘;稳定后改info,配合LOG_PATH落盘方便事后排查。

另外WEKNORA_MODEL_MAX_CONCURRENCY(默认 32)限制每个模型的后台并发,遇到模型提供方 429 限流时,往小调而不是往大调。

# 改完 .env 后重建 app 容器让新值生效 docker compose up -d app

改的是环境变量,光重启进程不够,必须重建容器才会读进新值。

公网暴露前过一遍安全与备份清单

默认配置里不少值是占位示例,暴露到公网之前逐项核销:

  • DB_PASSWORDREDIS_PASSWORD改成自己的值;
  • 显式设置SYSTEM_AES_KEY,用openssl rand -hex 16生成。它是 API Key 等敏感字段的落盘加密密钥,丢了就解不开,务必离线保管 ⚠️
  • DISABLE_REGISTRATION=true,用户走管理员邀请而非公开注册;
  • 给前端挂 HTTPS,反代 nginx/caddy 终止证书即可;
  • 确认备份链路可用。数据都在 Docker 卷里,一条命令导出:
# 导出数据库备份 docker compose exec postgres pg_dump -U postgres -d WeKnora > weknora_$(date +%F).sql

升级和部署走同样的两步,注意先pullup,否则会复用旧镜像:

# 升级:拉取与 WEKNORA_VERSION 匹配的新镜像并重建 docker compose pull && docker compose up -d

日常巡检看两样:docker stats看资源占用,docker compose logs -f app看报错。

卡住了对照这五条

整个 WeKnora 部署过程中最容易卡住的,是下面这五个点:

Q: 报docker: command not foundA: Docker 没装,安装完成后用docker compose version复查。

Q: 连不上 daemon,报permission deniedA:sudo usermod -aG docker $USER把用户加进 docker 组,重开终端生效。

Q: 前端起不来,提示 80 端口被占用 A:.env里改FRONTEND_PORT=8088,再docker compose up -d重建。

Q: app 容器反复重启 A:docker compose logs -f app看日志定位,多数是DB_USER/DB_PASSWORD/DB_NAME与 postgres 容器对不上。

Q: 文档上传成功但问答没反应 A: 回系统设置核对 LLM 与 Embedding 模型是否配置完整且可连通,更多情况见 常见问题排查。

跑通之后,第一件事是往里扔第一批文档,然后问它一个问题——看它答得准不准。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/20 10:10:51

MMPose 姿态估计指南:从安装到人体关键点推理

MMPose 姿态估计指南:从安装到人体关键点推理 【免费下载链接】mmpose OpenMMLab Pose Estimation Toolbox and Benchmark. 项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose MMPose 是 OpenMMLab 出品的姿态估计工具箱:输入一张图片或一…

作者头像 李华
网站建设 2026/9/20 10:10:27

ANSYS Workbench物理建模入门:从零构建可信仿真能力

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 10:09:17

ESP32+MAX30102健康监测仪:从硬件选型到数据滤波的完整实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/20 10:05:33

Win10安装JDK 1.8全攻略:国内镜像下载与环境变量配置详解

这两年只要聊到 JDK 版本,总有人问我:“都什么年代了,新项目还用 JDK 1.8 吗?” 问这种问题的人,多半还没经历过被某个老系统的依赖链锁死的绝望,也没体会过“明明本地跑得好好的,一上服务器就各…

作者头像 李华
网站建设 2026/9/20 10:04:04

2026数据治理平台AI能力分化:Agent接管与辅助路线选型指南

1. 数据治理路线分化的底层逻辑1.1 从“人治”到“智治”的拐点2026年这个时间节点,数据治理领域正在经历一次静默但深刻的分化。过去十年,绝大多数企业的数据治理工作本质上还是“人治”——靠数据治理专员手动梳理元数据、靠DBA逐条配置质量规则、靠数…

作者头像 李华
网站建设 2026/9/20 10:02:34

学术研究Agent实战指南:Python+Claude驱动的科研自动化技能包

1. 项目概述:这不是一个“工具评测”,而是一次学术生存现场直播 “每日热评|学术牛马的救星还是幻觉放大器?47k星学术研究Agent技能包深度评测”——这个标题里藏着三重真实:第一重是情绪,"学术牛马&…

作者头像 李华