以前、WSL2環境のDockerなどを使ってMinecraftのサーバを構築してみましたが、結構面倒な作業が多かったのでさすがにこれでは実用性が厳しいなと思っていました。お金を書けないのであればこれぐらいの作業は仕方ないとも思っていました。
そんな中、以下のような情報をみつけました。
balenaCloudというサービスを使うことで、RaspberryPi環境のMinecraftServerのイメージを作成できるという内容でした。手順はかなり簡単なものだったので、今回はこちらの情報をもとにMinecraftServerを構築してみることにしました。
以前までよく使用されていたetcherという名前のSDカードの書き込みアプリは、現在balena etcherと名前が変更になっているので、その印象がある方も多いと思います。
RaspberryPiを使うのであれば、手順もかなり少なく(ほぼワンクリックに近い!)構築できるのでかなりお勧めです。特に構築時にネットワーク設定ができる点、起動すればサーバープロセスも自動起動する点がお勧めポイントになります。あとこのイメージはVanillaサーバ(素のイメージ)ではないのでModやPluginも使えるみたいです。(Pluginしか試していませんが)
注意点としては、Raspberry Pi 4B 1GBモデル以上のメモリ搭載が動作推奨となります。
balenaCloudにログインする
balenaCloudは以下からログインすることができます。
このサービスは、簡単にいうとネットワーク上で作成した設定で、マイクロデバイス用のサーバイメージを作成し、それをダウンロード、SDカードに書き込むことでデプロイができるといったサービスのようです。(dockerベース)
また、サービスのダッシュボードで起動したRaspberryPiなどのデバイス情報をみることができるようにもなります。結構便利っぽい。無料版では最大10台のデバイスを管理できるようです。
アクセスすると以下のページが表示されます。ここで、上部にある【SignUp】ボタンをクリックします。

するとユーザ登録画面になります。GitHub、Google、Emailから登録することができます。どの方法でもよいので登録を行います。

GitHubからMinecraftServerのイメージをセットアップする
参考にした記事のとおりであれば、アプリケーションの作成(サーバイメージ)などを行っていくような手順になるのですが、実はこの手順は不要でした。以下のGitHubページにアクセスします。
そして、下の方にスクロールを行い、README.mdの内容を見ていきます。ここに方法が記載されていますが、それをみながら進んでいくと

Setup and useの節に【One Click Deployment】ボタンがあります。これを押すことで、balenaCloudのアカウントがあれば、新しいサーバイメージがデプロイされます。

クリックするとbalenaCloudのダッシュボード画面に以下のようなダイアログが表示されます。ここで【Create and deploy】ボタンをクリックすればOKです。

すると以下のような画面になります。ここで【Add device】ボタンをクリックするとアプリケーション(サーバイメージ)の設定を行えます。

クリックして以下のようなダイアログが表示されます。RaspberryPiからWiFiを使用する場合にはNetwork Connectionのラジオボタンを【Wifi+Ethernet】にして、

SSIDとWiFIのパスフレーズを入力して、【Download balenaOS】ボタンをクリックします。これでRaspberryPiに挿入するSDカードのイメージがダウンロードできます。

基本的にこれで作業はほぼ完了です。
作成したイメージをSDカードに書き込む
あとは、ダウンロードしたOSイメージのファイルを

Raspberry Pi Imagerを使用してSDカードに書き込んでいきます。

これで完了です。作成した、SDカードをRaspberry Piに挿入して起動を行います。
すると、balenaCloudのダッシュボードのDeviceタブから以下の様にみえるようになります。

接続されたデバイスのエントリをクリックすると

サーバのIPアドレスなどのネットワーク情報やサーバプロセスの情報の状態、CPUやメモリの使用状況が表示されます。また、この画面からリブートやシャットダウンといったオペレーションも行えます。
そのままインストールしてしまったので、アプリケーションの名前がnameless-woodとなっているので気になるようであれば名前を変更しておきます。

名前の部分の隣にある歯車のボタンをクリックすればアプリケーションの名前を変更できます。今回はbalena-minecraft-serverと変更しておきました。

変更後は以下のように名前が変更されて表示されています。

Minecraft Java Editionからサーバに接続を行う
サーバは起動後にMinecraftサーバを自動的に起動してくれるので、あとはMinecraft(クライアント)から接続を行うだけです。

マルチプレイで、【サーバ接続】ボタンをクリックし、サーバ名をbalenaminecraftserver.localを入力すると、同一LAN内のRaspberryPiを検出して

サーバが検出され、

サーバがリストに表示され、サーバ名をクリックすると接続します。


無事にサーバに接続することができました。これでサーバの構築は完了です。
プラグインを設定する
今回構築したサーバはログインのコンソールのアクセスがsshではできないので、PluginをインストールするにはSCPを使用することになります。Windowsの場合にはWinSCPを使用してログインし、ファイルをコピーしていきます。
WinSCPで接続ダイアログを開き
- 転送プロトコル … SCP
- ホスト名 … balenaminecraftserver
- ポート番号 … 22
- ユーザ名 … root
- パスワード … balena (参考ドキュメントと値が異なるので注意)

上記の設定で接続を行うと

サーバに入りファイル転送を行えます。/serverfiles/plugins/にPluginファイルをコピーして、再起動すれば使用できるようになります。

今回はLuckPermsというPluginを導入してみました。
※サーバへコンソールログインするためにはRCONが必要になります。
Releases · Tiiffi/mcrcon · GitHub
※WindowsでRCONを動作させるには以下のバッチファイルから起動する必要もあります。
RCON-Script/launch.bat at master · AlexProgrammerDE/RCON-Script · GitHub
おわりに
以前のエントリよりも格段に少ない手順でMinecraftServerを立ち上げることができました。ネットワークが有線であればほぼワンクリックで完了していると言ってもいいでしょう。RaspberryPiが家に余っているよっていう方であれば、近くのコミュニティなどに寄贈してMinecraftServerにして有効利用してもらうというのもいいのではないかなと思います。
