マイクラサーバを立てる！

マイクラでNeoForgeを使ってMODを入れて遊びたい！
ということで、とりあえずマイクラサーバを立てようという話。
さらっと探してもあんまり情報がなかったので
自分の備忘録として残せたらいいなと思ってます。

:::note warn
注意
あくまでも私の環境の手順です。
内容を保証するものではありません。
:::

## とりあえず最初にアップデート。
```
# dnf update -y
# shutdown -r now
```

## マイクラサーバ用のユーザを作成
```
# adduser minecraft
# passwd minecraft
```

#### OSユーザ minecraft でsudoを使えるようにする。
```
# usermod -aG wheel minecraft
# cat /etc/group | grep wheel
　※catの結果にminecraftがあればOK
```

## 実際にsudoがroot権限で実行できるか確認。
```
# su - minecraft
$ id
uid=1001(minecraft) gid=1001(minecraft) groups=1001(minecraft),10(wheel)
$ sudo id
[sudo] minecraft のパスワード:
uid=0(root) gid=0(root) groups=0(root)
```

## JAVAをインストール
何も考えず、最新のものを入れてみよう。ダメなら戻そう。
まずは一覧を確認。
```
[minecraft@MC1 neoforge-server]$ sudo dnf list | grep java
[sudo] minecraft のパスワード:
byteman-javadoc.noarch                                 4.0.16-19.el10                     appstream 
google-noto-sans-javanese-fonts.noarch                 20240401-5.el10                    appstream 
google-noto-sans-javanese-vf-fonts.noarch              20240401-5.el10                    appstream 
idm-pki-java.noarch                                    11.6.0-1.el10                      appstream 
java-21-openjdk.x86_64                                 1:21.0.7.0.6-1.el10.alma.1         appstream 
java-21-openjdk-demo.x86_64                            1:21.0.7.0.6-1.el10.alma.1         appstream 
java-21-openjdk-devel.x86_64                           1:21.0.7.0.6-1.el10.alma.1         appstream 
java-21-openjdk-headless.x86_64                        1:21.0.7.0.6-1.el10.alma.1         appstream 
java-21-openjdk-javadoc.x86_64                         1:21.0.7.0.6-1.el10.alma.1         appstream 
java-21-openjdk-javadoc-zip.x86_64                     1:21.0.7.0.6-1.el10.alma.1         appstream 
java-21-openjdk-jmods.x86_64                           1:21.0.7.0.6-1.el10.alma.1         appstream 
java-21-openjdk-src.x86_64                             1:21.0.7.0.6-1.el10.alma.1         appstream 
java-21-openjdk-static-libs.x86_64                     1:21.0.7.0.6-1.el10.alma.1         appstream 
javapackages-filesystem.noarch                         6.4.0-1.el10                       appstream 
javapackages-tools.noarch                              6.4.0-1.el10                       appstream 
mariadb-java-client.noarch                             3.4.0-2.el10                       appstream 
openmpi-java.x86_64                                    2:5.0.2-5.el10                     appstream 
systemtap-runtime-java.x86_64                          5.2-2.el10                         appstream 
tzdata-java.noarch                                     2025b-1.el10                       appstream 
xz-java.noarch                                         1.9-11.el10                        appstream 
[minecraft@MC1 neoforge-server]$ 
```
#### develを入れると、もろもろ入るのでそれで。
```
[minecraft@MC1 neoforge-server]$ sudo dnf install java-21-openjdk-devel.x86_64
メタデータの期限切れの最終確認: 1:42:07 前の 2025年06月20日 18時53分16秒 に実施しました。
依存関係が解決しました。
====================================================================================================================================================================================
 パッケージ                                         アーキテクチャー                 バージョン                                           リポジトリー                        サイズ
====================================================================================================================================================================================
インストール:
 java-21-openjdk-devel                              x86_64                           1:21.0.7.0.6-1.el10.alma.1                           appstream                           5.0 M
依存関係のインストール:
 java-21-openjdk                                    x86_64                           1:21.0.7.0.6-1.el10.alma.1                           appstream                           456 k
 java-21-openjdk-headless                           x86_64                           1:21.0.7.0.6-1.el10.alma.1                           appstream                            48 M
 javapackages-filesystem                            noarch                           6.4.0-1.el10                                         appstream                            12 k
 lksctp-tools                                       x86_64                           1.0.21-1.el10                                        baseos                               94 k
 mkfontscale                                        x86_64                           1.2.2-8.el10                                         appstream                            32 k
 ttmkfdir                                           x86_64                           3.0.9-72.el10                                        appstream                            57 k
 tzdata-java                                        noarch                           2025b-1.el10                                         appstream                            46 k
 xorg-x11-fonts-Type1                               noarch                           7.5-40.el10                                          appstream                           506 k

トランザクションの概要
====================================================================================================================================================================================
インストール  9 パッケージ

ダウンロードサイズの合計: 54 M
インストール後のサイズ: 227 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/9): java-21-openjdk-21.0.7.0.6-1.el10.alma.1.x86_64.rpm                                                                                          1.7 MB/s | 456 kB     00:00    
(2/9): javapackages-filesystem-6.4.0-1.el10.noarch.rpm                                                                                              337 kB/s |  12 kB     00:00    
(3/9): mkfontscale-1.2.2-8.el10.x86_64.rpm                                                                                                          517 kB/s |  32 kB     00:00    
(4/9): ttmkfdir-3.0.9-72.el10.x86_64.rpm                                                                                                            897 kB/s |  57 kB     00:00    
(5/9): java-21-openjdk-devel-21.0.7.0.6-1.el10.alma.1.x86_64.rpm                                                                                     10 MB/s | 5.0 MB     00:00    
(6/9): tzdata-java-2025b-1.el10.noarch.rpm                                                                                                          745 kB/s |  46 kB     00:00    
(7/9): lksctp-tools-1.0.21-1.el10.x86_64.rpm                                                                                                        2.4 MB/s |  94 kB     00:00    
(8/9): xorg-x11-fonts-Type1-7.5-40.el10.noarch.rpm                                                                                                  7.1 MB/s | 506 kB     00:00    
(9/9): java-21-openjdk-headless-21.0.7.0.6-1.el10.alma.1.x86_64.rpm                                                                                  27 MB/s |  48 MB     00:01    
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                 17 MB/s |  54 MB     00:03     
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  scriptletの実行中: java-21-openjdk-headless-1:21.0.7.0.6-1.el10.alma.1.x86_64                                                                                                 1/1 
  準備             :                                                                                                                                                            1/1 
  インストール中   : lksctp-tools-1.0.21-1.el10.x86_64                                                                                                                          1/9 
  インストール中   : tzdata-java-2025b-1.el10.noarch                                                                                                                            2/9 
  インストール中   : ttmkfdir-3.0.9-72.el10.x86_64                                                                                                                              3/9 
  インストール中   : mkfontscale-1.2.2-8.el10.x86_64                                                                                                                            4/9 
  インストール中   : xorg-x11-fonts-Type1-7.5-40.el10.noarch                                                                                                                    5/9 
  scriptletの実行中: xorg-x11-fonts-Type1-7.5-40.el10.noarch                                                                                                                    5/9 
  インストール中   : javapackages-filesystem-6.4.0-1.el10.noarch                                                                                                                6/9 
  インストール中   : java-21-openjdk-headless-1:21.0.7.0.6-1.el10.alma.1.x86_64                                                                                                 7/9 
  scriptletの実行中: java-21-openjdk-headless-1:21.0.7.0.6-1.el10.alma.1.x86_64                                                                                                 7/9 
  インストール中   : java-21-openjdk-1:21.0.7.0.6-1.el10.alma.1.x86_64                                                                                                          8/9 
  scriptletの実行中: java-21-openjdk-1:21.0.7.0.6-1.el10.alma.1.x86_64                                                                                                          8/9 
  インストール中   : java-21-openjdk-devel-1:21.0.7.0.6-1.el10.alma.1.x86_64                                                                                                    9/9 
  scriptletの実行中: java-21-openjdk-devel-1:21.0.7.0.6-1.el10.alma.1.x86_64                                                                                                    9/9 
  scriptletの実行中: java-21-openjdk-1:21.0.7.0.6-1.el10.alma.1.x86_64                                                                                                          9/9 
  scriptletの実行中: java-21-openjdk-devel-1:21.0.7.0.6-1.el10.alma.1.x86_64                                                                                                    9/9 

インストール済み:
  java-21-openjdk-1:21.0.7.0.6-1.el10.alma.1.x86_64     java-21-openjdk-devel-1:21.0.7.0.6-1.el10.alma.1.x86_64     java-21-openjdk-headless-1:21.0.7.0.6-1.el10.alma.1.x86_64    
  javapackages-filesystem-6.4.0-1.el10.noarch           lksctp-tools-1.0.21-1.el10.x86_64                           mkfontscale-1.2.2-8.el10.x86_64                               
  ttmkfdir-3.0.9-72.el10.x86_64                         tzdata-java-2025b-1.el10.noarch                             xorg-x11-fonts-Type1-7.5-40.el10.noarch                       

完了しました!
[minecraft@MC1 neoforge-server]$ 
```

