跨平台的进程管理与监控平台,适用于 Minecraft 服务端等长期运行的进程。
- 进程管理 - 启动、停止、重启服务,支持自动重启和优雅关闭命令
- 实时终端 - 通过 WebSocket + PTY 实现终端 attach,支持输入输出交互
- 日志管理 - 实时日志流、历史日志查看、自动截断
- 定时调度 - 基于 Cron 表达式的定时启动/停止/重启
- 用户认证 - JWT 认证,支持 Token 刷新与撤销
- 权限控制 - 管理员和普通用户角色,用户级服务访问权限
- 安全策略 - 可配置命令白名单和工作目录限制
- Web 管理界面 - 服务分组、标签筛选、拖拽排序
从 Releases 页面下载。
后端服务
# 1. 创建环境配置文件(参考下方"环境变量"章节)
# 2. 启动 API 服务
.\hypercraft-api.exe
# 3. 使用 CLI 工具
.\hypercraft-cli.exe list
.\hypercraft-cli.exe start <service-id>Web 管理界面
下载 web-standalone-windows.zip,解压后运行:
.\start.ps1
# 或
start.cmd默认运行在 http://localhost:3000。
# 添加执行权限
chmod +x hypercraft-api hypercraft-cli
# 启动 API 服务
./hypercraft-api
# 使用 CLI 工具
./hypercraft-cli list- Rust 1.75+
- Node.js 20+ & pnpm
cd backend
cp .env.example .env
# 编辑 .env 配置
cargo run -p hypercraft-apicd web
pnpm install
pnpm dev访问 http://localhost:3000。
# 设置 API 地址
export HC_API_BASE="http://127.0.0.1:8080"
# 服务管理
hypercraft-cli list # 列出所有服务
hypercraft-cli get <id> # 查看服务详情
hypercraft-cli start <id> # 启动服务
hypercraft-cli stop <id> # 停止服务
hypercraft-cli restart <id> # 重启服务
hypercraft-cli attach <id> # 附加到终端
hypercraft-cli logs <id> --follow # 实时日志
hypercraft-cli shell # 交互式命令行
# 定时调度
hypercraft-cli schedule get <id>
hypercraft-cli schedule set <id> --cron "0 0 8 * * *" --action start
hypercraft-cli schedule enable <id>
hypercraft-cli schedule disable <id>
hypercraft-cli schedule remove <id>
# 用户管理(管理员)
hypercraft-cli user list
hypercraft-cli user create -u <username> -p <password>
hypercraft-cli user grant <user-id> <service-id>
hypercraft-cli user revoke <user-id> <service-id>hypercraft/
├── backend/ # Rust 后端 (Cargo workspace)
│ ├── hypercraft-core/ # 核心库
│ │ ├── manager/ # 进程生命周期、attach、日志、调度
│ │ └── user/ # 用户认证、权限、JWT
│ ├── hypercraft-api/ # HTTP/WebSocket API (Axum)
│ └── hypercraft-cli/ # 命令行工具 (Clap)
└── web/ # Next.js 管理界面
├── app/ # 页面路由 (services, users, login, profile)
├── components/ # UI 组件
├── hooks/ # 自定义 Hooks (useTerminal, useXterm)
└── lib/ # API 客户端、认证上下文
| 变量 | 说明 | 默认值 |
|---|---|---|
HC_DATA_DIR |
数据存储目录 | ./data |
HC_BIND |
API 监听地址 | 127.0.0.1:8080 |
HC_DEV_TOKEN |
管理员开发令牌(>=32 字符) | - |
HC_JWT_SECRET |
JWT 签名密钥 | 运行时生成 |
HC_JWT_ISSUER |
JWT 签发者 | hypercraft-api |
HC_JWT_AUDIENCE |
JWT 受众 | hypercraft-clients |
HC_ALLOWED_COMMANDS |
命令白名单(逗号分隔) | * |
HC_ALLOWED_CWD_PREFIXES |
工作目录白名单(分号分隔) | * |
HC_CORS_ORIGINS |
CORS 允许的来源(逗号分隔) | * |
服务配置保存为 JSON 格式:
{
"id": "minecraft-server",
"name": "Minecraft Server",
"command": "java",
"args": ["-Xmx4G", "-jar", "server.jar", "nogui"],
"cwd": "/opt/minecraft",
"env": {
"JAVA_HOME": "/usr/lib/jvm/java-17"
},
"auto_start": false,
"auto_restart": true,
"shutdown_command": "stop",
"tags": ["game", "production"],
"schedule": {
"enabled": true,
"cron": "0 0 8 * * *",
"action": "start"
}
}当前端和后端部署在不同域名时:
后端配置
# backend/.env
HC_CORS_ORIGINS=https://panel.example.com前端配置
# web/.env
NEXT_PUBLIC_API_URL=https://api.example.comNginx 示例
# 后端
server {
listen 443 ssl;
server_name api.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
# 前端
server {
listen 443 ssl;
server_name panel.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}MIT


