Merge branch 'master' into develop

This commit is contained in:
suwings 2018-06-02 09:58:27 +08:00
commit 9e2c9690b0
6 changed files with 78 additions and 20 deletions

16
.travis.yml Normal file
View File

@ -0,0 +1,16 @@
language: node_js
node_js:
- "6.0"
- "7.0"
- "8.0"
- "9.0"
- "10.0"
sudo: true
cache:
directories:
- node_modules
before_script:
- npm install
branches:
only:
- master

View File

@ -1,6 +1,14 @@
<p><h1><img src="http://39.108.57.206/public/MCSM_LOGO_1.png" />Minecraft Server Manager</h1></p>
![logo.png](http://39.108.57.206/public/MCSM_LOGO_1.png)
![doc_logo.png](/public/common/doc_logo.png)
[![Status](https://img.shields.io/badge/npm-v4.16.3-blue.svg)](https://www.npmjs.com/)
[![Status](https://img.shields.io/badge/node-v8.0-blue.svg)](https://nodejs.org/en/download/)
[![Status](https://img.shields.io/badge/Linux-passing-brightgreen.svg)](https://github.com/Suwings/MCSManager)
[![Status](https://travis-ci.org/Suwings/MCSManager.svg?branch=master)](https://travis-ci.org/Suwings/MCSManager)
[![Status](https://img.shields.io/badge/License-AGPLv3-red.svg)](https://github.com/Suwings/MCSManager)
- 简单,易用,多实例,轻量级的 Minecraft Server 控制面板
简单,易用,多实例,轻量级的 Minecraft Server 控制面板
<br />
@ -76,6 +84,9 @@ cd MCSManager
npm install --production
node app.js #或 npm start
```
> 如果您还是无法运行,请 [单击这里](https://github.com/Suwings/MCSManager/wiki/Linux-%E4%B8%8B%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8%E8%AF%A6%E8%A7%A3)
<br />
安装常见问题
@ -89,20 +100,29 @@ node app.js #或 npm start
<br />
Wiki
---------
我们有些常见问题与细节上的问题,已经把它们都整合在 `Wiki` 里面。
欢迎你阅读 [Wiki](https://github.com/Suwings/MCSManager/wiki) 与提出建议。
<br />
项目目录结构
-----------
**注意:** 并不是所有目录的文件我们都建议你进行更改!
| 目录名 | 详情/解释 |
| ------------------------ | --------------------------------------------------------------------------------------------- |
| **property.js**                   |控制面板内部深度配置|
| **property.js** |控制面板配置文件|
| **core/logo.txt**               |控制台输出 logo 文字|
| **public/**                     |前端所有代码,资源目录,前后端分离,使用 ws 或 ajax 通讯|
| **public/** |前端所有代码,资源目录,前后端分离,使用 ws 和 ajax 通讯|
| **public/login/**               |纯 UI 逻辑登陆页面|
| **public/template/**             |前端业务模板,每个模板拥有着一个生命周期,开始与结束。|
| **public/onlinefs_public/**      |文件在线管理模块前端所有代码|
| **public/common/js/meum.js**    |左侧菜单列表|
| **server/server_core**          |Minecraft 服务端核心目录包括服务端文件配置Mod以及插件|
| **public/common/js/meum.js** |控制面板左侧菜单列表|
| **public/common/js/login.js** |通用登录流程逻辑,可重复利用在各类 HTML 登录模板|
| **server/server_core**           |Minecraft 服务端核心目录包括服务端文件配置Mod以及插件|
| **server/x.json**               |Minecraft 服务器面板配置文件|
| **users/x.json**               |控制面板用户配置文件|
| **route/**                     |控制器HTTP 请求业务逻辑层(可二次扩展)|
@ -162,27 +182,31 @@ FTP 模块采用被动传输模式,传输命令默认使用 `10021`(可更改)
<br />
反向代理
反向代理 与 SSL
-----------
反向代理之前,请仔细阅读 `property.js` 文件
里面有各类的设置,包括 gzip压缩端口和ip绑定等等请务必查看
尽管默认没有 Https ,您可能在公共网络下不太放心,但是我们不传递明文的密码,可以保证你的账号的密码是难以泄露的
具体密码传递过程可参考 [单击这里跳转](https://github.com/Suwings/MCSManager/wiki/%E7%99%BB%E5%BD%95%E5%AF%86%E7%A0%81%E4%BC%A0%E9%80%92%E8%BF%87%E7%A8%8B%E5%9B%BE)
<br />
**Property 文件**
反向代理之前,你可以但不是必须阅读 `property.js` 文件
> 里面有各类的设置,包括 gzip压缩端口和ip绑定等等。
**实现 HTTPS 与 WSS**
SSL
-----------
打开前端 URL 定位文件 `public/common/URL.js`, 将 http 与 ws 改成 https 与 wss
可保证前端所有请求均为 https 和 wss
> 此文件不会与 github 版本冲突,更新时也不会覆盖,请放心修改。
即可保证前端所有请求均为 Https 和 Wss
**反向代理**
后端请通过反向代理完成,或自行修改 Express 初始化 App。
- 相关 Issues: [SSL 服务](https://github.com/Suwings/MCSManager/issues/25) | [Nginx 反向代理](https://github.com/Suwings/MCSManager/issues/22)
**注意:** [Nginx 反向代理注意](https://github.com/Suwings/MCSManager/issues/22) | [Apache 反向代理注意](https://github.com/Suwings/MCSManager/issues/34)
<br />
@ -194,6 +218,13 @@ SSL
另外,在服务器启动时也有 `自定义启动命令(可禁止)` 功能,这可以让你启动服务器时不止是运行 java 相关命令,甚至可以运行命令脚本,对此你可以尝试更多的技巧组合,实现你的需求,列如,启动服务器时顺便启动一个脚本来做某些事情。
**整体的虚拟化**
尽管我们没有为每一个实例服务器都创建一个虚拟化容器,但是你可以为整个控制面板套一个整体上的虚拟化容器。
> 更多信息可参考 [Wiki](https://github.com/Suwings/MCSManager/wiki/Linux-Docker-%E6%95%B4%E4%BD%93%E5%8C%96%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88)
<br />

16
app.js
View File

@ -1,14 +1,23 @@
//运行时环境检测
try {
let versionNum = parseInt(process.version.replace(/v/igm, "").split(".")[0]);
if (versionNum < 8) {
console.log("[ ERROR ] 您的 Node 运行环境版本似乎低于我们要求的版本.");
console.log("[ ERROR ] 可能会出现未知异常,请立即更新 Node 版本 (>=8.0.0)");
if (versionNum < 7) {
console.log("[ WARN ] 您的 Node 运行环境版本似乎低于我们要求的版本.");
console.log("[ WARN ] 可能会出现未知情况,建议您更新 Node 版本 (>=7.0.0)");
}
} catch (err) {
//忽略任何版本检测导致的错误
}
//测试
setTimeout(() => {
let arg2 = process.argv[2] || '';
if (arg2 == '--test') {
MCSERVER.infoLog("Test", "测试过程结束 | 退出...");
process.exit(0);
}
}, 10000);
const fs = require('fs');
const fsex = require('fs-extra');
@ -244,6 +253,7 @@ app.use('/fs', require('./onlinefs/controller/function'));
if (MCSERVER.localProperty.ftp_is_allow)
require('./ftpd/index'); //执行ftp逻辑
});

View File

@ -5,7 +5,7 @@ const os = require("os");
//这样, 用户截图时, 可以知道具体的版本
//请用户尽可能的不要修改本文件任何代码,因为每一次版本更新时,必定会冲突
const oversion = "release_8.3.4.0"; //前端
const tversion = "release_8.3.4.0"; //后端
const tversion = "release_8.3.4.1"; //后端
let info = [os.type(), os.arch(), os.hostname(), os.release()].join(" ");

View File

@ -42,9 +42,10 @@
"url": "https://github.com/Suwings/MCSManager"
},
"scripts": {
"start": "node app.js"
"start": "node app.js",
"test": "node app.js --test"
},
"engines": {
"node": ">=8.0"
}
}
}

BIN
public/common/doc_logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB