使用说明
Dokploy MCP 服务器
一个强大的MCP服务器,用于管理Dokploy部署
特点/功能 • 安装 • 用法 • API 参考 • 做出贡献
🚀 概述
Dokploy MCP 服务器 是一个全面的模型上下文协议(MCP)服务器,提供与……的无缝集成 Dokploy(注:这是一个专有名词或特定项目/产品的名称,直接翻译可能无实际意义,故保留原样) - 作为Netlify、Vercel和Heroku的开源替代方案。该服务器使AI助手和应用程序能够通过标准化接口与Dokploy的强大部署平台进行交互。
什么是Dokploy?
Dokploy 是一个免费的、可自托管的平台即服务(PaaS),它简化了应用程序的部署和管理。它提供:
- 基于Docker的部署
- 支持多种框架和语言
- 自动SSL证书
- 数据库管理
- 域名配置
- 还有很多更多!
✨ 特点/功能
🗂️ 项目管理
- 创建、列出和删除项目
- 按项目组织应用程序
- 管理项目级别的配置
📦 应用部署
- 从Git仓库(如GitHub、GitLab等)部署应用程序
- 对Docker和Docker Compose的支持
- 启动、停止和重新启动应用程序
- 实时部署状态
- 更新环境变量
- 应用程序监控和健康检查
🗄️ 数据库管理
- 支持多种数据库类型:
- PostgreSQL(注:这是一个专有名词,通常直接以其英文原名作为中文翻译,表示一种开源的关系型数据库管理系统)
- MySQL(注:MySQL是一个关系型数据库管理系统,直接翻译为“MySQL”即可,无需额外解释其含义,因为这是业界通用的名称)
- MongoDB(蒙哥达数据库)
- Redis
- MariaDB(玛利亚数据库)
- 创建和管理数据库
- 连接字符串管理
🌐 域名与SSL管理
- 为应用程序添加自定义域名
- 通过Let's Encrypt自动配置SSL证书
- 域名验证与配置
💾 备份与恢复
- 创建手动和计划备份
- 列出可用的备份
- 从备份中恢复数据库
- 灾难恢复支持
📊 监控与日志
- 实时应用程序日志
- 应用程序状态监控
- 性能指标
- 错误追踪
📚 文档资源
- 内置文档访问功能
- 快速入门指南
- API 参考文档
- 最佳实践
🤖 交互式提示
- 引导式部署工作流
- 数据库设置协助
- 故障排除助手
📋 前提条件
- Dokploy 实例一个正在运行的Dokploy实例(自托管或云端)
- API令牌来自您Dokploy仪表板的身份验证令牌
- Node.js版本18或更高版本
- 面包 (可选):为了更快地管理软件包
🔧 安装
快速入门Smithery
# Install via Smithery
npx create-smithery dokploy-mcp
cd dokploy-mcp
手动安装
# Clone the repository
git clone https://github.com/huuthangntk/dokploy-mcp.git
cd dokploy-mcp
# Install dependencies (with bun)
bun install
# Or with npm
npm install
⚙️ 配置
创建配置文件或设置环境变量:
# smithery.yaml
dokployUrl: "https://dok.bish.one" # Your Dokploy instance URL
apiToken: "your-api-token-here" # Your Dokploy API token
debug: false # Enable debug logging
获取您的API令牌
- 登录到您的Dokploy控制面板
- 导航至设置 → API令牌
- 生成一个新的令牌
- 复制并安全保存它
🚦 使用方法
启动服务器
# Development mode
bun run dev
# Or with npm
npm run dev
服务器将在 http://localhost:3000 默认情况下。
示例操作
部署应用程序
// 1. Create a project
await createProject({
name: "my-awesome-project",
description: "My first Dokploy project"
})
// 2. Create an application
await createApplication({
projectId: "project-id",
name: "my-app",
appType: "github",
repository: "https://github.com/username/repo",
branch: "main"
})
// 3. Deploy the application
await deployApplication({
applicationId: "app-id"
})
管理数据库
// Create a PostgreSQL database
await createDatabase({
projectId: "project-id",
name: "my-database",
type: "postgres",
username: "admin",
password: "secure-password"
})
// Create a backup
await createBackup({
databaseId: "database-id"
})
监控应用程序
// Get application status
await getApplicationStatus({
applicationId: "app-id"
})
// View recent logs
await getLogs({
applicationId: "app-id",
lines: 100
})
根据提供的信息,翻译目标语言为中文,且“API”一词需保留为英文。因此,原文内容“📖 API Reference”的译文为:“📖 API 参考手册”
工具
项目管理
| 工具 | 描述 | 参数 |
|---|---|---|
list-projects |
列出所有项目 | 无 |
create-project |
创建一个新项目 | name, description |
delete-project |
删除一个项目 | projectId |
应用程序管理
| 工具 | 描述 | 参数 |
|---|---|---|
list-applications |
列出所有应用程序 | projectId |
create-application |
创建一个新的应用程序 | projectId, name, appType, repository等。 |
deploy-application |
部署应用程序 | applicationId |
start-application |
提交申请 | applicationId |
stop-application |
停止应用程序 | applicationId |
restart-application |
重启应用程序 | applicationId |
delete-application |
删除应用程序 | applicationId |
get-logs |
获取应用程序日志 | applicationId, lines |
get-application-status |
查询申请状态 | applicationId |
update-env-vars |
更新环境变量 | applicationId, env |
数据库管理
| 工具 | 描述 | 参数 |
|---|---|---|
create-database |
创建一个新的数据库 | projectId, name, type等。 |
list-databases |
列出所有数据库 | projectId |
域名管理
| 工具 | 描述 | 参数 |
|---|---|---|
add-domain |
添加自定义域名 | applicationId, domain, enableSSL |
list-domains |
列出所有域名 | applicationId |
备份与恢复
| 工具 | 描述 | 参数 |
|---|---|---|
create-backup 创建数据库备份 databaseId |
||
list-backups |
列出所有备份 | databaseId |
restore-backup |
从备份中恢复 | backupId |
资源
dokploy://docs- 完整的Dokploy文档dokploy://quickstart- 快速入门指南dokploy://api-referenceAPI参考
提示
deploy-app- 指导应用程序部署setup-database- 指导数据库设置troubleshoot- 应用程序故障排除助手
🔐 安全
- API令牌请安全地存储您的API令牌。切勿将其提交到版本控制系统中。
- HTTPS在生产环境中始终使用HTTPS进行部署
- 环境变量对敏感数据使用环境变量
- 访问控制在您的Dokploy实例中配置适当的访问控制
🛠️ 开发
项目结构
dokploy-mcp/
├── src/
│ └── index.ts # Main server implementation
├── package.json # Project dependencies
├── smithery.yaml # Runtime configuration
├── README.md # This file
└── .gitignore # Git ignore rules
为生产构建(或:生产环境构建)
# Build the server
bun run build
# Or with npm
npm run build
测试
# Run the development server
bun run dev
# Test with curl
curl -X POST "http://127.0.0.1:3000/mcp?dokployUrl=https://dok.bish.one&apiToken=your-token" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{"tools":{}},"clientInfo":{"name":"test-client","version":"1.0.0"}}}'
🚢 部署
部署到Smithery
- 将你的代码推送到GitHub
- 访问 smithery.ai/new 翻译为中文是:“smithery.ai的新页面”或“smithery.ai的新项目/功能”。不过,具体翻译可能需要根据该网站的实际内容和上下文来确定最准确的表述。在这里,我给出了一个较为通用的翻译
- 连接您的存储库
- 配置您的Dokploy凭据
- 部署!
部署到您自己的基础设施上
# Build the project
bun run build
# Run the server
PORT=3000 node dist/index.js
🤝 贡献(或:参与贡献)
欢迎投稿!请按照以下步骤操作:
- 为仓库创建分支(或:为仓库进行叉操作)
- 创建一个特性分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推送至分支(
git push origin feature/amazing-feature) - 提交一个拉取请求
📝 许可证
这个项目采用MIT许可证授权——详见 许可证 文件中详细说明。
🙏 致谢
- Dokploy(注:此词可能为特定领域或项目中的专有名词,直接翻译为“多克普洛伊”可能无法准确传达其含义,需根据具体上下文确定准确翻译) - 令人惊叹的PaaS平台
- Smithery(此处根据上下文可能译为“锻造厂”或“冶炼厂”,但直接翻译为“史密斯厂”或保持原音译“史密斯里”也是可行的,具体取决于语境和专业需求) - MCP服务器托管和注册
- 模型上下文协议 - 使这一切成为可能的协议
- Anthropic(公司名,可译为“安萨提克”或根据具体语境保留原名) - 为了制定MCP标准
📞 支持
- 文档: docs.dokploy.com 翻译为中文可以是“dokploy 的文档网站”。不过,具体翻译可能还需要根据该网站的实际内容和用途进行微调,但基本意思是指向该域名下的文档相关部分或网站
- 问题: GitHub Issues(GitHub问题)
- 讨论: GitHub 讨论区
- **Dokploy Discord(直译为“Dokploy 和 Discord”,若需更自然的表达,可根据上下文调整为“Dokploy 在 Discord 上”或“Dokploy 与 Discord”等)**加入Dokploy社区
- Smithery Discord(可译为“Smithery的Discord服务器”或根据上下文简化为“Smithery的Discord”,具体翻译取决于语境和用途): discord.gg/Afd38S5p9A(该网址为Discord服务器链接,直接翻译为中文不改变其形式,意为“Discord服务器链接:Afd38S5p9A”)
🗺️ 路线图
- [ ] 添加对 Docker Compose 部署的支持
- [ ] 实现实时部署进度跟踪
- [ ] 添加指标和分析集成
- [ ] 支持自定义构建脚本
- [ ] 支持多区域部署
- [ ] 高级监控和警报
- [ ] 与CI/CD流水线集成
- [ ] 支持用于自动化部署的Webhook
📊 统计数据
由Dokploy社区用心打造
