npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mcever

v0.1.0

Published

⛏ MCever - Minecraft 开服器(容器化 CLI 工具)

Readme

Minecraft 开服器 - 需求规格说明书

项目代号:MCever 技术栈:Node.js + ink(TUI 终端端)+ React(Web 端) 参考产品:MCSManager、Crafty Controller、Multicraft、Pterodactyl Panel、AMP、Cosmos


一、项目概述

本项目旨在开发一款 Minecraft 开服器,面向个人服主和小团队,提供:

  • CLI 终端端(TUI):基于 ink 的命令行交互界面,适合运维和 SSH 远程管理
  • Web 管理端:基于 React 的可视化界面,适合日常管理

后端统一使用 Node.js,负责 Java 服务端进程管理、文件 IO、RCON 通信、定时任务、数据持久化等。


二、核心功能模块(需求点)

1. 服务端生命周期管理 🔑

| 需求点 | 说明 | 优先级 | 状态 | |---|---|---|---| | 多实例管理 | 同时管理多个 Minecraft 服务端实例 | P0 | ✅ | | 服务端类型 | Vanilla、Spigot、Paper、Purpur、Fabric、Forge、Sponge、Velocity、BungeeCord、Waterfall、Folia、NeoForge | P0 | ✅(itzg 镜像全支持) | | 版本选择 | 支持 1.7.10 ~ 1.21+ 所有版本 | P0 | ✅(itzg 镜像 VERSION 环境变量) | | 一键安装 | 选择类型 → 输入名称 → 选版本 → 设端口 → 自动部署 | P0 | ✅ | | JVM/启动参数 | 自定义 -Xms、-Xmx、JVM_OPTS 等 | P0 | ✅(通过 -e MEMORY / -e JVM_OPTS) | | 启动/停止/重启 | mcever start/stop/restart <name|id> | P0 | ✅ | | 删除实例 | mcever remove <name|id>,交互式确认是否删数据 | P0 | ✅ | | 实例列表 | mcever list 表格展示,含 ID/状态/名称/类型/端口/容器名 | P0 | ✅ | | 控制台实时输出 | 保留 ANSI 颜色高亮,支持搜索/过滤 | P0 | ⏳ | | 命令发送 | 在控制台输入游戏命令 | P0 | ⏳ | | EULA 自动同意 | 首次启动自动写入 eula=true | P0 | ✅(-e EULA=TRUE) |

2. 文件管理 📁

| 需求点 | 说明 | 优先级 | |---|---|---| | 文件浏览 | 服务端根目录树状结构浏览 | P0 | | 配置文件可视化编辑 | server.properties、spigot.yml、bukkit.yml、paper.yml、purpur.yml | P0 | | 玩家数据文件 | ops.json、whitelist.json、banned-players.json、banned-ips.json | P0 | | 协议文件 | eula.txt | P0 | | 文件 CRUD | 上传、下载、删除、重命名、创建文件夹 | P1 | | 编辑器 | 在线编辑 + 保存(带格式校验) | P0 | | 权限管理 | 文件读写权限检查 | P2 |

3. 世界管理 🌍

| 需求点 | 说明 | 优先级 | |---|---|---| | 世界列表 | overworld / nether / end 三个维度 | P1 | | 世界大小 | 显示占用空间 | P1 | | 世界重置 | 删除当前世界,下一次启动自动重新生成 | P2 | | 多世界支持 | 支持加载自定义世界文件夹 | P2 | | 世界导入/导出 | 上传 zip 还原 | P2 |

4. 玩家管理 👥

| 需求点 | 说明 | 优先级 | |---|---|---| | 在线玩家列表 | 基于 list 命令或 RCON 拉取 | P0 | | 白名单 | 添加/移除/启用/禁用/列表 | P0 | | OP 管理 | 提升/降级/列表 | P0 | | 玩家封禁 | ban / unban / banlist | P0 | | IP 封禁 | ban-ip / pardon-ip / banip-list | P0 | | 踢出玩家 | kick 命令 | P1 |

5. 插件 / 模组管理 🔌

| 需求点 | 说明 | 优先级 | |---|---|---| | 插件上传 | 上传 .jar 文件到 plugins/ 目录 | P1 | | 模组上传 | 上传 .jar 到 mods/ 目录(Forge/Fabric) | P1 | | 删除/启用/禁用 | 通过重命名或删除实现 | P1 | | 列表查看 | 文件名、大小、修改时间 | P1 | | 插件版本检查 | 检查服务端对应的插件版本(高级) | P3 |

