概述
AnythingLLM 是一个开源的本地 RAG(检索增强生成)平台。你可以把 PDF、Markdown、TXT 等文档丢进去,然后像聊天一样提问,AI 会基于你的文档内容回答。支持对接 Ollama 本地模型、OpenAI、Claude 等,也可以完全本地运行,数据不出你的服务器。
这篇教程教你用 Docker Compose 在一台 VPS 上搭建 AnythingLLM,5 分钟跑起来。
准备工作
你需要以下条件:
- 一台 Linux VPS(Ubuntu 22.04+ 或 Debian 12+)
- SSH 登录权限
- 至少 2GB 内存、20GB 磁盘
- Docker 和 Docker Compose 已安装
- 一个你想对接的 AI 模型(推荐用 Ollama 跑本地模型,免费)
如果你的 VPS 还没装 Docker,先跑这几行:
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
步骤
第一步:创建项目目录
mkdir -p ~/anythingllm && cd ~/anythingllm
第二步:写好 Docker Compose 文件
cat > docker-compose.yaml << 'EOF'
services:
anythingllm:
image: mintplexlabs/anythingllm:latest
container_name: anythingllm
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- ./anythingllm-data:/app/server/data
environment:
- STORAGE_PROVIDER=local
- AUTH_SECRET=a_random_secret_string_change_this
- LLM_PROVIDER=ollama
- EMBEDDING_ENGINE=llama-cpp
- OLLAMA_BASE_URL=http://host.docker.internal:11434
EOF
几个关键配置说明:
3001:3001:AnythingLLM 默认监听 3001 端口,你可以改成别的AUTH_SECRET:登录密码的加密密钥,随便写一串随机字符LLM_PROVIDER=ollama:使用 Ollama 作为 AI 模型后端OLLAMA_BASE_URL:Ollama 的地址。如果 AnythingLLM 和 Ollama 在同一台机器,用http://host.docker.internal:11434
第三步:确保 Ollama 已安装并运行
AnythingLLM 需要 Ollama 提供推理能力。如果你还没装 Ollama:
curl -fsSL https://ollama.com/install.sh | sh
# 拉一个中文能力好的模型
ollama pull qwen2.5:7b
确认 Ollama 在跑:
curl http://localhost:11434/api/tags | jq '.models[] | .name'
能看到 qwen2.5:7b 就说明没问题。
第四步:启动 AnythingLLM
cd ~/anythingllm
docker compose up -d
首次启动会拉镜像,稍等几十秒:
docker compose logs -f anythingllm
看到 Server ready 字样就说明启动成功了。按 Ctrl+C 退出日志。
第五步:创建第一个工作空间
打开浏览器访问 http://你的IP:3001。
第一次进来会让你创建一个管理员账号,填好用户名密码就行。
进入主界面后,点击左上角 Create Workspace,随便起个名字比如"我的知识库"。
进入工作空间后,找到 Documents 标签,点 Upload,选你电脑里的 PDF 或 TXT 文件上传。上传后 AnythingLLM 会自动分块、向量化、存储。
然后切换到 Chat 标签,输入问题,AI 会基于你上传的文档回答。
验证
# 1. 容器是否在运行
docker ps | grep anythingllm
# 2. 端口是否监听
curl -s -o /dev/null -w "%{http_code}" http://localhost:3001
# 3. 数据目录是否生成
ls ~/anythingllm/anythingllm-data/
第一行应该看到 anythingllm 容器状态是 Up,第二行输出 200,第三行能看到 vectors、workspaces、storages 等子目录。
常见问题
问:上传文档后一直卡在处理中怎么办?
通常是 Ollama 的 embedding 模型没装。在 Ollama 所在机器上运行:
ollama pull nomic-embed-text
然后在 AnythingLLM 的 workspace 设置里确认 embedding 模型选的是 nomic-embed-text。
问:能把 Ollama 换成 OpenAI 或 Claude 吗?
可以。编辑 docker-compose.yaml,把 LLM_PROVIDER 改成 openai 或 anthropic,再加上对应的 API 密钥环境变量就行:
environment:
- LLM_PROVIDER=openai
- OPENAI_API_KEY=sk-xxxxxxxx
- OPENAI_MODEL=gpt-4o-mini
问:数据存在哪里?备份方便吗?
所有数据都在 ~/anythingllm/anythingllm-data/ 目录里。直接把这个目录打包就是完整备份:
tar czf anythingllm-backup.tar.gz ~/anythingllm/anythingllm-data/
问:多个用户怎么管理?
AnythingLLM 支持多用户注册,管理员可以在 Settings 里开启注册权限,然后邀请其他人创建账号。高级版还支持角色权限控制。
问:内存不够 2GB 能跑吗?
最小配置建议 2GB 内存。如果只有 1GB,可以把 Ollama 的模型换成更小的(比如 phi3:mini),AnythingLLM 本身只占 200-300MB 内存。
AnythingLLM 是目前最简单的本地 RAG 方案,上传文档就能聊,不用写一行代码。你的服务器上有自己的文档库吗?想让它变成可对话的知识库吗?试试吧。