MCSManager/README-traditional.md
2018-07-03 21:13:04 +08:00

9.8 KiB
Raw Blame History

logo.png doc_logo.png

Status Status Status Status Status

簡單,易用,多實例,羽量級的 Minecraft Server 控制台

中文簡體 | 中文繁體


歡迎使用

軟體截圖 注意: 因為不定時更換原因,目前截圖不一定最新。


快速擴展

我們用最簡單上手的方式,來構建整個應用程式,絕大部分的開發者可以輕而易舉的進行修改,以及依照協議開發使用。你會發現,這可能是一非常適合你的 Minecraft 伺服器管理工具,支援絕大部分的主流服務端。

並且,我們將盡可能的降低擴展的學習成本來幫助你更好的擴展與自訂,讓一個完全屬於你的Minecraft伺服器管理器出現。


運行環境

  • 我們的部署簡單至極,在Master分支下,我們的設計是下載即可運行,不需要編譯與任何配置,除了安裝一個環境。

  • Node.js >= 8.0

  • 下載鏡像網站: https://npm.taobao.org/mirrors/node/v8.0.0/


演示環境

  • 地址: https://link.suwings.top/
  • 帳號: public 密碼: 123456
  • 帳號: public2 密碼: 1234567
  • 帳號: #master 密碼: <暫不開放>

僅僅開放普通帳號給予演示,管理帳號不開放,想瞭解更多,請下載體驗。


運行在 Windows

方法一 (僅限中文簡體)

下載並正確安裝 Node 環境:

下載原始程式碼並解壓: https://github.com/Suwings/MCSManager/archive/master.zip

進入程式原始程式碼目錄,並且在目前的目錄打開命令控制台

執行命令 npm install --production

執行命令 node app.jsnpm start

方法二 (包含簡體/繁體版本)

可能因為某些原因,您可能並不願意安裝這些運行環境,於是我們給予了一種綠色打包的運行環境,下載即可直接使用。

下載直接運行:

https://pan.baidu.com/s/1bpbB8Az (中文簡體/繁體中文版本 下載地址)

注意: 百度網盤提供的下載是打包集成好的,小版本更新我們不會打包,也就是意味著,這裡不能即時跟隨最新版本。


運行在 Linux

  • 相對而言,這可能更加簡單。保證您的 node 版本正確與 git 工具可行下,安裝與運行易如反掌。
git clone https://github.com/Suwings/MCSManager.git
cd MCSManager
npm install --production
node app.js #或 npm start

如果您還是無法運行,請 按一下這裡


Wiki

我們有些常見問題與細節上的問題,已經把它們都整合在 Wiki 裡面。

歡迎你閱讀 Wiki 與提出建議。


專案目錄結構

注意: 並不是所有目錄的檔我們都建議你進行更改!

目錄名 詳情/解釋
property.js 控制台設定檔
core/logo.txt 控制台輸出 logo 文字
public/ 前端所有代碼,資原始目錄,前後端分離,使用 ws 和 ajax 通訊
public/login/ 純 UI 邏輯登陸頁面
public/template/ 前端業務範本,每個範本擁有著一個生命週期,開始與結束。
public/onlinefs_public/ 檔線上管理模組前端所有代碼
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 請求業務邏輯層(可二次擴展)
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)

流覽器相容性

  • ECMAScript 5 標準
  • IE 10+ Chrome Firefox Safari Opera 等現代主流流覽器

例外: 檔線上管理介面需要 IE 11+


設定檔

我們的設定檔是程式目錄下的 property.js 檔,它會在你第一次運行的時候,自動生成。

注意!原舊版本的 McserverConfig.json 文件完全棄用。

現在,所有配置將全部歸納於此檔。

此檔不會與 github 版本衝突,更新時也不會自動覆蓋


自訂設計

如果你是內部使用或學習用途,你可以對前端以及後端進行任何修改,包括版權聲明。

注意!當你進行版本更新的時候,可能會覆蓋掉你的自訂修改部分。

當然,並不是所有檔都需要覆蓋一遍,也不一定非得使用新版本。


FTP 服務

FTP 模組採用被動傳輸模式,傳輸命令預設使用 10022(可更改) 埠;

傳輸資料需要一個埠段,預設是 20010 - 20100

為確保 FTP 服務正常使用,請配置好您的防火牆設置,對這些埠範圍進行開放。

當然,我們提供了線上檔管理功能,您大可不必完全使用 FTP。


反向代理 與 SSL

儘管預設沒有 Https ,您可能在公共網路下不太放心,但是我們不傳遞明文的密碼,可以保證你的帳號的密碼是難以洩露的。

具體密碼傳遞過程可參考 按一下這裡跳轉

Property 文件

反向代理之前,你可以但不是必須閱讀 property.js 文件

裡面有各類的設置,包括 gzip壓縮埠和ip綁定等等。

實現 HTTPS 與 WSS

打開前端 URL 定位文件 public/common/URL.js, 將 http 與 ws 改成 https 與 wss

可保證前端所有請求均為 https 和 wss

此檔不會與 github 版本衝突,更新時也不會覆蓋,請放心修改。

反向代理

後端請通過反向代理完成,或自行修改 Express 初始化 App。

注意: Nginx 反向代理注意 | Apache 反向代理注意


虛擬化

注意 這是一個羽量級的管理面板,沒有集成虛擬化容器,請注意提供陌生人服務端的風險。

但是你可以實現一個整體的虛擬化容器,以保證你的宿主機安全。

另外,在伺服器啟動時也有 自訂啟動命令(可禁止) 功能,這可以讓你啟動伺服器時不止是運行 java 相關命令,甚至可以運行命令腳本,對此你可以嘗試更多的技巧組合,實現你的需求,列如,啟動伺服器時順便啟動一個腳本來做某些事情。

整體的虛擬化

儘管我們沒有為每一個實例伺服器都創建一個虛擬化容器,但是你可以為整個控制台套一個整體上的虛擬化容器。

更多資訊可參考 Wiki


許可權系統

尤其注意的是,為了更加簡化面板許可權系統,我們只分為兩種帳號;

管理帳號 凡是以 # 字元開頭的使用者,均為管理帳號,列如 #master #admin #test

普通帳號 不以 # 字元開頭的使用者,列如 test usernameww xxx

普通帳號能夠管理的伺服器只能由管理帳號來進行設定,管理帳號可以管理任何伺服器,並且能管理所有用戶。

具體使用,我想你只需要運行就知道,設計的十分簡單。


問題報告

歡迎各位發現任何 BUG 及時回饋給我,必當及時修復


協議與版權

程式是基於 GNU Affero General Public License v3.0 開放原始程式碼的自由軟體。

你可以遵照 AGPLv3 協議來修改和重新發佈這一程式。

或者,在學習或私自 (內部) 使用時,在不公開發佈的原則下,可以無視這個協議和版權,因為這本身並不能束縛你,並且我們歡迎這樣做。