つれづれなるままに日々の色々なことを綴ります

【Discord.py】Railwayのテンプレを改造して初心者でも楽にDiscord botを常時稼働させる

はじめに

discord.pyを使用して、Discord botを制作しています。 今回、botをRailwayに投げ込み常時稼働させて見たいと思います。 なお、執筆者は大変プログラミング初心者です。 何か間違ってたら教えてください。

あらかじめ必要なもの

  • きちんと動作しているDiscord.pyのファイル
  • Githubのアカウント

この記事に向いている人

  • ネット記事を見ながら見よう見まねで作ったbotを常時稼働させて見たい人
  • デプロイとか何すればいいかよくわからない人

Railwayに会員登録する

公式サイトにアクセスして会員登録しましょう。 Githubと連携させて登録します。

Railway公式のDiscordbotテンプレートプロジェクトを自分のGithubに持ってくる

RailwayのDiscord botテンプレートページにアクセスします。

Repository details

自分のGithubアカウントが認識されているか確認して見てください。 プライベートリポジトリにしたい場合はチェックを入れます。

Environment variables

「DISCORD_TOKEN」を記入します。TOKENはDiscordのdeveloperページから確認できます。

上記2つを記入したら右下の「Deploy」ボタンをクリックします。

main.pyの中身を制作していたDiscord botファイルで書き換える

2がうまくいっていたら、Githubにレポジトリが1つ増えているはずです。

該当レポジトリを開き、「main.py」に、あらかじめ制作していたDiscord botファイルをコピペしましょう。 もし元々のファイルにTOKENをそのまま記載していたら消し去っておき、環境変数から呼び出すようにしておこう。。。(n敗)

client.run(os.environ["DISCORD_TOKEN"])

また、デフォルトでmain.pyが起動するよう、Railway側で設定されているようなので、特にこだわりがなければmain.pyの名前のままがいいと思います。

必要に応じて「requirements.txt」の中身を書き換える

もし特別なパッケージを使っている場合は、この中身も増やしておかないと後々エラーを吐きます。

Railwayに戻りDeployする

Githubに変更をコミットすれば、自動でRedeployが走ります。もし真っ赤っかな表示になって失敗している時は「Build logs」や「Deploy logs」を見て原因を探って見てください。

オンライン表示になってDeploy成功!

オンラインになった時の起動メッセージが送信されています。これで常時稼働させられるようになりました。

おわりに

デプロイするために必要なファイルとか全く知らなかったので、テンプレをそのまま流用することで比較的楽に常時稼働に辿り着けました。(それでもTOKEN周りで一度詰まってますが・・・)

なお、Railwayは無料プランに制限があるので、どうすればいいかまだまだ検討中です。

参考記事

zenn.dev

zenn.dev

ikayome.hateblo.jp

と 相談に乗ってくれた有識者友人