【知识库自托管 02】2026 实测:VPS 自托管 AnythingLLM 私有知识库——2GB 小鸡到 8GB 团队版配置与 HTTPS 部署
2026-08-16 · DevCraft Studio
实测对比云端模型与本地 Ollama 两种接法,给出 2C4G 到 4C16G 的 VPS 配置、Docker 部署、Caddy 反代与多工作区权限设置,手把手搭出可分享的私有文档问答后台。
自托管知识库 · 共 3 篇
延伸阅读
更多相关攻略推荐:如何给 VPS 厂商做"信用评估":跑路、超售与售后风险排查手册、【知识库自托管 01】2026 企业/个人私有文档 RAG 问答选型、【AI自托管 01】2026 隐私优先 AI 栈:数据不出 VPS 、【知识库自托管 03】2026 实测:搬瓦工/RackNerd 上自、2026 VPS 选购决策树与白皮书:一张图看懂怎么买。
为什么要在 VPS 上自托管 AnythingLLM
如果你手里有不少 PDF 合同、产品手册、内部 Wiki、技术文档,又不想把它们直接丢进 ChatGPT 这类第三方云服务,那么 AnythingLLM 是目前最省心的一站式自托管方案。它把文档上传、切分、向量化、RAG 问答、多用户工作区全部打包进一个 Web 后台,而且是开源免费的 MIT 协议。到 2026 年中,它的 GitHub 星标已经突破 6 万,社区非常活跃,文档和插件生态都很成熟。
所谓“私有知识库”,核心就是:你的原始文档、聊天记录、向量索引全部留在你自己的服务器上,除非你主动接入外部模型,否则数据不会外泄。对小企业、律师事务所、诊所、财务团队这种手握敏感资料的用户来说,这一点比“能聊”重要得多。相比 Dify 这种偏应用编排的平台,AnythingLLM 的强项就是“Chat with your docs”——上传即问,开箱即用,不需要写代码。
两种接法:云端模型 API 还是本地 Ollama
AnythingLLM 本身只负责文档和问答界面,真正“动脑子”的模型可以来自两个方向,这也是本文反复强调的两种接法:
- 云端模型 API:把 OpenAI、DeepSeek、Claude、Gemini 等的 API Key 填进去。VPS 只做上传、切分、向量检索和转发,模型推理在厂商服务器上跑。最省资源,2C4G 甚至 1C2G 都能带。
- 本地 Ollama 模型:在 VPS 上再装一个 Ollama,跑 Llama3、Qwen、DeepSeek 这类开源模型。推理全在本地,完全离线、零 API 费用,但非常吃内存,7B 小模型起步就要 16GB 内存。
简单说:怕麻烦、要最快出效果,选云端 API;怕数据出网、要长期零边际成本,选本地 Ollama。下面我们分别给配置和踩坑。
VPS 配置怎么选:从 2GB 小鸡到 8GB 团队版
这里一定要分两种情况,因为“AI 工具”不等于“必须 GPU”。只有跑本地模型才吃算力,接云端 API 时你烧的是 API 账单,不是 VPS 性能。
接云端模型 API 的配置
- 个人测试、自己玩:1 核 / 2GB / 20GB SSD 就能起来,这类配置在 racknerd、bandwagon、cloudcone 的特价年付里经常几十块钱就能拿下。
- 小团队 2-5 人共享:2 核 / 4GB / 40GB SSD,最均衡,推荐作为起步档。
- 文档量大、多人高频使用:4 核 / 8GB / 80GB SSD,向量索引和上传解析更从容。
注意:接云端 API 不需要 GPU,别被“AI”两个字忽悠去租贵价显卡机。colocrossing、hostdare、gigsgigscloud、lisahost 这些厂商的常规 KVM 机型就够用。
跑本地 Ollama 模型的配置
- AnythingLLM + 云端模型:2 核 4GB 就舒服。
- AnythingLLM + Ollama 7B 小模型:4 核 16GB 起步,这是本地推理的门槛线。
- 想跑更大的模型(如 14B/32B 或更高):建议上 vultr、contabo 的大内存机型,或者直接上带 GPU 的机器。
实测经验:别拿 1C1G 小鸡硬跑本地大模型。能启动不代表能用,能回答不代表体验好——CPU 跑 7B 生成速度可能慢到让你以为服务挂了。真正想本地丝滑,16GB 内存是底线。
部署前准备:选厂商与系统
本文以 Ubuntu 22.04 / 24.04 或 Debian 12 为例,这些系统在所有主流厂商都能一键装。先确保有 root 或 sudo 权限,SSH 能登进去,防火墙放通 22 端口。后面要开 80/443 给 HTTPS,记得在厂商后台的安全组里放行。
厂商选择上,预算优先看 racknerd、cloudcone、bandwagon、colocrossing 的年付特价;要稳定大内存选 contabo、vultr、hostdare;东南亚节点低延迟可以看 gigsgigscloud、lisahost。无论选谁,只要能装 Docker、给到上面说的配置,部署步骤完全一样。
先装 Docker 和 Compose 插件:
sudo apt update && sudo apt upgrade -y
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER装完退出重登,让 docker 组生效。验证一下:
docker version
docker compose versionDocker 一键部署 AnythingLLM
官方镜像叫 mintplexlabs/anythingllm,默认端口 3001。它内部用 Chromium 做文档解析,所以容器必须带 --cap-add SYS_ADMIN,少这一句就会崩溃循环。先建好持久化目录:
mkdir -p /opt/anythingllm
cd /opt/anythingllm
touch .env写一份 docker-compose.yml,把端口只绑到 127.0.0.1,先用本机访问,HTTPS 交给后面的 Caddy:
services:
anythingllm:
image: mintplexlabs/anythingllm:latest
container_name: anythingllm
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
cap_add:
- SYS_ADMIN
environment:
STORAGE_DIR: /app/server/storage
JWT_SECRET: "replace-with-a-long-random-string-at-least-32-chars"
PASSWORDMINCHAR: "10"
DISABLE_TELEMETRY: "true"
volumes:
- /opt/anythingllm:/app/server/storage
- /opt/anythingllm/.env:/app/server/.envJWT_SECRET 务必换成你自己的长随机串,比如用 openssl rand -hex 32 生成。然后启动:
docker compose up -d
docker compose ps看到 STATUS 是 Up 就成功了。此时用 http://服务器IP:3001 还访问不了(因为我们绑了 127.0.0.1),下一步装好 Caddy 才能从域名进。如果临时想本地验证,可以临时改成 3001:3001 并用 SSH 端口转发到本地浏览器。
接法一:云端模型 API(最快出效果)
这是最推荐新手走的路。打开浏览器访问后台后,跟着初始化向导走:
- LLM 提供商选 OpenAI / DeepSeek / Claude / Gemini,粘贴你的 API Key。
- Embedding 模型(向量化)用 AnythingLLM 自带的本地 CPU 嵌入器即可,免配置。
- 向量数据库默认 LanceDB,自带,无需额外安装。
然后点“新建工作区”,拖入你的 PDF、Word、CSV、TXT。它会自动切分、向量化、建索引。第一次上传大批量文档时,CPU 索引可能要几分钟,属正常。完成后直接对话提问即可。这条路径下,VPS 几乎不消耗算力,2C4G 足以服务一个小团队。
接法二:本地 Ollama(完全离线、零 API 费)
想要数据彻底不出网、长期零账单,就在同一台 VPS 上装 Ollama。先安装:
curl -fsSL https://ollama.com/install.sh | sh
systemctl status ollama拉取两个模型:一个聊天模型,一个向量化(embedding)模型。embedding 模型千万不能省,否则文档上传会“静默失败”,非常坑:
ollama pull llama3.2
ollama pull nomic-embed-text默认 Ollama 只监听 127.0.0.1,Docker 容器访问不到。要改成监听所有网卡:
sudo systemctl edit ollama.service在弹出的 override 里写入:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"保存后重载并确认监听 0.0.0.0:11434:
sudo systemctl daemon-reload
sudo systemctl restart ollama
sudo ss -tlnp | grep 11434最关键的坑:在 AnythingLLM 的容器里,localhost 指的是容器自己,不是宿主机。所以 Ollama 地址不能用 http://127.0.0.1:11434,而要用 http://host.docker.internal:11434。并且 docker run / compose 里要加一行 extra_hosts: - "host.docker.internal:host-gateway",否则这个域名解析不了。验证一下:
docker exec -it anythingllm curl http://host.docker.internal:11434能返回 Ollama 的 JSON 就通了。回到后台 LLM 提供商选 Ollama,Base URL 填 http://host.docker.internal:11434,Embedding 也选 Ollama 的 nomic-embed-text,保存即可。
用 Caddy 反代 + 自动 HTTPS
AnythingLLM 自己不处理 HTTPS,公网暴露必须套一层反向代理。Caddy 最省心,证书自动申请和续期。先加 DNS 的 A 记录,比如 ai.example.com 指向你的服务器 IP,再装 Caddy:
apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' > /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install -y caddy编辑 /etc/caddy/Caddyfile,写一行就够了:
ai.example.com {
reverse_proxy 127.0.0.1:3001
}Caddy 的 reverse_proxy 会自动带好 WebSocket 和必要的代理头。校验并重载:
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy现在访问 https://ai.example.com,Caddy 会自动从 Let us Encrypt 签发证书。整个链路是:用户 → 443(Caddy HTTPS) → 127.0.0.1:3001(AnythingLLM)。因为 3001 只绑本机,外界直接打 IP 是进不来的,安全很多。
多工作区与权限:团队版怎么管
AnythingLLM 的“工作区”是隔离单位:每个工作区有独立的文档池、向量索引、聊天历史和权限。A 工作区传的合同,B 工作区绝对看不到,这是硬隔离,不是软过滤。实际用法:
- HR 部:员工手册、薪酬政策工作区。
- 技术部:API 文档、部署指南工作区。
- 客服部:常见问题库工作区。
开启多人协作:后台 Settings → Multi-User Mode 打开。Docker 版支持三种角色——Admin(全权限)、Manager(可建工作区、邀请用户)、Default(只能访问被分配的工作区)。给不同部门成员分配不同工作区,实习生只给公开文档,核心资料限制在研发组,安全可控。
生产环境建议把默认 SQLite 换成 PostgreSQL,提升并发和备份能力;开启 HTTPS 防止中间人截获登录凭证;定期备份 /opt/anythingllm 存储目录和向量库。
实测体验与避坑清单
- 忘加 --cap-add SYS_ADMIN:容器起不来或不断重启,日志报 Chromium 权限错误。
- Ollama 填成 127.0.0.1:容器里 localhost 是容器自己,必须 host.docker.internal + extra_hosts。
- 没拉 embedding 模型:文档上传“成功”但问答答非所问,本质是没向量化。
- 内存不够跑本地模型:表现为卡死、无响应、OOM 被杀,降上下文到 4096、用 Q4 量化模型、或开 Swap 缓解。
- 端口直接暴露公网:务必用 127.0.0.1 绑定 + Caddy,并设强密码和 JWT_SECRET。
整体体验:接云端 API 的方案,一台 racknerd 或 bandwagon 的 2C4G 年付机就能让三五个人愉快地查合同、查手册;本地 Ollama 方案则适合对隐私和成本极度敏感的场景,但要准备好 16GB 内存起步。两种接法在同一份 docker-compose 上都能平滑切换,先 API 后补 Ollama 也完全没问题。