Replitで24時間起動するDiscordボットの作り方(2025最新)
Replitはブラウザ上で簡単にコードを実行できる便利なプラットフォームですが、無料プランの場合、一定時間アイドル状態が続くとプロジェクトが自動的にスリープ状態になり、ボットが停止してしまいます。そこで、ボットを24時間稼働させるための方法として、「Uptime Robot」を使った方法をご紹介します。この方法を使うと、Replitのボットをスリープさせずに常に動作させることができます。
1. ReplitでボットをWebサーバーとして動作させる
Replitの無料プランでボットを24時間稼働させるためには、ボットをWebサーバーとして動作させる必要があります。これを行うために、Pythonの軽量Webフレームワーク「Flask」を使います。
1.1 Flaskをインストール
まず、Flaskをインストールします。Replitのパッケージマネージャを使って簡単にインストールできます。
- Replitの左側の「Packages」タブを開き、検索バーに「Flask」と入力します。
- 「Flask」を選択してインストールします。
または、ターミナルで以下のコマンドを入力してもインストールできます:
bash
コピーする
pip install Flask
2. ボットのコードをWebサーバーとして設定
次に、作成したDiscordボットにWebサーバーを組み込むために、Flaskを使って簡単なサーバーを立てます。以下のコードを参考にしてください。
python
コピーする
import discord
from discord.ext import commands
from flask import Flask
import threading
# Flaskアプリケーションを作成
app = Flask(__name__)
# ボットの設定
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix=”!”, intents=intents)
# ボットが起動したときのイベント
@bot.event
async def on_ready():
print(f’Logged in as {bot.user}’)
# メッセージを受け取ったときのイベント
@bot.event
async def on_message(message):
if message.author == bot.user:
return
if message.content.startswith(‘!hello’):
await message.channel.send(‘こんにちは!’)
await bot.process_commands(message)
# Flaskルート設定
@app.route(‘/’)
def home():
return “Discord Bot is running!”
# Flaskサーバーをバックグラウンドで起動する関数
def run_flask():
app.run(host=’0.0.0.0′, port=5000)
# Flaskサーバーを別スレッドで実行
threading.Thread(target=run_flask).start()
# ボットのトークンを使って起動
bot.run(‘YOUR_BOT_TOKEN’)
2.1 コードの解説
- Flaskのインスタンスを作成し、簡単なHTTPサーバーを立ち上げています。
- / ルートにアクセスすると、「Discord Bot is running!」というメッセージが表示されます。このページに定期的にアクセスすることで、Replitのプロジェクトがスリープ状態にならないようにします。
- threadingを使って、FlaskサーバーとDiscordボットを並行して動かします。これで、Discordボットの機能を提供しつつ、Webサーバーも稼働します。
3. Uptime Robotで定期的にWebサーバーを監視
次に、Uptime Robotというサービスを使用して、Webサーバーを定期的に監視します。Uptime Robotは指定したURLを一定間隔でアクセスするサービスで、これを使うことでReplitのサーバーがスリープ状態に入らないようにします。
3.1 Uptime Robotにサインイン
- Uptime Robotの公式サイトにアクセスして、アカウントを作成またはサインインします。
3.2 新しいモニターを設定
- ダッシュボードで「Add Monitor」ボタンをクリックします。
- 「Monitor Type」を「HTTP(s)」に設定します。
- 「URL (or IP address)」に、ReplitのWebサーバーのURL(https://your-repl-name.replit.app)を入力します。
- 例: https://mydiscordbot.replit.app
- 「Monitoring Interval」を選択します(例えば、5分ごと)。
- 「Create Monitor」ボタンをクリックします。
これで、Uptime Robotは指定した間隔でReplitのWebサーバーにアクセスし、Replitのプロジェクトがスリープ状態にならないようにしてくれます。
4. ボットを24時間稼働させる
Uptime Robotが定期的にReplitのサーバーを監視してくれるおかげで、ボットが24時間稼働し続けることができます。
- ボットのコードはReplitで動作しており、Flaskサーバーが常にリクエストを待機しているため、Uptime Robotがアクセスすることでプロジェクトがスリープ状態になりません。
- これで、ボットは24時間365日稼働し続けます。
5. 注意点
- 無料プランの制限:Replitの無料プランでは、リソースに制限があります。ボットが長時間稼働し続ける場合、リソースが不足することがあります。この場合、Replitの有料プランにアップグレードすることも検討できます。
- ボットの動作:Uptime Robotで定期的にリクエストを送信するため、非常に高い頻度でのリクエストが発生しないよう、設定に注意してください。無料プランで使用する場合、1分ごとの監視は避け、5分以上の間隔を設定することをお勧めします。
結論
これで、Replitを使ってDiscordボットを24時間稼働させる方法が完了です。Uptime Robotを使うことで、Replitの無料プランでもスリープ状態に入ることなく、ボットを常にオンラインに保つことができます。手軽にボットを24時間稼働させたい場合は、この方法を試してみてください!
コメントを送信