WeKnora Docker 部署实战:10 分钟上线一个私有 RAG 知识库
2026/9/20 21:48:17 网站建设 项目流程

WeKnora Docker 部署实战:10 分钟上线一个私有 RAG 知识库

【免费下载链接】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 在一台机器上把它从克隆代码跑到打开网页能用,顺利的话 10 分钟内搞定。

先自检机器,再动手

WeKnora 本身是应用层,重活落在文档解析和向量检索上。只要 LLM 走 API,一台 4 核 8GB 的机器就够;要本机跑 Ollama 大模型,内存主要看你加载多大的模型。

场景CPU内存
本地开发(LLM 走 API)2 核8GB
生产环境4 核16GB
本机跑 Ollama 大模型8 核32GB

先跑一条命令自检,Docker 和 Compose 都能过就行:

# 检查 CPU、内存、磁盘和 Docker 状态 nproc; free -h; df -h .; docker compose version

docker compose version报失败,多半是 Docker 没装或用户没加组,见后面踩坑。

四步把核心服务拉起来

全程在项目根目录执行,只需四条命令。

1. 克隆仓库

# 克隆 WeKnora 代码仓库并进入目录 git clone https://gitcode.com/GitHub_Trending/we/WeKnora && cd WeKnora

2. 复制并配置环境变量

# 复制环境变量模板(文件内每个变量都有中文注释) cp .env.example .env

编辑.env时只盯下面关键配置表里那几项,其余保持默认。

3. 拉镜像并后台启动

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

首次会拉一堆镜像,耐心等。默认只起核心四件套,可选组件后面按需叠加。

4. 打开浏览器访问

# 查看容器状态,app 显示 healthy 才算就绪 docker compose ps

前端在http://localhost,API 在http://localhost:8080。首次进入要在系统设置里配一个模型(API 或 Ollama 均可)。

只改这几项 .env 配置

.env里有上百个变量,但 90% 你都不需要碰。真正要动的是下面五项,其余保持默认:

变量默认值你要做什么
DB_PASSWORDpostgres123!@#必改,换成你的强密码
REDIS_PASSWORDredis123!@#必改,同上
SYSTEM_AES_KEY32 字节占位值必改,openssl rand -hex 16生成;它加密数据库里 API Key 等敏感字段,丢了就解不开
DISABLE_REGISTRATIONfalse生产设true,用户走管理员邀请
OLLAMA_BASE_URLhttp://host.docker.internal:11434指向你的 Ollama;不用 Ollama 可忽略

💡STORAGE_TYPE=localRETRIEVE_DRIVER=postgres这两项默认就行,别动:文件存本地卷最省事,向量检索直接复用 ParadeDB 版 Postgres。FRONTEND_PORT=80被占用才改。

验收:看到 healthy 才算跑起来

# 逐个确认容器状态 docker compose ps

成功标准看两点:frontendapppostgresredisdocreader全部running,其中app状态列出现healthy才算真正就绪(它内部每 30 秒探测一次/health)。再补一条接口自检更稳:

# 直接探活后端接口 curl -f http://localhost:8080/health && echo OK

看到OK,浏览器打开http://localhost就是这个登录页:

按需叠加可选组件

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

# 例:同时启用知识图谱和对象存储 docker compose --profile neo4j --profile minio pull && docker compose --profile neo4j --profile minio up -d
Profile作用
full一次拉起全部组件
neo4j知识图谱,文档语义关联网络
minio对象存储,图片外链和多模态常用
langfuse链路追踪与 token 消耗统计
searxng自建网页搜索,供 Agent 联网用

踩坑速查

高频启动问题(点我展开)

Q: 报docker: command not foundA: 装 Docker 后重跑docker compose version复查。

Q: 报permission denied连不上 daemon?A:sudo usermod -aG docker $USER,然后重开终端。

Q: 80 端口被占用,前端起不来?A:.envFRONTEND_PORT改成8088,再docker compose up -d重建。

Q: app 容器反复重启?A:docker compose logs -f app定位;多数是DB_USER/DB_PASSWORD/DB_NAME和 postgres 容器对不上。

上线前过一遍安全清单

默认配置里不少密码是占位符,暴露到公网前务必逐项勾掉:

  • 改掉DB_PASSWORDREDIS_PASSWORD的示例值
  • 设置SYSTEM_AES_KEY(32 字节随机值),并离线妥善保管,丢了不可恢复
  • DISABLE_REGISTRATION=true,关闭公开注册
  • 给前端挂 HTTPS(反代 nginx/caddy 终止证书即可)
  • 确认备份方案可用,数据都在 Docker 卷里

数据库备份一条命令(用户名/库名按.env实际值替换):

# 导出数据库到当日日期命名的 SQL 文件 docker compose exec postgres pg_dump -U postgres -d WeKnora > weknora_$(date +%F).sql

顺手做两处调优:稳定后把LOG_LEVELdebug降到info减少日志噪音;机器余量大就把WEKNORA_ASYNQ_CORE_CONCURRENCY从默认 8 提到 16,批量导入文档明显变快。改完统一用docker compose up -d app重建生效。升级则走docker compose pull && docker compose up -d,注意先pullup,否则会复用旧镜像。更多问题参考 常见问题排查。

从资源自检、四步启动、按需叠加到这份安全清单走一遍,WeKnora 就能从「跑起来」稳定过渡到「长期跑」。下一步就是往知识库里灌第一批文档,然后开始提问。

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询