
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/WeKnoraWeKnora 是一个开源 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 被占用改 8088STORAGE_TYPE保持 localOLLAMA_BASE_URL不用 Ollama 就留默认STORAGE_TYPE默认是local文件落在 Docker 卷里最省事有对象存储需求再换minio/s3。OLLAMA_BASE_URL默认指向宿主机的 Ollama不用的话留着也无害最多启动时告警一句。# 拉取镜像并后台启动核心服务 docker compose pull docker compose up -d仓库里还有一键脚本 启动脚本会顺带装 Ollama但手动走 docker compose 更可控推荐上面的路径。验证容器健康检查与网页响应判断起没起来只有一条硬标准docker compose ps里 app 显示 healthy。# 查看容器状态app 为 healthy 才算就绪 docker compose psWeKnora-postgres paradedb/paradedb healthy WeKnora-app wechatopenai/weknora-app healthy # ……略默认启动的核心五件套各就各位容器作用宿主端口frontendWeb 界面80appAPI 与业务逻辑8080postgresParadeDB 关系向量不对外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 部署跑起来之后最常见的抱怨是解析慢。按优先级动这三处模型别将就。回答质量九成取决于 LLM先把能力强的模型配上胜过调任何参数。调解析并发。WEKNORA_ASYNQ_CORE_CONCURRENCY是文档解析主链路的队列并发数它默认 8对单机偏保守不调的话批量导入会排队变慢机器有余量就提到 16体感立竿见影。降日志级别。LOG_LEVEL默认debug又吵又占盘稳定后改info配合LOG_PATH落盘方便事后排查。另外WEKNORA_MODEL_MAX_CONCURRENCY默认 32限制每个模型的后台并发遇到模型提供方 429 限流时往小调而不是往大调。# 改完 .env 后重建 app 容器让新值生效 docker compose up -d app改的是环境变量光重启进程不够必须重建容器才会读进新值。公网暴露前过一遍安全与备份清单默认配置里不少值是占位示例暴露到公网之前逐项核销DB_PASSWORD、REDIS_PASSWORD改成自己的值显式设置SYSTEM_AES_KEY用openssl rand -hex 16生成。它是 API Key 等敏感字段的落盘加密密钥丢了就解不开务必离线保管 ⚠️设DISABLE_REGISTRATIONtrue用户走管理员邀请而非公开注册给前端挂 HTTPS反代 nginx/caddy 终止证书即可确认备份链路可用。数据都在 Docker 卷里一条命令导出# 导出数据库备份 docker compose exec postgres pg_dump -U postgres -d WeKnora weknora_$(date %F).sql升级和部署走同样的两步注意先pull再up否则会复用旧镜像# 升级拉取与 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_PORT8088再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),仅供参考