Replitで24時間起動するDiscordボットの作り方(2025最新)

Replitはブラウザ上で簡単にコードを実行できる便利なプラットフォームですが、無料プランの場合、一定時間アイドル状態が続くとプロジェクトが自動的にスリープ状態になり、ボットが停止してしまいます。そこで、ボットを24時間稼働させるための方法として、「Uptime Robot」を使った方法をご紹介します。この方法を使うと、Replitのボットをスリープさせずに常に動作させることができます。

1. ReplitでボットをWebサーバーとして動作させる

Replitの無料プランでボットを24時間稼働させるためには、ボットをWebサーバーとして動作させる必要があります。これを行うために、Pythonの軽量Webフレームワーク「Flask」を使います。

1.1 Flaskをインストール

まず、Flaskをインストールします。Replitのパッケージマネージャを使って簡単にインストールできます。

  1. Replitの左側の「Packages」タブを開き、検索バーに「Flask」と入力します。
  2. 「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にサインイン

  1. Uptime Robotの公式サイトにアクセスして、アカウントを作成またはサインインします。

3.2 新しいモニターを設定

  1. ダッシュボードで「Add Monitor」ボタンをクリックします。
  2. 「Monitor Type」を「HTTP(s)」に設定します。
  3. 「URL (or IP address)」に、ReplitのWebサーバーのURL(https://your-repl-name.replit.app)を入力します。
    • 例: https://mydiscordbot.replit.app
  4. 「Monitoring Interval」を選択します(例えば、5分ごと)。
  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時間稼働させたい場合は、この方法を試してみてください!

コメントを送信