Summary
逐步指南,介绍如何在任何 Linux 服务器上使用 Docker Compose 部署 AnythingMCP,并通过 Caddy 反向代理实现自动 SSL。
先决条件
在开始之前,请确保你的服务器具备以下条件:
- Docker 和 Docker Compose 已安装
- 端口 80 和 443 已开放(如果使用 HTTPS)
- 指向你服务器的域名(可选,SSL 所需)
克隆并运行设置
git clone https://github.com/HelpCode-ai/anythingmcp.git
cd anythingmcp
bash setup.sh
交互式向导将引导你完成以下步骤:
- 部署模式 — 选择 Docker(推荐)
- 域名和端口 — 输入你的域名以通过 Caddy 自动启用 HTTPS
- MCP 认证 — OAuth 2.0、API 密钥或两者
- 电子邮件 (SMTP) — 可选,用于验证和密码重置
- Redis — 可选,用于速率限制和缓存
所有密钥(JWT、加密密钥、数据库密码)将自动生成。
setup.sh 的作用
该脚本处理完整的部署流程:
- 生成带有安全随机密钥的
.env - 创建用于自动获取 Let's Encrypt SSL 的
Caddyfile(当提供域名时) - 可选地通过
docker-compose.override.yml添加 Redis - 运行
docker compose up -d --build启动所有服务
该应用程序作为一个单一容器运行,包含 NestJS 后端(端口 4000)和 Next.js 前端(端口 3000),以及 PostgreSQL 17。
使用 Caddy 的 HTTPS
当你在设置过程中输入真实域名时,Caddy 将自动配置:
- 应用程序端口仅绑定到
127.0.0.1(不公开暴露) - Caddy 处理所有在端口 80 和 443 上的流量
- SSL 证书由 Let's Encrypt 提供和续订
无需手动管理证书。
验证部署
检查所有容器是否正在运行:
docker compose ps
验证后端健康状况:
curl http://localhost:4000/health
打开仪表板:
- 使用 Caddy:
https://yourdomain.com - 不使用 Caddy:
http://your-server-ip:3000
第一个注册的用户将成为管理员。
更新 AnythingMCP
git pull
docker compose up -d --build
数据库迁移将在启动时自动运行。
故障排除
端口冲突
sudo lsof -i :80
sudo lsof -i :443
停止冲突服务或禁用 Caddy 以直接在端口 3000/4000 上访问应用程序。
数据库问题
如果你在 .env 中更改了凭据,请重置数据库卷:
docker compose down -v
docker compose up -d
检查日志
docker compose logs -f # 所有服务
docker compose logs -f app # 仅应用程序
docker compose logs -f caddy # 仅 Caddy
Caddy 证书问题
确保你的域名 A 记录指向服务器,并且端口 80/443 可访问以进行 ACME 挑战。
这份指南对你有帮助吗?