6. 性能监控 📊

| 需求点 | 说明 | 优先级 | |---|---|---| | CPU 使用率 | Node.js 读取 /proc 或 os.cpus() | P1 | | 内存使用率 | 堆内存 / 非堆内存 | P1 | | TPS | Tick Per Second,通过 /tps 命令(Paper/Purpur)或 NMS | P1 | | MSPT | Milliseconds Per Tick | P1 | | 在线人数 | 实时统计 | P0 | | 历史性能曲线 | 折线图(Web 端) | P2 | | 进程状态 | PID、运行时长 | P1 |

7. 网络与连接配置 🌐

| 需求点 | 说明 | 优先级 | 状态 | |---|---|---|---| | 端口配置 | Java 25565 / 自定义,多实例自动分配不同端口 | P0 | ✅ | | RCON | 启用、端口、密码、远程命令发送 | P0 | ⏳ | | MOTD | 支持彩色代码 | P1 | ⏳ | | 正版验证 | online-mode=true/false | P0 | ⏳ | | 最大玩家数 | max-players | P0 | ⏳ | | 游戏规则 | 难度、PVP、白名单开关等 | P1 | ⏳ |

8. 计划任务(定时任务) ⏰

| 需求点 | 说明 | 优先级 | |---|---|---| | 定时重启 | cron 表达式或相对时间 | P1 | | 定时备份 | 按小时/天/周 | P1 | | 定时广播 | 自动执行 say 命令 | P2 | | 定时执行命令 | 自定义任意命令 | P2 |

9. 用户与权限系统 👤

| 需求点 | 说明 | 优先级 | |---|---|---| | 多用户系统 | 管理员 / 普通用户 | P1 | | 细粒度权限 | 控制哪个用户能管理哪个实例 | P2 | | 登录鉴权 | 本地账号(密码哈希) | P1 | | 登录鉴权 | OAuth(GitHub、Google,可选) | P3 |

10. 备份系统 💾

| 需求点 | 说明 | 优先级 | |---|---|---| | 手动备份 | zip/tar 打包整个服务端目录 | P0 | | 自动定时备份 | 按周期执行 | P1 | | 保留策略 | 保留最近 N 份,自动清理 | P1 | | 一键恢复 | 从备份还原到指定目录 | P0 | | 备份下载 | 下载到本地 | P1 |

11. 日志系统 📜

