Blog
SynologyNASでのMinecraftサーバー1.20.4起ち上げから自動バックアップまで2024.02.02

Minecraft
一年に一回くらい無性にマイクラがやりたくなって三日で飽きる。
そんなんだから久し振りにサーバー起ち上げたらなんか動かないし当時の知識が通用しないってのを繰り返している。
毎度毎度「Synology NAS マイクラサーバー」で検索しながら進めるのも疲れてきたので一度ここにまとめることにした。
慣れると所要時間30分くらいで全部終わる。
NASでのマイクラサーバー起ち上げと言えば「itzg/docker-minecraft-server」が有名だしこれなら一瞬で起ち上げられるのだが、Ubuntu上で動かした方が何かと都合が良いので今回はこちらを採用する。
まず、File Stationから「./docker/ubuntu/server」フォルダを先んじて作成しておく。 Container Manager(Dockerと同義)から「ubuntu」をダウンロードしてイメージから実行。
執筆時点での最新バージョンは「Ubuntu 22.04.3 LTS」だった。
リソースの制限を有効にし、CPU優先度を「高」メモリ制限を「4096」MGくらいにしてあげるとよい(ウチのNASの搭載メモリは8GB)
実際に遊んでみてカクつくようであればメモリ制限を徐々に開放していく。 ボリューム設定で先んじて作成しておいた「./docker/ubuntu/server」を指定「/data」フォルダをマッピングする(/dataなのはitzgサーバーを使っていた頃の名残)ネットワークを「host」へ。他は特に弄らない。 最終的にこんな感じの設定でubuntuコンテナ起ち上げ。
ここからは今さっき起ち上げたubuntuコンテナ内で作業するためターミナルソフトが必要になる。
基本どれでも良いが、今回は定番ソフトの一つ「Tera Term」で作業を進めていく。
Tera Term
https://github.com/TeraTermProject/teraterm/releases
Tera Termを起動したらホスト名にNASのローカルIPアドレスを入力。ユーザー名とパスフレーズはDSMと同じものを入力してログイン。
NASにアクセスできたら管理者権限でsuコマンドを実行。パスワードの入力を求められるのでDSMにログインする時と同じものを入力(ログは残らない)
先ほど起ち上げたubuntuコンテナに入りたいのでコンテナIDを調べる。
CONTAINER IDってとこに記載されているIDをメモるかコピって下記コマンドでコンテナ内に入る。IDの部分をNAMESの「ubuntu(コンテナの名前)」に書き換えてもよい。
コンテナに入ることができたがコマンドも何もインストールされていない真っ新なubuntuなので、必要に応じて都度コマンドをインストールしていく。まずは「sudo」から。最後までやってから気付いたんですが今回は必要なかったです。
今回起ち上げるのはNASのスペックと負荷を考慮して軽量のPaper1.20.4サーバーにすることにした。
このバージョンにはJava 21が必要なのでインストールする。
とりあえず日本語にする(飛ばしてもヨシ)
タイムゾーンを東京にする。
先ほどマッピングした「./data」に移動してからPaperMCをダウンロード。以降全ての作業は基本このディレクトリで行う。
PaperMCのダウンロードページへ飛び、起動したいバージョン(今回は1.20.4)のダウンロードリンクをコピーする。
ダウンロードできたか一応確認してからjar実行。
初回起動時は「eula.txt」に同意しろってエラー文が出て処理が終了する。エディタをインストールして「eula.txt」の編集画面へ。
[i]で挿入モードになるので「eura=true」に書き換えて、[Esc]→[:wq]→[Enter]で保存して退出(ミスったら[Esc]→[:q!]→[Enter]で破棄して退出)
改めてjarを実行すると今度こそサーバーが起動する。 Minecraftサーバーをrootとして実行すんなカスみたいな警告文が出るけど今回は無視する。しないと進めない。
ちなみに誘導されるページはここ。
マイクラを起動してサーバーアドレスにNASのローカルIPアドレスXXX.XXX.XX.XXを入力して起ち上がっているか確認する。
おk
ターミナルに「stop」を入力して一旦サーバーを閉じる。
手動でバックアップするのは骨が折れるのでscreenとcronを用いて自動化する。ここが一番苦労した。
screenを起動して、その中でもう一度jarを走らせてサーバーが起ち上がっているか改めて確認する。
確認できたら「stop」でサーバーを閉じて、[ctrl]+[a]→[k]で一旦screenを終了。
予めバックアップディレクトリを作成しておく。以降も「./data(jarファイルがあるディレクトリ)」で作業すること。
zipが必要になるのでインストール。
起動スクリプトを作成する。
エディタに入ってから[gg]→[Shift]+[v]→[Shift]+[g]→[x]→[i]→[右クリ]でクリップボードを全部貼り付けられる。
一見なにも起こらないが、既に裏側でscreenが起動していてその中でマイクラサーバーが動いている。下記で確認できる。
バックアップスクリプトを作成して動かしてみる。
下記先駆者様のスクリプトを引用させていただいております。
おk
cronをインストールしてcrontabの編集(毎日午前5時にサーバーが再起動されてバックアップされるように記述してある)
cronを起動して確認する(大事!)
これでNASのDockerで起ち上げたubuntuコンテナ内でマイクラサーバーが自動でバックアップされるようになった。
もうターミナル閉じていいですよ。
起動スクリプトとか細かいところ詰めてないし前述の警告文は気になるけど取り敢えずこれでヨシとする。
後はルーターの25565ポート(変更してなければ)を開放すればお友達と遊べます。
僕の周りはみんなPalworldに行っちゃったんで一人で遊ぶんですけどね。
参考にさせていただいた偉大なる先駆者様方
そんなんだから久し振りにサーバー起ち上げたらなんか動かないし当時の知識が通用しないってのを繰り返している。
毎度毎度「Synology NAS マイクラサーバー」で検索しながら進めるのも疲れてきたので一度ここにまとめることにした。
慣れると所要時間30分くらいで全部終わる。
Ubuntuの導入
まず、File Stationから「./docker/ubuntu/server」フォルダを先んじて作成しておく。 Container Manager(Dockerと同義)から「ubuntu」をダウンロードしてイメージから実行。
執筆時点での最新バージョンは「Ubuntu 22.04.3 LTS」だった。
リソースの制限を有効にし、CPU優先度を「高」メモリ制限を「4096」MGくらいにしてあげるとよい(ウチのNASの搭載メモリは8GB)
実際に遊んでみてカクつくようであればメモリ制限を徐々に開放していく。 ボリューム設定で先んじて作成しておいた「./docker/ubuntu/server」を指定「/data」フォルダをマッピングする(/dataなのはitzgサーバーを使っていた頃の名残)ネットワークを「host」へ。他は特に弄らない。 最終的にこんな感じの設定でubuntuコンテナ起ち上げ。
Minecraft Serverの起ち上げ
基本どれでも良いが、今回は定番ソフトの一つ「Tera Term」で作業を進めていく。
Tera Term
https://github.com/TeraTermProject/teraterm/releases
1)Dockerコンテナに入る
NASにアクセスできたら管理者権限でsuコマンドを実行。パスワードの入力を求められるのでDSMにログインする時と同じものを入力(ログは残らない)
$ sudo su -
password
password
$ docker container ls
$ docker exec -it xxxxxxxxxxx bash
2)Minecraft Serverの起ち上げ
$ apt update
$ apt install sudo
このバージョンにはJava 21が必要なのでインストールする。
$ apt install openjdk-21-jdk-headless
y
y
$ apt-get install language-pack-ja
y
$ update-locale LANG=ja_JP.UTF-8
$ echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
$ source ~/.bashrc
y
$ update-locale LANG=ja_JP.UTF-8
$ echo 'export LANG=ja_JP.UTF-8' >> ~/.bashrc
$ source ~/.bashrc
$ apt-get install language-pack-ja
y
$ apt-get install -y tzdata && \
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
6
79
$ date
y
$ apt-get install -y tzdata && \
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
6
79
$ date
PaperMCのダウンロードページへ飛び、起動したいバージョン(今回は1.20.4)のダウンロードリンクをコピーする。
$ cd data
$ apt install curl
y
$ curl -OL https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/405/downloads/paper-1.20.4-405.jar
$ apt install curl
y
$ curl -OL https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/405/downloads/paper-1.20.4-405.jar
$ ls
$ java -jar paper-1.20.4-405.jar
$ java -jar paper-1.20.4-405.jar
$ apt-get update
$ apt-get install vim
y
$ vi eula.txt
$ apt-get install vim
y
$ vi eula.txt
改めてjarを実行すると今度こそサーバーが起動する。 Minecraftサーバーをrootとして実行すんなカスみたいな警告文が出るけど今回は無視する。しないと進めない。
ちなみに誘導されるページはここ。
マイクラを起動してサーバーアドレスにNASのローカルIPアドレスXXX.XXX.XX.XXを入力して起ち上がっているか確認する。
おk
ターミナルに「stop」を入力して一旦サーバーを閉じる。
自動でバックアップされるようにする
1)screenをインストールしてscreen内でサーバー起動
$ apt install screen
y
$ screen
Enter
$ screen java -jar paper-1.20.4-405.jar
y
$ screen
Enter
$ screen java -jar paper-1.20.4-405.jar
確認できたら「stop」でサーバーを閉じて、[ctrl]+[a]→[k]で一旦screenを終了。
2)起動スクリプトとバックアップスクリプトの作成
$ mkdir backup
$ apt update && apt install -y zip
エディタに入ってから[gg]→[Shift]+[v]→[Shift]+[g]→[x]→[i]→[右クリ]でクリップボードを全部貼り付けられる。
$ screen -ls
$ screen -r
[ctrl]+[a]→[d]
$ screen -r
[ctrl]+[a]→[d]
下記先駆者様のスクリプトを引用させていただいております。
-
Minecraftサーバをscreenとcronでプラグインを使わずに自動再起動する | なうびるどいんぐ
https://jyn.jp/minecraft-server-auto-restart/ -
【Minecraftマルチサーバー】自動バックアップがようやく動くようになったメモ #Linux - Qiita
https://qiita.com/zawanume/items/17bcb08cbdf2aa90dc11
3)cronで自動化する
$ apt update && apt install -y cron
$ crontab -e
59 4 * * * /data/restart.sh
$ crontab -e
59 4 * * * /data/restart.sh
$ service cron start
$ service cron status
$ crontab -l
$ service cron status
$ crontab -l
もうターミナル閉じていいですよ。
おわりに
後はルーターの25565ポート(変更してなければ)を開放すればお友達と遊べます。
僕の周りはみんなPalworldに行っちゃったんで一人で遊ぶんですけどね。
参考にさせていただいた偉大なる先駆者様方
-
Ubuntu 20.04でMinecraftサーバー構築
https://zenn.dev/de_teiu_tkg/articles/1b9025d3a6db71 -
マイクラサーバーがssh接続を切っても動くようにする[screen]
https://gafuburo.net/screen-minecraft-server/ -
Debian/Ubuntuのロケールを日本語にする方法 #Bash - Qiita
https://qiita.com/valzer0/items/db7639d8231bf5121297 -
Minecraftサーバをscreenとcronでプラグインを使わずに自動再起動する | なうびるどいんぐ
https://jyn.jp/minecraft-server-auto-restart/ -
【Minecraftマルチサーバー】自動バックアップがようやく動くようになったメモ #Linux - Qiita
https://qiita.com/zawanume/items/17bcb08cbdf2aa90dc11