Dokploy部署管理服务器

Dokploy MCP Server是一个功能强大的模型上下文协议服务器,用于管理Dokploy部署,支持项目、应用、数据库、域名和备份管理。

  • by huuthangntk
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 huuthangntk/dokploy-mcp

使用说明

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令牌

  1. 登录到您的Dokploy控制面板
  2. 导航至设置 → API令牌
  3. 生成一个新的令牌
  4. 复制并安全保存它

🚦 使用方法

启动服务器

# 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-reference API参考

提示

  • 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

  1. 将你的代码推送到GitHub
  2. 访问 smithery.ai/new 翻译为中文是:“smithery.ai的新页面”或“smithery.ai的新项目/功能”。不过,具体翻译可能需要根据该网站的实际内容和上下文来确定最准确的表述。在这里,我给出了一个较为通用的翻译
  3. 连接您的存储库
  4. 配置您的Dokploy凭据
  5. 部署!

部署到您自己的基础设施上

# Build the project
bun run build

# Run the server
PORT=3000 node dist/index.js

🤝 贡献(或:参与贡献)

欢迎投稿!请按照以下步骤操作:

  1. 为仓库创建分支(或:为仓库进行叉操作)
  2. 创建一个特性分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推送至分支(git push origin feature/amazing-feature)
  5. 提交一个拉取请求

📝 许可证

这个项目采用MIT许可证授权——详见 许可证 文件中详细说明。

🙏 致谢

📞 支持

🗺️ 路线图

  • [ ] 添加对 Docker Compose 部署的支持
  • [ ] 实现实时部署进度跟踪
  • [ ] 添加指标和分析集成
  • [ ] 支持自定义构建脚本
  • [ ] 支持多区域部署
  • [ ] 高级监控和警报
  • [ ] 与CI/CD流水线集成
  • [ ] 支持用于自动化部署的Webhook

📊 统计数据


由Dokploy社区用心打造

⬆ 返回顶部