Discordで簡単に自作botを運用する方法
Discord botを24時間安定して稼働させるなら、GitHubとRailwayの連携は非常にスマートでモダンな構成です。コードをプッシュするだけで自動デプロイされる仕組みを作れるので、開発の負担がグッと減ります。JavaScript(Node.js)で構築したBotを想定した解説記事のドラフトを作成しました。ご自身のブログや備忘録、コミュニティでの共有用などにそのまま、あるいは適宜アレンジ…
Discord botを24時間安定して稼働させるなら、GitHubとRailwayの連携は非常にスマートでモダンな構成です。コードをプッシュするだけで自動デプロイされる仕組みを作れるので、開発の負担がグッと減ります。
JavaScript(Node.js)で構築したBotを想定した解説記事のドラフトを作成しました。ご自身のブログや備忘録、コミュニティでの共有用などにそのまま、あるいは適宜アレンジしてご活用ください。
Discord Botを24時間稼働!GitHub × Railway連携デプロイ完全ガイド
Discord Botを開発したものの、「自分のPCを閉じるとBotも止まってしまう」という悩みを抱えていませんか?
この記事では、クラウドサービスのRailwayとGitHubを連携させ、Botを24時間365日稼働させる方法を解説します。
一度連携してしまえば、GitHubに変更をプッシュするだけで自動的に最新版がサーバーに反映(デプロイ)されるようになり、開発体験が劇的に向上します。
🔧 準備するもの
完成したDiscord Botのコード(今回はNode.js / discord.jsを想定)
Discord Botのトークン(Developer Portalで取得済みのもの)
GitHubアカウント
Railwayアカウント(GitHub連携で簡単に作成可能)
📦 ステップ1:GitHubリポジトリの準備
まずはローカルにあるBotのコードをGitHubにプッシュします。
Railwayはリポジトリ内の設定ファイルを読み取って自動で環境を構築するため、package.jsonの記述が非常に重要です。
package.jsonを開き、scriptsの中にstartコマンドが正しく設定されているか確認してください。Railwayはこのstartコマンドを実行してBotを起動します。
JSON
{
"name": "my-discord-bot",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node index.js" // ← ここが超重要!
},
"dependencies": {
"discord.js": "^14.0.0",
"dotenv": "^16.0.0"
}
}
確認できたら、一連のコードをGitHubのパブリック(またはプライベート)リポジトリにプッシュしておきます。
🚂 ステップ2:Railwayでプロジェクトを作成
ここからRailwayでの作業になります。
Railwayの公式サイトにアクセスし、右上の「Login」からGitHubアカウントでログインします。
ダッシュボードが開いたら、「New Project」をクリックします。
メニューから「Deploy from GitHub repo」を選択します。
自分のGitHubリポジトリ一覧が表示されるので、先ほどプッシュしたBotのリポジトリを選択します。
「Deploy Now」をクリックします。
これで自動的にコードの解析とビルドが始まりますが、まだBotは動きません。大事な「トークン」を渡していないからです。
🔐 ステップ3:環境変数(トークン)の設定
Botのトークンはセキュリティ上、絶対にGitHubに直接アップロードしてはいけません。Railwayの環境変数機能を使って安全に渡します。
Railwayのプロジェクト画面で、デプロイしたサービス(箱のアイコン)をクリックします。
上部のタブから「Variables」を選択します。
「New Variable」をクリックして、以下のように入力します。
VARIABLE_NAME:
DISCORD_TOKEN(コード内で読み込んでいる変数名に合わせる)VALUE:
あなたのBotのトークン文字列
「Add」をクリックして保存します。
環境変数を追加または変更すると、Railwayは自動的に再デプロイ(サーバーの再起動)を開始します。
🚀 ステップ4:デプロイと動作確認
再デプロイが完了するのを待ちます。
サービスタブの「Deployments」を開き、最新のデプロイが「Success」になっていることを確認します。
「View Logs」をクリックして、コンソールログを確認します。
Logged in as BotName!のような、起動成功のメッセージが出力されていれば完璧です。
実際にDiscordを開き、Botがオンラインになっているか、コマンドに反応するかテストしてみましょう。
💡 今後の運用(自動デプロイ)
お疲れ様でした!これでBotの24時間稼働は完了です。
今後のアップデートは非常に簡単です。ローカルでコードを修正し、GitHubのmainブランチにプッシュするだけです。
Railwayがそれを自動的に検知し、数分後には最新バージョンのBotに勝手に切り替わります。この快適なCI/CD(継続的インテグレーション/継続的デプロイ)環境をぜひ活用して、より良いBot開発ライフを送ってください!

