MCSManager:Minecraft 游戏服务端和所有控制台程序的管理面板
MCSManager
MCSManager 面板(简称:MCSM 面板)是一款全中文,开源,分布式,开箱即用,支持 Minecraft 游戏服务端和所有控制台程序的管理面板。

Linux 安装
一行命令快速安装(适用于AMD64架构 Ubuntu/Centos/Debian/Archlinux)
wget -qO- https://gitee.com/mcsmanager/script/raw/master/setup_cn.sh | bash- 该脚本专为 AMD64 架构的 Ubuntu/Centos/Debian/Archlinux 设计。
- 用于在安装后启动服务。
systemctl start mcsm-{web,daemon} - 面板组件和运行时的目录:
/opt/mcsmanager/
启动面板
使用一键安装脚本后,才可以使用下列命令,如果是手动安装,则需要使用screen命令,在后面会进行说明。
# 先启动面板守护进程。# 这是用于进程控制,终端管理的服务进程。systemctl start mcsm-daemon.service# 再启动面板 Web 服务。# 这是用来实现支持网页访问和用户管理的服务。systemctl start mcsm-web.service
# 重启面板命令systemctl restart mcsm-daemon.servicesystemctl restart mcsm-web.service
# 停止面板命令systemctl stop mcsm-web.servicesystemctl stop mcsm-daemon.service面板 Web 服务是提供用户管理与网页访问功能的服务,守护进程是提供进程管理和容器管理的服务,两者缺一不可。如果某个功能不正常,可以只重启这一部分的服务来热修复问题。
手动安装面板并运行
# 切换到安装目录,没有此目录请执行 mkdir /opt/cd /opt/
# 下载运行环境wget https://nodejs.org/dist/v14.17.6/node-v14.17.6-linux-x64.tar.gz
# 解压文件tar -zxvf node-v14.17.6-linux-x64.tar.gz
# 链接程序到环境变量中ln -s /opt/node-v14.17.6-linux-x64/bin/node /usr/bin/nodeln -s /opt/node-v14.17.6-linux-x64/bin/npm /usr/bin/npm
#创建安装文件夹mkdir /opt/mcsmanager/cd /opt/mcsmanager/
# 下载McsManagerwget https://github.com/MCSManager/MCSManager/releases/latest/download/mcsmanager_linux_release.tar.gztar -zxf mcsmanager_linux_release.tar.gz
./install-dependency.sh
# 打开两个终端或者两个screen# 首先在一个screen中开启 daemon./start-daemon.sh
# 在第二个screen中代开web服务./start-web.sh
#通过http://localhost:23333/就可以访问web服务#通常,web应用程序会自动扫描并连接到本地守护进程。安装JAVA
# 如何获取JDK安装包?
进入JAVA官网,注册登录后下载
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
选择你需要的版本 在这里我们选择 Linux x64 Compressed Archive ,请根据自己的架构选择版本本文档创建时的版本: jdk-8u251-linux-x64.tar.gz请下载后自行上传到 root 目录或者 用户目录请注意!!!请根据自己下载的版本修改下面相关命令中的版本比如 8u251 这一段 请修改为自己上传的版本的数字修改的内容包括 解压文件 设置环境变量 软链接程序到环境变量中 这几项
# 切换到用户目录cd ~# 创建安装目录mkdir /usr/local/java/# 解压当前目录下的JDK压缩文件tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/java/# 设置环境变量(安装 VIM 输入 yum -y install vim)vim /etc/profile# 在末尾添加对应变量滚动光标到末尾 按下 键盘上的 INS 键,切换至插入模式输入这几串内容后 按下 Shift + ; 输入 wq 并回车保存
export JAVA_HOME=/usr/local/java/jdk1.8.0_251export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH
# 应用修改后的环境变量source /etc/profile# 软链接程序到环境变量中ln -s /usr/local/java/jdk1.8.0_251/bin/java /usr/bin/java# 测试是否安装正常,显示 java version "1.8.0_251" 则为正常java -version使用 Screen 保持后台运行
先Ctrl+C关闭面板,我们使用 screen 软件来让面板保持后台运行。
yum install screen # (Centos)apt install screen # (Ubuntu)
# 创建一个名为 daemon 的窗口screen -S daemon./start-daemon.sh
# 创建一个名为 mcsm 的窗口#首先在一个screen中开启 daemonscreen -S mcsm# 在第二个screen中打开web服务./start-web.sh直接断开终端连接即可,面板将保持后台运行。
若要重新控制,请输入命令即可:
screen -r mcsmscreen -r daemon请注意,上述步骤不会将面板组件注册到系统服务。您必须使用“屏幕”来管理它或手动注册系统服务。
Docker部署
创建一个文件夹/opt/docker-mcsm用于保存docker部署的配置文件
面板分为**网页前端(Web)**和守护进程后端(Daemon),所以需要先备好两个 Dockerfile 文件。
WEB
FROM node:14-slimARG INSTALL_PATH=/opt/docker-mcsmARG TZ=Asia/ShanghaiENV TZ=${TZ}RUN sed -i -E 's/http:\/\/deb.debian.org/http:\/\/mirrors.ustc.edu.cn/g' /etc/apt/sources.listRUN apt update && apt install -y gitRUN git clone --single-branch -b master --depth 1 https://gitee.com/MCSManager/MCSManager-Web-Production $INSTALL_PATH/releases/webRUN cd $INSTALL_PATH/releases/web && npm i --production --registry=https://registry.npmmirror.comWORKDIR $INSTALL_PATH/releases/webCMD node app.js复制并保存文件名为 dockerfile-web 的文件
Daemon
FROM node:14-slimARG INSTALL_PATH=/opt/docker-mcsmARG TZ=Asia/ShanghaiENV TZ=${TZ}RUN sed -i -E 's/http:\/\/deb.debian.org/http:\/\/mirrors.ustc.edu.cn/g' /etc/apt/sources.listRUN apt update && apt install -y gitRUN git clone --single-branch -b master --depth 1 https://gitee.com/MCSManager/MCSManager-Daemon-Production $INSTALL_PATH/releases/daemonRUN cd $INSTALL_PATH/releases/daemon && npm i --production --registry=https://registry.npmmirror.comWORKDIR $INSTALL_PATH/releases/daemonCMD node app.js复制并保存文件名为 dockerfile-daemon 的文件
docker-compose
version: "3"services: mcsm-web: container_name: mcsm-web build: context: . dockerfile: dockerfile-web args: INSTALL_PATH: ${INSTALL_PATH-/opt/docker-mcsm} TZ: ${TZ-Asia/Shanghai} network_mode: "host" restart: always environment: - PUID=0 - PGID=0 - UMASK=022 volumes: - ${INSTALL_PATH-/opt/docker-mcsm}/releases/web/data:${INSTALL_PATH-/opt/docker-mcsm}/releases/web/data - ${INSTALL_PATH-/opt/docker-mcsm}/releases/web/logs:${INSTALL_PATH-/opt/docker-mcsm}/releases/web/logs - ${INSTALL_PATH-/opt/docker-mcsm}/releases/daemon/data/Config:${INSTALL_PATH-/opt/docker-mcsm}/releases/daemon/data/Config:ro mcsm-daemon: container_name: mcsm-daemon build: context: . dockerfile: dockerfile-daemon args: INSTALL_PATH: ${INSTALL_PATH-/opt/docker-mcsm} TZ: ${TZ-Asia/Shanghai} network_mode: "host" restart: always environment: - PUID=0 - PGID=0 - UMASK=022 volumes: - ${INSTALL_PATH-/opt/docker-mcsm}/releases/daemon/data:${INSTALL_PATH-/opt/docker-mcsm}/releases/daemon/data - ${INSTALL_PATH-/opt/docker-mcsm}/releases/daemon/logs:${INSTALL_PATH-/opt/docker-mcsm}/releases/daemon/logs - /var/run/docker.sock:/var/run/docker.sock:ro复制并保存文件名为 docker-compose.yml 的文件
.env
INSTALL_PATH=/opt/docker-mcsmTZ=Asia/Shanghai安装
将四个文件放在之前创建的文件夹中,进入文件目录,运行以下命令进行部署
docker-compose up -d # 运行 web 和 daemon
docker-compose up -d mcsm-web # 仅运行 web
docker-compose up -d mcsm-daemon # 仅运行 daemon- 发布版中不携带 java,如需运行 java 程序请在
面板->环境镜像->环境镜像管理->新建镜像中自行构建- 实例设置中的
进程启动方式选择虚拟化容器
- 实例设置中的
- 关闭服务器请进入到 docker-compose.yml 文件目录运行
docker-compose stop- 运行
docker-compose down来移除容器
- 运行
更新容器
docker-compose exec mcsm-web bash -c "git pull && npm i --production --registry=https://registry.npmmirror.com" # 更新 web
docker-compose exec mcsm-daemon bash -c "git pull && npm i --production --registry=https://registry.npmmirror.com" # 更新 daemon
docker-compose restart端口开放
面板需要 23333(主功能) 端口与 20010 - 20200(FTP功能)端口区间。
如果你使用阿里云,腾讯云或者服务商,请进入控制台到防火墙安全组策略,放行以上端口。
如果依然无法访问,请关闭系统自带防火墙:
# 关闭防火墙,依次执行systemctl stop firewalld.serviceservice iptables stop其他太过复杂操作本教程不提供,请读者有想法的自己搜索。
现在,访问 http://你的ip<23333>23333>/ 即可进入面板。
- 默认账号:#master
- 默认密码: 123456
- 请及时修改密码。

游戏实例
游戏服务端(MC服务器)或脚本(Shell)都视作为一个 应用实例 由面板统一管理,如下图所示。

McsManager的 应用实例 支持多种类型的程序如JAVA、基岩版等,所以这里可以指定这个实例是什么类型,不同的选项会导致一些行为不一样,比如配置文件解析,命令执行方式等等。
守护进程
如果你在 Linux 下启动面板时,会启动两个服务,其中 daemon 就代表守护进程,它是一个类似于 被控端 的程序,由自带网页的控制中心来控制它们,从而实现多个物理主机互相连接。
所以守护进程就是类似于一个 被控端 的角色,你的 MC 服务器是在这个 被控端 上运行,而网页就是 控制中心 的角色。
下图表示了从网页上连接各个地方的 守护进程。

支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!