## NeoForge用のディレクトリを作成してその中にもろもろ入れる予定にする。
```
[minecraft@MC1 ~]$ mkdir neoforge-server
[minecraft@MC1 ~]$ ls -la
合計 16
drwx------  5 minecraft minecraft 136  6月 20 18:26 .
drwxr-xr-x. 4 root      root       36  6月 20 18:24 ..
-rw-------  1 minecraft minecraft   5  6月 20 18:24 .bash_history
-rw-r--r--  1 minecraft minecraft  18 10月 29  2024 .bash_logout
-rw-r--r--  1 minecraft minecraft 144 10月 29  2024 .bash_profile
-rw-r--r--  1 minecraft minecraft 522 10月 29  2024 .bashrc
drwx------  2 minecraft minecraft   6  6月 20 18:24 .cache
drwxr-xr-x  4 minecraft minecraft  39  6月 20 00:49 .mozilla
drwxr-xr-x  2 minecraft minecraft   6  6月 20 18:26 neoforge-server
[minecraft@MC1 ~]$ cd neoforge-server/
```

#### NeoForgeから最新版をダウンロード
https://neoforged.net/
Latesat NetForge InstallerのURLをwgetでたたいてダウンロード
```
[minecraft@MC1 neoforge-server]$ wget "https://maven.neoforged.net/releases/net/neoforged/neoforge/21.6.8-beta/neoforge-21.6.8-beta-installer.jar"
--2025-06-20 21:17:14--  https://maven.neoforged.net/releases/net/neoforged/neoforge/21.6.8-beta/neoforge-21.6.8-beta-installer.jar
maven.neoforged.net (maven.neoforged.net) をDNSに問いあわせています... 2a02:6ea0:d300::44, 2a02:6ea0:d300::42, 2a02:6ea0:d300::43, ...
maven.neoforged.net (maven.neoforged.net)|2a02:6ea0:d300::44|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 6192432 (5.9M) [application/java-archive]
`neoforge-21.6.8-beta-installer.jar' に保存中