| 需求点 | 说明 | 优先级 | 状态 | |---|---|---|---| | 容器日志查看 | mcever logs <name|id> 查看最近 200 行 | P0 | ✅ | | 实时日志流 | CLI 端 stdout 流、Web 端 WebSocket 推送 | P0 | ⏳ | | 历史日志查看 | latest.log、logs/*.log.gz | P1 | ⏳ | | 日志搜索 | 关键字过滤 | P1 | ⏳ | | 日志级别着色 | INFO/WARN/ERROR 不同颜色 | P1 | ⏳ |

12. 系统设置 ⚙️

| 需求点 | 说明 | 优先级 | 状态 | |---|---|---|---| | Docker 环境检测 | 启动时自动检测 docker/podman,无则给出安装指引 | P0 | ✅ | | 孤儿资源清理 | 自动清理残留容器和数据库孤儿记录 | P0 | ✅ | | 端口冲突检测 | 多实例端口冲突时自动报错提示 | P0 | ✅ | | 命名灵活 | 支持实例名 / 容器名 / ID 三种方式操作 | P0 | ✅ | | Java 版本管理 | 1.8 / 11 / 16 / 17 / 21 自动检测 | P0 | ⏳ | | 主题/语言 | Web 端 UI 主题切换 | P2 | ⏳ | | Docker 支持 | 基于 itzg/minecraft-server 镜像的容器化部署 | P3 | ✅ |

13. 高级 / 增值功能 🔔

| 需求点 | 说明 | 优先级 | 状态 | |---|---|---|---| | 跨平台 | Windows / Linux / macOS | P0 | ✅(基于 Docker) | | 交互式菜单 | CLI 主菜单,选择操作避免背命令 | P0 | ✅ | | 守护进程 | 服务端崩溃自动重启(--restart unless-stopped) | P1 | ✅(Docker 自带) | | 远程管理 | REST API | P1 | ⏳ | | Webhook 通知 | Discord / Telegram / 邮件 | P2 | ⏳ | | 资源限制 | CPU 限额、内存上限 | P3 | ⏳ |


三、非功能性需求

| 需求点 | 说明 | |---|---| | 性能 | 控制台输出延迟 < 100ms;Web 端 UI 响应 < 300ms | | 安全 | 密码使用 bcrypt 哈希存储;RCON 密码加密存储 | | 稳定性 | 长时间运行不内存泄漏;崩溃后能自恢复 | | 国际化 | 中文 / 英文双语 | | 可扩展性 | 模块化设计,方便后续接入 Docker / K8s | | 可观测性 | 自身运行时也有日志输出(便于排查问题) |


四、技术架构

┌─────────────────────────────────────────────┐
│      React Web UI     /     ink TUI          │  ← 交互层
├─────────────────────────────────────────────┤
│   REST API (Express/Fastify) + WebSocket    │  ← 通信层
├─────────────────────────────────────────────┤
│   进程管理 / RCON / 文件 / 备份 / 调度       │  ← 核心服务层
├─────────────────────────────────────────────┤
│          SQLite (better-sqlite3)             │  ← 数据层
└─────────────────────────────────────────────┘

技术栈选型

| 模块 | 推荐库 | |---|---| | HTTP 服务 | Express 或 Fastify | | WebSocket | ws | | 进程管理 | Node.js child_process | | RCON 客户端 | rcon-client 或自实现(TCP + Source RCON 协议) | | 文件 IO | fs-extra + globby | | 备份压缩 | archiver(zip)/ tar | | 定时任务 | node-cron | | 数据存储 | better-sqlite3(轻量、无依赖) | | Web UI | React + Vite + Tailwind + shadcn/ui | | TUI | ink + ink-select-input + ink-text-input | | 鉴权 | jsonwebtoken + bcrypt | | 日志 | pino 或 winston |


五、MVP(最小可行产品)优先级

🎯 P0 - 必须有(首个可发布版本)

  1. 多实例创建 + 服务端下载 + 启动/停止/重启
  2. 实时控制台(Web 端 + TUI 端)
  3. EULA 自动同意
  4. 文件管理(重点:server.properties 可视化编辑)
  5. 玩家管理(白名单 / OP / 封禁)
  6. 备份与恢复
  7. 端口与 Java 版本配置

🎯 P1 - 第二阶段

  • 性能监控(CPU/内存/TPS/在线人数)
  • 计划任务(定时重启/备份)
  • 日志系统(历史日志查看、搜索)
  • 用户与权限系统
  • 插件/模组管理
  • 守护进程(崩溃自动重启)

🎯 P2 - 第三阶段

  • Webhook 通知
  • MOTD 编辑器
  • 备份保留策略
  • Docker 隔离
  • 国际化

🎯 P3 - 长期规划

  • OAuth 登录
  • 插件市场/版本检查
  • K8s 集成
  • 集群管理

六、数据模型(初步)

instances 实例表

  • id、 name、 type(paper/spigot/forge 等)、 version、path、port、rcon_port、rcon_password、jvm_args、java_path、status(stopped/starting/running/stopping)、 created_at、updated_at

users 用户表

  • id、 username、 password_hash、 role(admin/user)、 created_at

backups 备份表

  • id、 instance_id、 filename、 size、 created_at

scheduled_tasks 计划任务表

  • id、 instance_id、 cron、 command、 enabled

audit_logs 操作日志表(可选)

  • id、 user_id、 instance_id、 action、 created_at

七、目录结构(建议)

MCever2/
├── packages/
│   ├── core/             # 核心服务(进程、RCON、文件、备份、调度)
│   ├── cli/              # ink TUI 端
│   ├── web/              # React Web 端
│   └── shared/           # 共享类型与工具
├── server/               # 后端服务入口
├── data/                 # SQLite 数据库
├── instances/            # Minecraft 实例根目录(默认)
├── backups/              # 默认备份目录
├── package.json
├── 需求点.md             # 本文档
└── README.md

文档版本:v0.1 最后更新:2026-07-25 作者:调研输出 by Cline