VPS初始化管理工具

一个基于SSH的自动化VPS初始化和管理工具,支持常见服务和CI/CD管道的设置。

  • by oxy-Op
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 oxy-op/devpilot

使用说明

MCP VPS初始化

用于自动VPS初始化和管理的模型上下文协议(MCP)服务器。此工具提供基于SSH的自动化,用于设置具有公共服务和CI/CD管道的新VPS实例。

特性

  • 🔐 SSH身份验证:支持密码和私钥身份验证
  • 🛠️ VPS初始化:Node.js、PM2、Rust、Nginx、Redis的自动设置
  • 🌐 Nginx配置:使用反向代理和SSL证书的域设置
  • 🚀 GitHub CI/CD:自动生成部署密钥和创建工作流
  • 📝 综合录井:基于Winston的结构化日志记录
  • 🔧 TypeScript:完全类型化,具有严格的TypeScript配置

安装

# Clone the repository
git clone <repository-url>
cd mcp-vps-initialize

# Install dependencies
npm install

# Build the project
npm run build

# Start the server
npm start

发展

# Run in development mode
npm run dev

# Lint code
npm run lint
npm run lint:fix

# Format code
npm run format
npm run format:check

MCP工具

1.SSH连接

使用密码或私钥身份验证通过SSH连接到VPS。

参数:

  • host (必填):VPS IP地址或主机名
  • username (必填):SSH用户名
  • port (可选):SSH端口(默认值:22)
  • password (可选):SSH密码
  • privateKeyPath (可选):私钥文件的路径
  • passphrase (可选):私钥密码

例子:

{
  "host": "192.168.1.100",
  "username": "root",
  "password": "your-password"
}

2.VPS初始化

使用系统更新和可选服务初始化新的VPS。

参数:

  • services (可选):指定要安装哪些服务的对象
    • nodejs (boolean):安装Node.js LTS
    • pm2 (boolean):安装PM2进程管理器
    • rust (boolean):安装Rust工具链
    • nginx (boolean):安装并配置Nginx
    • redis (boolean):安装并配置Redis

例子:

{
  "services": {
    "nodejs": true,
    "pm2": true,
    "nginx": true,
    "redis": false
  }
}

3.Nginx设置

使用域、反向代理和SSL证书配置Nginx。

参数:

  • domain (必填):网站的域名
  • port (必需):后端端口到代理请求
  • ssl (可选):使用Certbot启用SSL(默认值:true)

例子:

{
  "domain": "example.com",
  "port": 3000,
  "ssl": true
}

4.GitHub CI/CD设置

使用部署密钥和自动化工作流设置GitHub CI/CD。

参数:

  • repoUrl (必填):GitHub存储库URL
  • deployPath (必需):服务器上的部署路径

例子:

{
  "repoUrl": "https://github.com/username/repo.git",
  "deployPath": "/opt/deployments/myapp"
}

5.执行命令

在连接的VPS上执行任意命令。

参数:

  • command (必填):执行命令

例子:

{
  "command": "systemctl status nginx"
}

工作流程

基本VPS设置

  1. 连接到VPS:

    {
      "tool": "ssh_connect",
      "args": {
        "host": "your-vps-ip",
        "username": "root",
        "password": "your-password"
      }
    }
    
  2. 初始化VPS:

    {
      "tool": "vps_initialize",
      "args": {
        "services": {
          "nodejs": true,
          "pm2": true,
          "nginx": true
        }
      }
    }
    
  3. 安装Nginx:

    {
      "tool": "nginx_setup",
      "args": {
        "domain": "yourdomain.com",
        "port": 3000,
        "ssl": true
      }
    }
    
  4. 安装CI/CD:

    {
      "tool": "github_cicd_setup",
      "args": {
        "repoUrl": "https://github.com/username/repo.git",
        "deployPath": "/opt/deployments/myapp"
      }
    }
    

GitHub CI/CD说明

运行后 github_cicd_setup 工具,您将收到:

  1. 部署密钥:添加到GitHub存储库的部署密钥
  2. GitHub秘密:添加到存储库的Actions secrets
  3. 工作流文件:添加到 .github/workflows/deploy.yml

生成的工作流将:

  • 触发主/主分支
  • 运行测试(如果可用)
  • 构建应用程序(如果存在构建脚本)
  • 自动部署到您的VPS

安全功能

  • 防火墙配置:具有安全默认值的自动UFW设置
  • SSL证书:自动生成Let’s Encrypt证书
  • SSH密钥管理:安全地生成部署密钥
  • 进程隔离:可选部署用户创建

日志记录

日志将写入:

  • logs/combined.log:所有日志级别
  • logs/error.log:仅错误日志
  • 控制台:带颜色的格式化输出

日志级别: error, warn, info, debug

配置

服务器可以通过环境变量进行配置:

  • LOG_LEVEL:设置日志记录级别(默认值:“info”)
  • PORT:服务器端口(如果独立运行)

故障排除

常见问题

  1. SSH连接失败

    • 验证IP地址和凭据
    • 检查防火墙设置
    • 确保SSH服务正在运行
  2. SSL证书问题

    • 验证域DNS指向服务器
    • 检查防火墙是否允许HTTP/HTTPS
    • 确保电子邮件对Let's Encrypt有效
  3. 服务安装失败

    • 检查系统更新状态
    • 验证互联网连接
    • 查看错误日志

调试模式

启用调试日志记录:

LOG_LEVEL=debug npm start

需求

  • Node.js 18+
  • 新的Ubuntu/Debian虚拟专用服务器
  • 域名(用于SSL设置)
  • GitHub存储库(用于CI/CD)

许可证

MIT许可证-有关详细信息,请参阅许可证文件。