neoforge-21.6.8-beta-installer.jar           100%[==============================================================================================>]   5.91M  23.3MB/s 時間 0.3s     

2025-06-20 21:17:15 (23.3 MB/s) - `neoforge-21.6.8-beta-installer.jar' へ保存完了 [6192432/6192432]

[minecraft@MC1 neoforge-server]$ ls -al
合計 6048
drwxr-xr-x 2 minecraft minecraft      48  6月 20 21:17 .
drwx------ 5 minecraft minecraft     154  6月 20 20:31 ..
-rw-r--r-- 1 minecraft minecraft 6192432  6月 20 06:08 neoforge-21.6.8-beta-installer.jar
[minecraft@MC1 neoforge-server]$ 
```

## サーバをインストール
ログがちょーーー出るので、中略。
```
[minecraft@MC1 neoforge-server]$ java -jar neoforge-21.6.8-beta-installer.jar --installServer
Outputting log to file neoforge-21.6.8-beta-installer.jar.log
JVM info: Red Hat, Inc. - 21.0.7 - 21.0.7+6-LTS
java.net.preferIPv4Stack=true
Current Time: 20/06/2025 21:17:49
Host: maven.neoforged.net [178.249.213.3, 95.173.204.15, 95.173.204.18, 178.249.213.27, 95.173.204.24, 95.173.204.22]
Host: libraries.minecraft.net [13.107.246.46]
Host: launchermeta.mojang.com [13.107.246.46]
Host: piston-meta.mojang.com [13.107.246.46]
Host: sessionserver.mojang.com [13.107.246.46]
Found java version 21.0.7
（中略）
Processor: net.neoforged.installertools:binarypatcher: Loading patch files
Processor: net.neoforged.installertools:binarypatcher: Patching input
Processor: net.neoforged.installertools:binarypatcher: Adding new files
The server installed successfully
You can delete this installer file now if you wish
[minecraft@MC1 neoforge-server]$ 
```

