MCSManager/README.md
2018-04-13 10:06:27 +08:00

161 lines
6.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p><h1><img src="http://39.108.57.206/public/MCSM_LOGO_1.png" />Minecraft Server Manager</h1></p>
- 简单,易用,多实例,轻量级的 Minecraft Server 控制面板
<br />
欢迎使用
-----------
![软件截图](http://39.108.57.206/public/MCSM_A.png)
**注意:** 因为不定时更换原因,目前截图不一定最新。
<br />
快速扩展
-----------
我们用最简单上手的方式,来构建整个应用程序,绝大部分的开发者可以轻而易举的进行修改,以及依照协议开发使用。你会发现,这可能是一非常适合你的 `Minecraft` 服务器管理工具,支持绝大部分的主流服务端。
并且,我们将尽可能的降低扩展的学习成本来帮助你更好的扩展与自定义,让一个完全属于你的`Minecraft`服务器管理器出现。
<br />
运行环境
-----------
- `Node.js` >= 8.0
- `镜像`: [https://npm.taobao.org/mirrors/node/v8.0.0/](https://npm.taobao.org/mirrors/node/v8.0.0/)
<br />
运行在 Windows 平台
-----------
**方法一**
下载并正确安装 `Node` 环境:
下载源代码并解压: [https://github.com/Suwings/MCSManager/archive/master.zip](Master.zip)
确认您的 `JRE``JDK` 安装并且可以运行
进入程序源代码目录,并且在当前目录打开命令控制台
执行命令 `npm install --production`
执行命令 `node app.js``npm start`
**方法二**
介于某些原因,您可能并不愿意安装这些运行环境,于是我们给予了一种绿色打包的运行环境,下载即可直接使用
下载直接双击运行: https://pan.baidu.com/s/1bpbB8Az (下载地址)
**注意:** 百度网盘提供的下载是打包集成好的,小版本更新我们不会打包,也就是意味着,这里不能实时跟随最新版本。
<br />
运行在 Linux 平台
-----------
- 相对而言,这可能更加简单
```bash
git clone https://github.com/Suwings/MCSManager.git
cd mcsmanager
npm install --production
node app.js #或 npm start
```
<br />
项目目录结构
-----------
**注意:** 并不是所有目录的文件我们都建议你进行更改!
| 目录名 | 详情/解释 |
| ------------------------ | --------------------------------------------------------------------------------------------- |
| **property.js**                   |控制面板内部深度配置|
| **core/logo.txt**               |控制台输出 logo 文字|
| **public/**                     |前端所有代码,资源目录,前后端分离,使用 ws 或 ajax 通讯|
| **public/login/**               |纯 UI 逻辑登陆页面|
| **public/template/**             |前端业务模板,每个模板拥有着一个生命周期,开始与结束。|
| **public/onlinefs_public/**      |文件在线管理模块前端所有代码|
| **public/common/js/meum.js**    |左侧菜单列表|
| **server/server_core**          |Minecraft 服务端核心目录包括服务端文件配置Mod以及插件|
| **server/x.json**               |Minecraft 服务器面板配置文件|
| **users/x.json**               |控制面板用户配置文件|
| **route/**                     |控制器HTTP 请求业务逻辑层(可二次扩展)|
| **route/websocket/**            |控制器Webscoket 请求业务逻辑层(可二次扩展)|
| **core/Process/**               |Minecraft Server 类实现|
| **core/User/**                   |User 类实现|
| **core/DataModel.js**            |数据持久化模型,几乎是所有的配置的 I/O 模型|
| **model/**                     |模型层,用于提供控制器与服务端,用户操作,也提供设计模式模型|
| **helper/**                     |业务逻辑辅助层,用于辅助和重复利用业务逻辑|
| **ftpd/**                       |FTP 独立模块,其中 ftpserver.js 已经实现了抽象 ftpServerInterface 接口|
| **onlinefs/**                    |文件管理独立模块 ([Suwings/IndependentFileManager](https://github.com/Suwings/IndependentFileManager))|
<br />
浏览器兼容性
-----------
- `ECMAScript 5` 标准
- `IE 10+` `Chrome` `Firefox` `Safari` `Opera` 等现代主流浏览器
**例外:** 文件在线管理界面需要 `IE 11+`
<br />
自定义设计
-----------
如果你是内部使用或学习用途,你可以对前端以及后端进行任何修改,包括版权声明。
<br />
反向代理
-----------
反向代理之前,请仔细阅读 `property.js` 内部文件(开关 gzip之类的设置。
并且从软件控制面板中设置您的端口(默认 23333。以及反向代理需要对 Webscoket 提供配置项。
<br />
虚拟化
-----------
**注意** 这是一个轻量级的管理面板,没有集成虚拟化容器,请注意提供陌生人服务端的风险。
但是你可以实现一个整体的虚拟化容器,以保证你的宿主机安全。
另外,在服务器启动时也有 `自定义启动命令(可禁止)` 功能,这可以让你启动服务器时不止是运行 java 相关命令,甚至可以运行命令脚本,对此你可以尝试更多的技巧组合,实现你的需求,列如,启动服务器时顺便启动一个脚本来做某些事情。
<br />
权限系统
-----------
尤其注意的是,为了更加简化面板权限系统,我们只分为两种账号;
`管理账号` 凡是以 # 字符开头的用户,均为管理账号,列如 `#master` `#admin` `#test`
`普通账号` 不以 # 字符开头的用户,列如 `test` `usernameww` `xxx`
普通账号能够管理的服务器只能由管理账号来进行设定,管理账号可以管理任何服务器,并且能管理所有用户。
具体使用,我想你只需要运行就知道,设计的十分简单。
<br />
问题报告
-----------
欢迎各位发现任何 BUG 及时反馈给我,必当及时修复
<br />
开源协议与版权
-----------
程序是基于 [GNU Affero General Public License v3.0](./LICENSE "GNU Affero General Public License v3.0") 开放源代码的自由软件。
你可以遵照 AGPLv3 协议来修改和重新发布这一程序。
或者,在学习或私自 (内部) 使用时,在不公开发布的原则下,可以无视这个**协议和版权**,因为这本身并不能束缚你,但是我们欢迎这样做。
<br />