Skip to content

minecraft server manager with docker/discord bot, and early/easy configration?

License

Notifications You must be signed in to change notification settings

aatomu/minecraft-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

minecraft-manager

Docker/Discord を利用した Minecraft Manager

注意:

  • 指示がなければ、manager-containerがカレントディレクトリです
  • 変数${****}はそのまま実行可能ですが <****>は随時 補足に合わせて書き換えてください

1.server の設定

1-1. Server 起動用 Java の入った Image 作成

./script/download/java.sh <Tag>

<Tag>のところはeclipse-temurin Tags | Docker Hubより探してください
docker imagesに正しい Tag のmc_javaがあれば成功です
今回は21-jdk-jammy(minecraft ver1.21.3 用)を使用して話を進めていきます

Note

./script/download_server.sh <Version> <API Token>

# assets/*に変更があったとき
./script/download_server.sh rebuild

<Version>のところは minecraft version を書いてください
レート制限に引っかかる場合、<API Token>のところに GitHub API Token を書いてください
download/<Version>/にダウンロードされたバイナリを、サーバーディレクトリにコピーしてください。

Warning

上記の機能はサポートされていません

1-2. サーバーの設定

#! Java Arguments
java="21"
jvm_arg="-Xms2G -Xmx2G"
#! Server Arguments
server_jar="server.jar"
#server_arg="--forceUpgrade --eraseCache"
#! Directory Config
server_dir="/home/atomu/servers/example_1.21.3"
backup_dir="/home/atomu/backup/example_1.21.3"
custom_dir="/home/atomu/custom"

#! SSH Config
ssh_user=""
ssh_port=""
#! Server Operation Script
script_boot=""
script_backup=""
script_backup_rsync_arg=""
script_backup_rsync_command=""
script_restore=""
#! Discord Bot Config
discord_bot_token=""
discord_admin_role=""
discord_webhook_url=""
#! Rcon/Console Config
rcon_port=""
rcon_password=""

上記のようにすべて埋めた<Server>.envconfig/に入れてください
(example.envを Copy&Modify がおすすめ)

各項目の説明:

Key Value Required
java Image 作成のときに使用した TAG true
jvm_arg java の引数 true
server_jar server.jar の名前を記入 true
server_arg server.jar の引数 false
server_dir サーバーディレクトリ true
backup_dir サーバーディレクトリのバックアップ先 false
custom_dir 特殊マウントディレクトリ false
ssh_user docker を実行している User false
ssh_port docker を実行してる User へのアクセス Port false
script_boot server を起動するスクリプトへのフルパス false
script_backup server をバックアップするスクリプトへのフルパス false
script_backup_rsync_arg server をバックアップするスクリプトへ引数 false
script_backup_rsync_command server をバックアップするスクリプトへ引数 false
script_restore server のデータ復旧するスクリプトへ引数 false
discord_bot_token discord Bot の Token false
discord_admin_role discord からコマンドを実行できるロール ID false
discord_webhook_url discord へメッセージを送る Webhook URL true
rcon_port minecraft server への Rcon アクセスポート false
rcon_password minecraft server への Rcon アクセスパスワード false

Note

server_arg=...は必要な際にコメントアウトを外してください

1-3. サーバー の起動

./script/boot_server.sh <Server>

<Server>にはサーバー名(config ディレクトリ内の<Server>.env)を入れると起動します
docker psにあれば、ログはdocker logs -f <Server>_mcで確認できるはずです
なければ、latest.logを確認します

1-4. ターミナル/Docker から MC 鯖に接続

Important

アタッチ(接続)はdocker attach -it <Server>_mc
デアタッチ(切断)はctrl+P ctrl+Q
接続した際過去のログは出ないので注意してください。

2. discordBot の準備

2-1. discord-boot.sh の設定

readonly SSH_IDENTITY="${HOME}/.ssh/minecraft-manager"
readonly CONFIG_DIR="${PWD%/*}/config"

SSH_IDENTITY: minecraft-manager で使用される SSH-key
CONFIG_DIR: discord-boot.shで使用するservers.jsonへのフルパス

Tip

基本はデフォルトで問題ありません。

2-3. Bot の起動

./script/discord-boot.sh <Server>

<Server>にはサーバー名(config ディレクトリ内の<Server>.env)を入れると起動します
ログはdocker logs -f <Server>_botで確認できるはずです
DiscordBot には以下の権限が必要です

  • Oauth2
    • bot
      • General Permissions
        • Manage Webhooks
        • View Channels
      • Text Permissions _ [x] Send Messages _ [x] Embed Links _ [x] Attach Files _ [x] Read Message History
    • applications.commands

招待リンク https://discord.com/api/oauth2/authorize?client_id=<Your Bot Client ID>&permissions=536988672&scope=bot%20applications.commands 以上で Bot 編は終わりです。

Caution

設定の変更について docker.file の変更や build を挟むような変更があった際は
各自 自分で調べて 対応する DockerImage を削除し 再度./script/***.shを実行してください

About

minecraft server manager with docker/discord bot, and early/easy configration?

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published