BDS-Guard  -  基岩版BDS Web控制台

LSE BDS-Guard - 基岩版BDS Web控制台 v1.0.1

请登录后获取
版权类型
原创
版权链接
#
语言支持
中文(简体)
适配版本(基岩)
  1. 最新版本

BDS Guard​

轻量级 BDS 守护程序 · 单文件运行 · 无需额外依赖 基于 Node.js 构建

功能特色

1. 崩溃自动重启 监听进程异常退出,自动拉起服务器。支持卡死检测与崩溃频率限制,防止无限重启。

2. Web 控制台 内置浏览器面板,实时查看服务器日志,一键启动、停止、重启,支持明暗主题切换。

3. 远程执行命令 在 Web 面板或任意客户端直接向服务器控制台发送指令,无需远程桌面。

4. HTTP 接口 提供 REST API,可通过脚本、机器人或第三方工具远程控制服务器与查询状态。

源码/构建 : https://github.com/chuxiao624/BDS-Guard

仅支持 Windows(使用 PowerShell 采集进程指标)。

image-1.webp


image.webpimage-1.webp​

---
## 快速开始
1. 下载程序 放到任意目录 并修改配置文件
2. 双击 `BDS-Guard.exe` 文件 进行启动
3. 浏览器打开 `http://127.0.0.1:8080`。

配置文件​

JSON:
{
  "bdsPath": "C:/Users/ChuXiao/Desktop/bds26.10/bedrock_server_mod.exe", // `bedrock_server.exe` 或者 bedrock_server_mod.exe 的绝对路径
  "host": "127.0.0.1", // HTTP 监听地址,公网访问填 `0.0.0.0`(务必设 `token`)
  "port": 8080, // HTTP 端口
  "token": "YOUR_TOKEN_HERE", // API token(脚本/curl 用 Bearer 或 `?token=`),空表示不启用
  "auth": {
    "username": "admin", // 浏览器登录账号密码 直接设置为 auth : null 表示不启用
    "password": "123456789"
  },
  "autoRestart": true,  // 进程异常退出时自动重启
  "hangDetection": false, // 长时间无 stdout(输出) 时强杀重启
  "hangTimeoutSec": 300, // 卡死判定阈值(秒)
  "restartDelayMs": 3000, // 重启前的等待时间
  "crashLimit": {
    "count": 5, // 滚动窗口内崩溃次数达到上限就停止自动重启
    "windowMs": 3000 // 内存日志环形缓冲条数
  },
  "logBufferLines": 1000 // 启动后多少毫秒还活着就视为 `running`
}

[MD] ## 开发者接口 ### 登录认证 两种鉴权可以独立启用,也可以同时启用: - **`auth`(账号密码)**:浏览器场景。访问主页未登录时跳转 `/login.html`,登录成功设置 HttpOnly cookie,30 天有效。重启 manager 后 session 会清空(需重新登录)。 - **`token`(API token)**:脚本/curl 场景。每次请求带 `Authorization: Bearer <token>`,WebSocket 用 `ws://host:port/?token=xxx`。 公网部署务必至少启用其中一个(推荐两个都开),并搭配 HTTPS 反代(cookie 在 HTTP 下会被嗅探)。 ```json // config.json 启用账号密码登录 { "auth": { "username": "admin", "password": "改成一个长一点的密码" } } ``` 生成强 token: ```PowerShell [System.BitConverter]::ToString((1..24 | ForEach-Object {Get-Random -Maximum 256})).Replace('-', '').ToLower() ``` --- ### HTTP API `/api/auth-info`、`/api/login`、`/api/logout` 始终开放;其它 `/api/*` 在 `auth` 或 `token` 启用时需要凭证(cookie 或 Bearer 任一)。 #### `GET /api/state` `state` 取值:`stopped` / `starting` / `running` / `stopping` / `restarting`。 #### `GET /api/auth-info` 返回 `{ hasAuth, hasToken }`,无需鉴权(前端用来决定显示登录页或提示)。 #### `POST /api/login` 请求体 `{ username, password }`。成功 200 + 设 cookie;账密错误 401;未配置 auth 返回 503。 #### `POST /api/logout` 销毁当前 session,清除 cookie。 #### `GET /api/logs` 返回内存中保留的最近若干条日志,每条 `{time, level, msg}`,`level` 是 `INFO|WARN|OK|ERROR|CMD`。 #### `POST /api/command` 向 BDS stdin 写入一行命令。 ```json { "cmd": "say hello" } ``` 返回 `{ "ok": true|false }`。`ok=false` 通常是 BDS 未运行或 stdin 已关闭。 #### `POST /api/start` 启动 BDS。已在运行返回 `{ ok: false }`。 #### `POST /api/stop` 向 BDS 发 `stop` 命令做优雅停止,最多等 10s,超时强杀。会清掉所有自动重启计划。 #### `POST /api/restart` 等价于 stop 再 start,期间状态为 `restarting`。 #### `PATCH /api/config` 更新可变配置,会持久化到 `config.json`。允许的字段: ```json { "autoRestart": true, "hangDetection": false, "hangTimeoutSec": 300, "restartDelayMs": 3000 } ``` 返回 `{ ok: true, config: { /* 更新后的公开配置 */ } }`。 ####WebSocket 连接 `ws://<host>:<port>/`(鉴权时加 `?token=<token>`),server 推送消息: | `type` | 载荷 | 时机 | |---|---|---| | `init` | `{ state, config, logs }` | 连上来的第一帧,含完整状态和历史日志 | | `log` | `{ entry: {time, level, msg} }` | 每行日志 | | `state` | `{ state: <state-object> }` | 进程状态变化 | | `players` | `{ players: string[] }` | 玩家进出 | | `crash` | `{ crash: {time, exitCode, signal} }` | 异常退出 | | `stats` | `{ stats: {cpu, memory, cores} }` | 每 2s 一次,`cpu` 是百分比,`memory` 是字节 | --- [/MD]
作者
ChuXiao
价格
1.00金粒
下载
22
查看
440
首次发布
最后更新

评分

0.00 星 0 次评分

ChuXiao 的其他资源

后退
顶部 底部