## いよいよ起動！
```
[minecraft@MC1 neoforge-server]$ ls -la
合計 6564
drwxr-xr-x  3 minecraft minecraft     165  6月 20 21:17 .
drwx------  5 minecraft minecraft     154  6月 20 20:31 ..
drwxr-xr-x 10 minecraft minecraft      98  6月 20 21:17 libraries
-rw-r--r--  1 minecraft minecraft 6192432  6月 20 06:08 neoforge-21.6.8-beta-installer.jar
-rw-r--r--  1 minecraft minecraft  513196  6月 20 21:18 neoforge-21.6.8-beta-installer.jar.log
-rw-r--r--  1 minecraft minecraft     362  6月 20 21:17 run.bat
-rwxr--r--  1 minecraft minecraft     361  6月 20 21:17 run.sh
-rw-r--r--  1 minecraft minecraft     339  6月 20 21:17 user_jvm_args.txt
[minecraft@MC1 neoforge-server]$ ./run.sh
[21:24:27.186] [main/INFO] [Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, neoforgeserver, --fml.neoForgeVersion, 21.6.8-beta, --fml.fmlVersion, 8.0.5, --fml.mcVersion, 1.21.6, --fml.neoFormVersion, 20250617.151856] 
[21:24:27.189] [main/INFO] [Launcher/MODLAUNCHER]: JVM identified as Red Hat, Inc. OpenJDK 64-Bit Server VM 21.0.7+6-LTS 
[21:24:27.191] [main/INFO] [Launcher/MODLAUNCHER]: ModLauncher 11.0.5+main.901c6ea8 starting: java version 21.0.7 by Red Hat, Inc.; OS Linux arch amd64 version 6.12.0-55.9.1.el10_0.x86_64 
[21:24:27.282] [main/INFO] [loading.ImmediateWindowHandler/]: ImmediateWindowProvider not loading because launch target is neoforgeserver 
[21:24:27.339] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.7 Source=union:/home/minecraft/neoforge-server/libraries/net/fabricmc/sponge-mixin/0.15.2+mixin.0.8.7/sponge-mixin-0.15.2+mixin.0.8.7.jar%2385!/ Service=ModLauncher Env=SERVER 
[21:24:27.726] [main/INFO] [loading.moddiscovery.ModDiscoverer/SCAN]: Found mod file "server-1.21.6-20250617.151856-srg.jar" [locator: production server provider +net.neoforged:neoforge:21.6.8-beta:server] 
[21:24:27.753] [main/INFO] [loading.moddiscovery.ModDiscoverer/SCAN]: Found mod file "neoforge-21.6.8-beta-universal.jar" [locator: PathBasedLocator[name=neoforge, paths=[libraries/net/neoforged/neoforge/21.6.8-beta/neoforge-21.6.8-beta-universal.jar]], reader: mod manifest] 
[21:24:27.863] [main/INFO] [loading.moddiscovery.locators.JarInJarDependencyLocator/]: Found 2 dependencies adding them to mods collection 
[21:24:27.864] [main/INFO] [loading.moddiscovery.ModDiscoverer/SCAN]: Found gamelibrary file "mixinextras-neoforge-0.4.1.jar" [parent: neoforge-21.6.8-beta-universal.jar, locator: jarinjar, reader: mod manifest] 
[21:24:27.864] [main/INFO] [loading.moddiscovery.ModDiscoverer/SCAN]: Found library file "net.neoforged.neoforge-coremods-21.6.8-beta.jar" [parent: neoforge-21.6.8-beta-universal.jar, locator: jarinjar, reader: mod manifest] 
[21:24:27.866] [main/INFO] [loading.moddiscovery.ModDiscoverer/]: 
     Mod List:
                Name Version (Mod Id)

                Minecraft 1.21.6 (minecraft)
                NeoForge 21.6.8-beta (neoforge) 
[21:24:28.206] [main/INFO] [LaunchServiceHandler/MODLAUNCHER]: Launching target 'neoforgeserver' with arguments [] 
[21:24:28] [main/WARN] [minecraft/Eula]: Failed to load eula.txt
[21:24:28] [main/INFO] [minecraft/Main]: You need to agree to the EULA in order to run the server. Go to eula.txt for more info.
[minecraft@MC1 neoforge-server]$ 
```

