はじめに
1 年ほど前に友人同士で Among Us を楽しむために AutoMuteUs のサーバーをセルフホスティングした際のメモです。
初心者向けの記事ではなくなってしまったので、それなりに知識がある方向けの記事となっております。
また、スクリーンショットの画像が古く、現在の画面と多少異なると思いますがご容赦ください。
1. 事前の準備
1.1. Discord のサーバー管理権限を取得しておく
Discord のログインメンバーに管理者権限があるか確認します。
もし自分がサーバー作成者であれば右のように 👑 マークがあると思います。
この場合はサーバー所有者(admin) なので問題ありません。
1.2. Discord の Bot の作成
Discord Developer Portal — My Applications にアクセスして Bot を作成します。
リンクからサイトにアクセスして、New Application
から作成します。
アプリケーション名を入力して CREATE
を選択。
作成後、左側の SETTINGS
メニューから Bot
を選択します。
Build-A-Bot
から Add Bot
を選択。
Yes, do it!
を選択。
Bot が作成されました。
Click to Reveal Token
をクリックします。
表示されたトークンをコピーして保存しておきます。
後で使用します。
その後、左側の SETTINGS
メニューから OAuth2
を選択します。
遷移後、SCOPES
から Bot
を選択してチェックを入れます。
Bot の権限を設定するため BOT PERMISSIONS
に Administrator
にチェックを入れます。
先程の SCOPES
の下部の URL を Copy
してブラウザの新しいタブでリンクを開きます。
そうすると以下のような承認画面が表示されます。
AutoMuteUs を追加したいサーバーを選択します。
ここでサーバーが選択できない場合、 1.1. Discord のサーバー管理権限を取得しておく
にてサーバー管理権限が取得できていないと思われますので再度確認してください。
認証に成功すると対象のサーバーに Bot が参加します。
これにて Bot の作成と準備は完了です。
1.4. AUCapture のダウンロード
Releases · automuteus/amonguscapture から AmongUsCapture.zip
をダウンロードします。
ダウンロードしたら、 zip ファイルを展開し、中にある exe ファイルを取り出します。
このソフトはゲームプレイ時に毎回起動して利用します。
ユーザーのドキュメント
フォルダにも打ち込んでおいてデスクトップやタスクバーにショートカットをおいておくと便利かもしれません。
1.3. GCP のアカウントを作成しておく
クラウド コンピューティング サービス | Google Cloud から 無料で開始
を選択して GCP のアカウントを作成します。
GCP のアカウント作成方法は調べれば色々出てきますのでこちらの記事では割愛します。
2. インスタンス(AutoMuteUs サーバー)の作成
実際に AutoMuteUs サーバーを作成します。
インスタンスの作成からインスタンスを作成します。
変更ポイントは以下になります。
- 名前 automuteus
- リージョン us-east-1
- ゾーン us-east1-b
- マシンタイプ e2.micro
- HTTP,HTTPS トラフィックを許可する
- 自動化、起動スクリプトに以下のコードを設定
可能な限り無料枠を利用するために以下の点を工夫しました。
- 固定 IP は使用しない
us-east-1
にe2.micro
のインスタンスを作成することでCompute Engine
の無料枠を利用- ネットワークの Tier を
プレミアム
からスタンダード
に変更
起動スクリプトの YOUR_PRIMARY_BOT_TOKEN
は先程コピーしたトークン、 yourdomainishere
の部分は公開するドメインまたは IP アドレスに変更する必要があります。
自分はドメインを所持していたので、ドメインを指定、その後ドメインに対して A レコードで作成されたインスタンスのグローバル IP アドレスを設定しました。
GALACTUS_HOST
は後ほど Bot から送信される、URL のドメイン部分になります。
参考までに起動スクリプトを以下に貼っておきます。
#! /bin/bash
# install requirements
apt update
apt install -y git apt-transport-https ca-certificates curl gnupg lsb-release
# install automuteus
cd /root/ && git clone https://github.com/denverquane/automuteus.git && cd automuteus
cp sample.env .env
sed -i -e 's/AUTOMUTEUS_TAG=/AUTOMUTEUS_TAG=6.15.2/g' .env
sed -i -e 's/GALACTUS_TAG=/GALACTUS_TAG=2.4.1/g' .env
sed -i -e 's/DISCORD_BOT_TOKEN=/DISCORD_BOT_TOKEN=YOUR_PRIMARY_BOT_TOKEN/g' .env
sed -i -e 's/^GALACTUS_HOST=$/GALACTUS_HOST=https:\/\/yourdomainishere/g' .env
sed -i -e 's/^GALACTUS_EXTERNAL_PORT=$/GALACTUS_EXTERNAL_PORT=80/g' .env
# install Docker
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install -y docker-ce docker-ce-cli containerd.io
# install docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# run
docker-compose up -d
3. 実際に使用してみる
まず、AmongUs を起動します。
(今回はオレンジ色のプレイヤーでプレイしています。)
Discord のサーバー上で .au new
と入力します。
そうすると、以下のようなメッセージが表示されます。
同時に DM で以下のようなリンクが表示されるので、リンクをクリックします。
リンクをクリックすると AmongUsCapture
が起動します。
起動しない場合は、あらかじめ AmongUsCapture
ソフトを起動しておいた状態でリンクをクリックします。
(リンクのドメインはこの画像ではlocalhost
になっていますが、実際は先程構築したサーバーのグローバル IP アドレスになっているはずです。)
リンクをクリックすることで AmongUsCapture
と先ほど構築した AutoMuteUs
サーバーで接続されます。
接続されるとメッセージが変化して、以下のようになります。
ただし、この状態では AmongUs のプレイヤーと Discord のメンバーが紐付いていないので Unlinked
と表示されています。
そのため、紐付けを行うためプレイヤーの色に対応するアイコン(今回はオレンジ色のプレイヤー)をクリックします。
メンバーの紐付けが完了すると、紐付けられた Discord のメンション名に切り替わります。
ゲームを開始する前に参加プレイヤーが全員 Unlinked
になっていないか確認してください。
AmongUs のプレイを終了する際には .au end
を入力します。
おわりに
公式が提供している AutoMuteUs
サーバーはセルフホスティングすることができます。
また、GCP の無料枠を利用してサーバーを構築すれば、無料で利用することができます。
AutoMuteUs を利用したい方の参考になれば幸いです。