お世話になっております。サイオステクノロジー武井です。
今回はマイクラサーバーをGUIで管理するCrafty Controllerについて書きます。
Crafty Controllerとは?
マイクラことMinecraftは、マイクラサーバーを構築し、ネットワークを通じてそのワールドを共有することができます。同じワールドを共有すると、友達と協力して建築物を作ったり、友達を◯したりすることができます。
しかしながらマイクラサーバーの管理は容易ではありません。マイクラサーバーは基本クラサバ構成で、クライアントであるMinecraftが、サーバーであるマイクラサーバーと通信し合いながら動きます。マイクラサーバーは設定ファイルの変更やMOD(拡張機能みたいなもの)の追加は特別なGUIは設けられておらず、直接設定ファイルを編集したり、サーバーにMODをアップロードしたり、プロセスの再起動が必要になります。でもこれは、Linuxに関する相応の知識がないとむずいです。
そこで、Crafty Controllerです。これはマイクラサーバーのプロセスをGUIで管理するOSSです。設定ファイルの編集、ファイルのアップロード、プロセスの再起動など全てGUIでできます。他にもCPUやメモリリソースなどの管理、ユーザーの管理(BANなど)もできます。
アーキテクチャとしては以下のとおりです。Crafty Controllerを起動するとプロセスが起動します。これはHTTPで待ち受けるプロセスです。いわゆるWebアプリです。サーバー管理者はブラウザを通して、このCrafty Controllerにアクセスをして、Minecraftサーバーを起動・停止・再起動、設定ファイルの変更などを行います。ポート番号を変えれば複数のMinecraftサーバーを起動することが可能です。プレイヤーは起動したMinecraftサーバーにアクセスして遊びます。
Crafty Controllerを構築できる技術あればGUIなくても、マイクラサーバー管理できるよねと言う感じなのですが、モチベーションとしては私の息子がマイクラサーバーを使いたいと言い出して、でもLibuxのコマンドを使って管理するのはいきなり敷居が高すぎるのでこういうものを用意した次第です。
ちなみにこのサーバーはAzure上で動いています。Ubuntu動く仮想マシンであればAWSとかGCPとかの他のクラウドでもOKのはずです。
Crafty Controllerのインストール
では早速Crafty Controllerのインストール手順を見てみましょう。基本的には以下のインストール手順に従っています。
https://docs.craftycontrol.com/pages/getting-started/installation/linux/
またJavaがインストールされていることが前提となります。
Crafty Controller本体のインストール
gitでリポジトリをcloneしてインストールスクリプトを起動して、以下の通りウィザードに従います。
# git clone https://gitlab.com/crafty-controller/crafty-installer-4.0.git
# cd crafty-installer-4.0
# ./install_crafty.sh
[+] Info:- Linux Check Success
[+] Info:- Python Version Check - 3.12
We detected your os is: ubuntu - Version: 24.04
Install ubuntu_24_04.sh requirements? - ['y', 'n']: y ← yを入力してエンター
[+] Info:- Crafty's Default install directory is set to: /var/opt/minecraft/crafty
Install Crafty to this directory? /var/opt/minecraft/crafty - ['y', 'n']: y ← yを入力してエンター
[+] Info:- Choose your destiny:
[+] Info:- Crafty comes in different branches:
[+] Info:- Master - Kinda Stable, a few bugs present
[+] Info:- Dev - Highly Unstable, full of bugs and new features
Which branch of Crafty would you like to run? - ['master', 'dev']: master ← masterを入力してエンター
[+] Info:- Making start and update scripts for you
Would you like to make a service file for Crafty? - ['y', 'n']: y ← yを入力してエンター
[+] Info:- Cleaning up temp dir
[+] Info:- Congrats! Crafty is now installed!
[+] Info:- We created a user called 'crafty' for you to run crafty as. (DO NOT RUN CRAFTY WITH ROOT OR SUDO) Switch to crafty user with 'sudo su crafty -'
[+] Info:- Your install is located here: /var/opt/minecraft/crafty
[+] Info:- You can run crafty by running /var/opt/minecraft/crafty/run_crafty.sh
[+] Info:- You can update crafty by running /var/opt/minecraft/crafty/update_crafty.sh
[+] Info:- A service unit file has been saved in /etc/systemd/system/crafty.service
[+] Info:- run this command to enable crafty as a service- 'sudo systemctl enable crafty.service'
[+] Info:- run this command to start the crafty service- 'sudo systemctl start crafty.service'
Crafty Controllerのサービス登録
自動起動するようサービス登録します。
# systemctl enable crafty.service
# systemctl start crafty.service
初回ログイン
以下のURLにアクセスする(httpsであることに注意)。
初回のログイン情報は以下のパスに記載しています。ログイン後パスワードを変更してください。
/var/opt/minecraft/crafty/crafty-4/app/config/default-creds.txt
言語の変更
画面上の表示言語を日本語にします。画面右上のユーザーのアイコンをクリックして(①)、「Account Settings」をクリックします(②)。「User Language」を選択して、「ja_JP」を選択します(③)。最後に画面下部にある「Save」をクリックします。
サーバーの追加
では、マイクラサーバーを追加してみましょう。
まず、画面左部のメニューから「サーバー」→「新しいサーバーを作成」の順にクリックします。
以下のように設定して、最後に「サーバを作成」をクリックする。
- サーバーの種類: Minecraft Servers
- サーバーを選択: 任意(vanillaやforge等お好きなものを)
- サーバーバージョン: 任意
- サーバー名: 任意
- 最小メモリ使用量: 1GB
- 最大メモリ使用量: サーバーリソースが許すだけ
- サーバーポート: 基本は25565(複数立てる場合は他のサーバーと重複がないようにする)
「サーバー一覧」から先程作成したサーバーをクリックします。
ログにエラーがなければ、「起動」をクリックします。
EULAの同意画面が出るので、「Yes」をクリックします。これでサーバーの作成は完了です。
SSL化
一応デフォルトの状態でもSSLは有効になっているのですが、オレオレ証明書です。ApacheやNginx等でSSLの終端を行う方法もありますが、SSLの終端だけであればCaddyというのを使うとサクッと設定できます。しかもLet’s Encryptにネイティブに対応しています。
Caddyを導入すると以下のような感じになります。Caddyがリバースプロキシの働きをして、SSLの終端を行い、Crafty Controllerにアクセスします。
ここで図中ではCaddyからCrafty ControllerへのアクセスがHTTPSになっています。通常であればリバースプロキシなどでSSLの終端を行った後はそのバックエンドサーバーとのやり取りはHTTPになりましが、Crafty ControllerはデフォルトでHTTPSであり、HTTP化する方法があるのかもしれませんが、まぁ、今回はあまり設定変更などの手間はかけずサクッとやりたかったので、SSL終端後のバックエンドサーバーへのアクセスもそのままHTTPSとしています。この場合バックエンドサーバー側でもSSLの終端を行うため負荷がかかりますが、今回は個人用途なので、OKとしています。
ACMEのプロトコルを通じてLet’s Encryptにアクセスして証明書を自動取得・更新をします。
導入手順は以下のとおりです。Ubuntuを想定しています。
まず以下のコマンドを実行してCaddyをインストールします。
# apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
# curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
# curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
# chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
# chmod o+r /etc/apt/sources.list.d/caddy-stable.list
# apt update
# apt install caddy
次に設定ファイル/etc/caddy/Caddyfileを以下のように定義します。FQDNは、minecraft.example.comを想定しています。
minecraft.example.com {
reverse_proxy https://localhost:8443 {
transport http {
tls_insecure_skip_verify
}
}
}
Caddyを再起動します。これで完了です。
# systemctl restart caddyまとめ
みなさん、これで簡単にマイクラサーバーの管理をして、みんなでマイクラしましょう。











