見出し画像

【PaperMC】SSL対応Dynmapを出せるようにするまでの話

自己嫌悪になりながら頑張った。

手順難しくなかった。

上記の手順で行った。

環境

SSL認証はLetsEncrypt
サーバーはNginx
OSはUbuntu 22.04 LTS server

STEP1

<minecraft_server.jarDIR>/plugins/dynmap/configuration.txtの編集

まずはここから。
- class: org.dynmap.InternalClientUpdateComponent
の項目を無効にする。
- class: org.dynmap.JsonFileClientUpdateComponent
を有効にする。
※コメントの位置を間違えないように注意
実際のconfigファイルのサンプルをgistに上げておきました。
外部サーバーの設定と、
tilespathを/var/www/html/にしてあります。
めんどくさがってサーバーのディレクトリはNginxのデフォルトにしたため
https://gist.github.com/uk4h/08de636f43326e985f286b26e0b96022

STEP2

plugin側のWebサーバを無効にする。

書いてある通りに変更、
実際は350行目くらいにあった。

disable-webserver: false
# TO
disable-webserver: true

STEP3

tilespath/webpathにパスを指定する

STEP1の最後の方の部分
行数忘れちゃった。

# The path where the tile-files are placed.
tilespath: /var/www/html/web/tiles

# The path where the web-files are located.
webpath: /var/www/html/web/

STEP4

マインクラフトサーバーを再起動しましょう。

ダメだったらなんか大量にエラー出るはず。
だいたいは書き込み権限うんぬんなので、
所有者権限いじくってなんとかする。

つまづいたところ

プラグインからファイル書き込みの際、
公開用フォルダにしていた/var/www/html/web
の書き込み権限を付与しているにも関わらず書き込みが出来なかったこと。
minecraft用のユーザー追加をしたときの記憶が微妙で、
管理者権限が付与されてないのが関係してるかと思ったので、
管理者グループへの追加と
思い切ってchown使って所有者変えました。

$ sudo chown -R web

# etc...



あとがき

nginxをSSLでアクセスするところまでは正直そこまで苦労しなかった。
海外フォーラムでリバースプロキシ使わないとダメだよみたいに書いてあって、
鵜呑みにしたらドツボにはまった。
沼だった。本当に。
でもよくよく考えたら標準で公開フォルダからtilesにパス通す方法って
もともと存在してたこと思い出して、
dynmapのwiki見たら普通に書いてあった。
難しくてめんどくさいことしようとしていただけだった。
まあ、勉強になったからいいや。

最後までお読みいただき、ありがとうございます。 今後もたくさんの方に読んでいただけるよう精進します。 活動継続にあたりサポートをいただけると、 私のモチベーション維持やクオリティ向上に繋がります。 頂いたサポートはクリエイターとしての活動費にさせて頂きます。 ぜひお願い致します。