节点服务器协调器
一个用于跨多个项目协调Node.js开发服务器的命令行工具。通过统一的界面,启动、停止和监控后端、前端、数据库以及其他基于Node.js的开发服务器。
🚀 功能特性
- 多项目支持 - 管理不同项目中的服务器
- 健康监测 - 实时状态检查与运行时间追踪
- 错误处理 - 启动失败检测及清晰错误信息显示
- 可扩展的 - 轻松配置新项目和服务器类型
- 跨平台 - 兼容Windows、macOS和Linux系统
📋 可用命令
start- 启动特定的项目服务器stop- 停止正在运行的服务器status- 获取包含运行时间的详细服务器状态list- 列出所有已配置的服务器start-all- 同时启动所有服务器stop-all- 停止所有正在运行的服务器
🛠️ 安装
npm install -g node-server-orchestrator或者直接使用:
npx node-server-orchestrator⚙️ 配置
在(指定位置)创建一个配置文件 ~/.config/node-server-orchestrator/config.json:
{
"projects": {
"my-backend": {
"name": "My Backend API",
"type": "backend",
"command": ["npm", "run", "dev"],
"cwd": "/path/to/my-project",
"port": 3000,
"healthPath": "/health",
"startupTimeout": 10000,
"description": "My project backend server"
},
"my-frontend": {
"name": "My Frontend App",
"type": "frontend",
"command": ["npm", "start"],
"cwd": "/path/to/my-project/frontend",
"port": 3001,
"healthPath": "/",
"startupTimeout": 15000,
"description": "My project frontend development server"
}
}
}🔧 使用方法
CLI 使用方法
# List all available servers
node-server-orchestrator list
# Start a specific server
node-server-orchestrator start example-backend
# Stop a specific server
node-server-orchestrator stop example-backend
# Check server status
node-server-orchestrator status example-backend
# Start all servers
node-server-orchestrator start-all
# Stop all servers
node-server-orchestrator stop-all
# Show help
node-server-orchestrator --help示例工作流程
- 列出可用服务器:
📋 Available Servers:
My Backend API (my-backend) - My project backend server
My Frontend App (my-frontend) - My project frontend development server- 启动服务器:
✅ My Backend API started successfully
📊 PID: 12345
🌐 Port: 3000
⏰ Started: 2:30:45 PM- 检查状态:
🟢 My Backend API is running
📊 PID: 12345
🌐 Port: 3000
⏰ Started: 2:30:45 PM
⏱️ Uptime: 5m 23s🎯 应用场景
开发工作流程
- 用一条命令启动所有项目服务器
- 在开发过程中监控服务器健康状况
- 在更改时自动重启服务器
CI/CD 集成
- 通过编程启动测试环境
- 在部署前验证服务器健康状况
- 管理多个微服务
🔌 API 参考
服务器配置
每种服务器配置均支持:
name易于人类阅读的服务器名称type服务器类型(后端、前端、数据库等)command启动服务器的命令数组cwd服务器的工作目录port健康检查的端口号healthPath用于健康检查的HTTP路径startupTimeout最大启动等待时间(毫秒)description服务器描述
健康检查协议
当服务器在指定端口和健康检查路径上返回HTTP 200/304响应时,即被视为处于健康状态。
🔒 安全特性
该命令行界面(CLI)工具包含全面的安全措施:
输入验证
- 服务器ID验证只允许使用字母数字字符、连字符和下划线
- 命令白名单仅限预先批准的命令(
npm,node,yarn,pnpm,bun) 可以被执行 - 端口验证端口号必须在1-65535之间
- 路径验证工作目录必须是绝对路径
- 超时限制启动超时限制为最多60秒
命令注入防护
- 外壳执行所有命令均以
shell: false防止命令注入 - 命令数组命令必须以数组形式提供,而非字符串
路径遍历防护
- 配置路径净化防止
../在配置文件中进行目录遍历 - 绝对路径所有工作目录必须为绝对路径
错误信息保护
- 错误净化(或错误处理/错误清理)错误消息中已对敏感路径和IP地址进行了隐去处理
- 信息有限错误信息仅提供必要信息
🚨 错误处理
MCP服务器为以下情况提供清晰的错误信息:
- 端口冲突 - 当服务器已经在运行时
- 创业失败 - 当服务器在超时时间内未能启动时
- 进程崩溃 - 当受管理的进程意外终止时
- 配置错误 - 无效的服务器配置
🤝 贡献(或“参与贡献”)
欢迎贡献!请随时提交拉取请求或针对错误和功能需求打开问题。
开发环境设置
git clone https://github.com/swong-fcsllc/node-server-orchestrator.git
cd node-server-orchestrator
npm install
npm run build
npm test📄 许可证
MIT 许可证 - 详见 LICENSE 文件。