#### ファイル一覧をみたら、いろいろ作られているので、eula.txtの中身を編集して、eula=false　を　eula=TRUE　に変更。
```
[minecraft@MC1 neoforge-server]$ ls -la
合計 6572
drwxr-xr-x  7 minecraft minecraft    4096  6月 20 21:24 .
drwx------  5 minecraft minecraft     154  6月 20 20:31 ..
drwxr-xr-x  2 minecraft minecraft      22  6月 20 21:24 config
drwxr-xr-x  2 minecraft minecraft       6  6月 20 21:24 defaultconfigs
-rw-r--r--  1 minecraft minecraft     158  6月 20 21:24 eula.txt
drwxr-xr-x 10 minecraft minecraft      98  6月 20 21:17 libraries
drwxr-xr-x  2 minecraft minecraft      41  6月 20 21:24 logs
drwxr-xr-x  2 minecraft minecraft       6  6月 20 21:24 mods
-rw-r--r--  1 minecraft minecraft 6192432  6月 20 06:08 neoforge-21.6.8-beta-installer.jar
-rw-r--r--  1 minecraft minecraft  513196  6月 20 21:18 neoforge-21.6.8-beta-installer.jar.log
-rw-r--r--  1 minecraft minecraft     362  6月 20 21:17 run.bat
-rwxr--r--  1 minecraft minecraft     361  6月 20 21:17 run.sh
-rw-r--r--  1 minecraft minecraft     339  6月 20 21:17 user_jvm_args.txt
[minecraft@MC1 neoforge-server]$
[minecraft@MC1 neoforge-server]$ cat eula.txt 
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Fri Jun 20 21:24:28 JST 2025
eula=false
[minecraft@MC1 neoforge-server]$ vi eula.txt 
[minecraft@MC1 neoforge-server]$ cat eula.txt 
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://aka.ms/MinecraftEULA).
#Fri Jun 20 21:24:28 JST 2025
eula=TRUE
[minecraft@MC1 neoforge-server]$ 
```

#### 再度起動！
```
[minecraft@MC1 neoforge-server]$ ./run.sh
[21:24:27.186] [main/INFO] [Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, neoforgeserver, --fml.neoForgeVersion, 21.6.8-beta, --fml.fmlVersion, 8.0.5, --fml.mcVersion, 1.21.6, --fml.neoFormVersion, 20250617.151856] 
[21:24:27.189] [main/INFO] [Launcher/MODLAUNCHER]: JVM identified as Red Hat, Inc. OpenJDK 64-Bit Server VM 21.0.7+6-LTS 
[21:24:27.191] [main/INFO] [Launcher/MODLAUNCHER]: ModLauncher 11.0.5+main.901c6ea8 starting: java version 21.0.7 by Red Hat, Inc.; OS Linux arch amd64 version 6.12.0-55.9.1.el10_0.x86_64 
(中略)
[21:29:20] [Worker-Main-1/INFO] [minecraft/LoggerChunkProgressListener]: Preparing spawn area: 6%
[21:29:20] [Server thread/INFO] [minecraft/LoggerChunkProgressListener]: Time elapsed: 9774 ms
[21:29:20] [Server thread/INFO] [minecraft/DedicatedServer]: Done (24.597s)! For help, type "help"
[21:29:20] [Server thread/INFO] [ne.ne.ne.se.pe.PermissionAPI/]: Successfully initialized permission handler neoforge:default_handler
> 
```

入力がかえってきたら、たぶん起動できてるのでクライアントからアクセスして問題なければ、あとはMODとか入れて遊ぼう！