Minecraft Bedrock Edition のサーバーを構築する
Published on 2023/01/07 , Last updated 2024/02/08Tags
概要
Minecraft Bedrock Edition のサーバーを構築します。
前提条件
- Docker, Docker Compose が使用できる必要があります。
サーバーの構築
-
サーバーに必要なフォルダを作成します。
フォルダ名 備考 volume ワールドデータ用のフォルダ -
公式ドキュメント を参考に
docker-compose.yaml
を作成します。services
>mc
>environment
でシード値、ゲームモードなどを設定することができます。詳細は 公式ドキュメント を参照してください。
version: "3.7" services: # https://github.com/itzg/docker-minecraft-bedrock-server mc: image: itzg/minecraft-bedrock-server tty: true stdin_open: true ports: - "19132:19132/udp" # https://github.com/itzg/docker-minecraft-bedrock-server?tab=readme-ov-file#environment-variables environment: EULA: "TRUE" GAMEMODE: "survival" DIFFICULTY: "normal" volumes: - /mc-be/volume:/data
ホワイトリストの設定
許可したプレイヤーだけがログインできるようにホワイトリストを設定します。詳細は 公式ドキュメント を参照してください。
-
allowlist.json
を作成します。プレイヤーの uuid、name を json 形式で記述します。
[ { "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "name": "xxxxxx" } ]
-
docker-compose.yaml
を修正してホワイトリストを有効にします。- services > mc > environment
- ALLOW_LIST: "TRUE"
- services > mc > volumes
- - /mc-be/allowlist.json:/data/allowlist.json
修正後の
docker-compose.yaml
mc: image: itzg/minecraft-bedrock-server tty: true stdin_open: true ports: - "19132:19132/udp" environment: EULA: "TRUE" GAMEMODE: "survival" DIFFICULTY: "normal" ALLOW_LIST: "TRUE" volumes: - /mc-be/volume:/data - /mc-be/allowlist.json:/data/allowlist.json
- services > mc > environment
サーバーの起動/停止
-
コンテナを起動します。
docker-compose up -d
-
コンテナを停止します。
docker-compose down
-
コンテナを削除します。
docker-compose rm
サーバーの公開
Tunnel を構築して自宅サーバーを公開する方法 を参考にしてください。
次のように nginx を Minecraft Bedrock Edition に読み替えてください。
# server.toml
[server]
bind_addr = "0.0.0.0:2333"
[server.services.mc-be]
token = "mc-be-token"
type = "udp"
bind_addr = "0.0.0.0:19132"
# client.toml
[client]
remote_addr = "myserver:2333"
[client.services.mc-be]
token = "mc-be-token"
type = "udp"
local_addr = "mc:19132"
# docker-compose.yaml > services > tunnel
tunnel:
depends_on:
- mc
image: rapiz1/rathole
restart: unless-stopped
command: ["--client", "/app/client.toml"]
tty: true
volumes:
- /mc-be/client.toml:/app/client.toml