ReplitでDiscordBotを作る基本と常時起動

こんにちは、ミンビズ運営のミナトです。
Replitの無料環境は、アクセスがない時間が続くとスリープしやすく、DiscordBotを置くだけで24時間365日安定するとは限りません。ReplitでDiscordBotを24時間365日動かしたい人ほど、作り方だけでなく、Secretsでのトークン管理や常時起動の限界まで見ておくと安心ですよ。
UptimeRobotで定期アクセスする方法や、Google Apps Scriptで常時起動を補助する考え方はありますが、無料運用にはダウンタイムが残る可能性もあります。自販機Botや記録Botのように止まると困る用途なら、どこまでReplitで足りるのかを先に整理しておきたいところです。
この記事のポイント
- ReplitでDiscordBotを作る基本手順
- Node.jsとPythonの選び方
- Secretsでトークンを守る方法
- 無料常時起動の注意点
ReplitでDiscordBotを作る基本

この章の主な見出し
- Replitでできること
- Botアカウントの作成
- Node.jsとPythonの違い
- Secretsでトークン管理
- 記録Botに必要な権限
Replitは、ブラウザ上でコードを書いて、そのまま実行できる開発環境です。DiscordBotを作るときは、自分のPCにNode.jsやPythonを細かく入れなくても始めやすいので、最初の練習環境として使いやすいサービスかなと思います。
ただし、BotはDiscordのトークンを扱うため、公開してはいけない情報の管理がかなり大事です。作り始める前に、Replitで何ができるのか、Botアカウントの準備、言語選び、Secretsの使い方、記録Botで必要になりやすい権限を順番に押さえていきましょう。
関連リンク
Replitでできること

Replitは、クラウド上で使える開発環境です。ざっくり言うと、ブラウザを開くだけでコードを書き、パッケージを入れ、実行結果を確認できます。DiscordBotを作る場合、Node.jsならdiscord.js、Pythonならdiscord.pyのようなライブラリを使ってBotを動かす形になります。
初心者にとって便利なのは、環境構築の手間が少ないことです。自分のPCに開発環境を作る場合、Node.jsやPythonのバージョン、ライブラリのインストール、実行コマンドなどでつまずくことがあります。Replitなら、テンプレートを選んでReplを作るだけで、ある程度すぐコードを書き始められます。
✅ ReplitでDiscordBot作成時にできること
| 項目 | 内容 | 初心者向けの見方 |
|---|---|---|
| コード編集 | ブラウザでファイルを編集 | PCへの環境構築が少ない |
| 実行 | Runボタンや設定コマンドで起動 | 動作確認しやすい |
| パッケージ追加 | discord.jsなどを導入 | ライブラリ管理がしやすい |
| Secrets管理 | トークンを非公開で保存 | 直書き事故を防ぎやすい |
| Webサーバー起動 | 外部アクセス用URLを作れる | 常時起動対策に使える |
一方で、Replitは本格的な本番サーバーとまったく同じではありません。無料プランではスリープや停止が起きる可能性があり、長時間の安定運用には向き不向きがあります。まずは開発・検証用として使い、止まると困るBotは別の運用方法も検討するのが現実的です。
また、Replitの画面構成や無料枠の条件は変わることがあります。ボタン名やプラン条件まで含めて正確な情報は公式サイトをご確認ください。特に常時起動や公開範囲に関わる部分は、作成時点の仕様を見ておくと安心ですよ。
関連リンク
Botアカウントの作成

DiscordBotを動かすには、先にDiscord Developer PortalでBot用のアプリケーションを作ります。通常は、New Applicationでアプリを作成し、BotメニューからBotを追加し、トークンを発行する流れです。このトークンが、BotをDiscordへログインさせるための重要な鍵になります。
ここで一番大事なのは、Botトークンを人に見せないことです。トークンが漏れると、第三者があなたのBotとして動かせてしまう可能性があります。Replitのコード上に直接書くのではなく、後で説明するSecretsに保存して、コード側では環境変数として読み込む形にします。
✅ Bot作成前に準備するもの
| 準備するもの | 何に使うか | 注意点 |
|---|---|---|
| Discordアカウント | Developer Portalへ入る | 普段使うアカウントで可 |
| Application | Botの管理単位 | 名前は後から調整可能 |
| Botトークン | プログラムのログイン用 | 絶対に公開しない |
| Client ID | Bot招待URLなどで使用 | Secretsに入れる場合もある |
| サーバー権限 | Botを追加するため | 管理権限が必要な場合あり |
Botをサーバーに招待するには、必要な権限を選んだ招待URLを作ります。最初から強い権限をすべて付けるより、Botの目的に必要な範囲に絞る方が安全です。たとえば、メッセージに反応するだけなら、管理者権限まで不要なケースもあります。
Discord側では、Botが読み取れる情報を制限するための設定もあります。特にメッセージ内容を扱うBotでは、Intentの設定が関係します。記録Botや自動返信Botを作る場合は、Discord Developer Portal側とコード側の両方で必要な設定をそろえる必要があります。
関連リンク
Node.jsとPythonの違い

ReplitでDiscordBotを作る場合、よく使われる選択肢はNode.jsとPythonです。Node.jsではdiscord.js、Pythonではdiscord.pyが代表的です。どちらもBotは作れますが、サンプル記事や解説の多さ、今後作りたい機能によって選び方が変わります。
Node.jsは、DiscordBotの作例が多く、スラッシュコマンドやイベント処理の情報も見つけやすい印象です。JavaScriptに触れたことがある人、Web系の副業や開発にもつなげたい人なら、Node.jsで始めるメリットがあります。ReplitでもNode.jsテンプレートを選んで作る流れがよく紹介されています。
✅ Node.jsとPythonの比較
| 観点 | Node.js | Python |
|---|---|---|
| 主なライブラリ | discord.js | discord.py |
| 向いている人 | JavaScriptに慣れたい人 | Pythonに慣れたい人 |
| 作例の多さ | DiscordBot系で多い | 初心者向けも多い |
| Webサーバー併用 | expressなどを使う | Flaskなどを使う |
| 学習の広がり | Web開発に広げやすい | 自動化やデータ処理に広げやすい |
Pythonは、文法が比較的読みやすく、自動化やデータ処理にも広げやすい言語です。DiscordBotではdiscord.pyを使い、Flaskで簡単なWebサーバーを立てて、UptimeRobotなどからアクセスを受ける構成がよく見られます。Pythonをすでに少し触っているなら、無理にNode.jsへ変える必要はありません。
どちらを選ぶか迷うなら、手元にある解説と同じ言語で始めるのが一番スムーズです。Node.jsの記事を見ながらPythonで作る、またはその逆をやると、ファイル名や書き方が混ざってつまずきやすいです。最初の1体は、サンプル通りに動かすことを優先して大丈夫ですよ。
Secretsでトークン管理

ReplitでDiscordBotを作るときに、もっとも注意したいのがトークン管理です。Botトークンは、プログラムをDiscordへログインさせるための鍵なので、コードへ直接書くのは避けます。ReplitではSecretsを使い、トークンを環境変数として保存する形が基本です。
Secretsに登録すると、コード上ではprocess.env.DISCORD_TOKENやos.getenv("DISCORD_TOKEN")のように読み込めます。これなら、コードを見られてもトークンそのものは表示されにくくなります。過去の解説では.envを使う例もありますが、ReplitではSecretsを使う前提で考えた方が分かりやすいです。
✅ Secretsに入れることが多い情報
| キー名の例 | 中身 | 使い道 |
|---|---|---|
| DISCORD_TOKEN | Botトークン | Discordへのログイン |
| DISCORD_CLIENT_ID | Client ID | コマンド登録や招待URL |
| GAME_NAME | 表示ステータス名 | Botの表示設定 |
| LOG_CHANNEL_ID | ログ用チャンネルID | 記録Botの送信先 |
注意したいのは、Secretsに入れたから絶対安全という意味ではないことです。コンソールにトークンを表示するコードを書いたり、スクリーンショットにSecretsの中身が写ったりすれば漏れる可能性があります。トークンを扱う画面は、共有前に必ず確認してください。
もしトークンを公開してしまった可能性がある場合は、Discord Developer Portalでトークンを再生成する対応が必要です。古いトークンは使えなくなりますが、漏えいした鍵を放置するより安全です。Botが突然動かなくなった場合も、Secretsのキー名ミスやトークン更新漏れはよくある確認ポイントです。
記録Botに必要な権限

記録Botは、サーバー内のメッセージやリアクション、入退室、特定チャンネルの投稿などを記録するBotです。ただし、何を記録するかによって必要な権限が変わります。最初に「何を残したいのか」を決めてから、Discord側の権限とコード側のIntentを合わせるのが大事です。
たとえば、メッセージを記録したい場合は、Botが対象チャンネルを見られること、メッセージ履歴を読めること、必要に応じてメッセージ内容を取得できることが関係します。リアクションを記録するなら、リアクション関連のイベントを受け取れる設定が必要です。ここがずれていると、Botはオンラインでも何も反応しません。
✅ 記録Botで確認したい権限
| やりたいこと | 主に見る設定 | 注意点 |
|---|---|---|
| 投稿を記録 | チャンネル閲覧、メッセージ履歴 | 非公開チャンネルは別途権限確認 |
| リアクション記録 | リアクション関連イベント | 対象メッセージの取得が必要な場合あり |
| ログ送信 | メッセージ送信 | ログ用チャンネルを分けると管理しやすい |
| 入退室記録 | メンバー関連Intent | Developer Portal側の設定も確認 |
| コマンド受付 | アプリコマンド設定 | discord.jsのバージョン差に注意 |
記録Botでは、サーバー参加者の発言や行動に関わる情報を扱うことがあります。運用する場合は、管理者だけでなく、サーバールールとして「何を記録するか」を明示しておく方がトラブルを避けやすいです。必要以上に個人情報を集めない設計にしておくのも大切です。
最初のテストでは、専用のテストチャンネルを作ると安全です。本番チャンネルでいきなり動かすと、ログが大量に流れたり、Botが想定外の投稿に反応したりすることがあります。小さく動かして、ログの出方、権限不足のエラー、Secretsの読み込みを確認してから広げるのがおすすめです。
ReplitのDiscordBotを常時起動

この章の主な見出し
- UptimeRobotの使い方
- Googleで常時起動する方法
- 24時間稼働の注意点
- 無料運用のダウンタイム
- Coreでも止まる可能性
- ReplitとDiscordBotのまとめ
ReplitでDiscordBotを動かすとき、多くの人が気になるのが「ブラウザを閉じても動き続けるのか」です。結論から言うと、無料環境に置くだけで安定した24時間稼働を期待するのは少し危ないです。
常時起動っぽく見せる方法として、UptimeRobotやGoogle Apps Scriptで定期的にWebサーバーへアクセスするやり方があります。ただし、これは完全なサーバー運用の代わりではなく、スリープを減らすための補助策として見るのが現実的です。
UptimeRobotの使い方

UptimeRobotは、指定したURLへ定期的にアクセスして、Webサイトが動いているか確認する監視サービスです。ReplitのDiscordBotでは、Bot本体とは別に簡単なWebサーバーを立て、そのURLへUptimeRobotからアクセスしてもらう形で使われます。
流れとしては、Replit側でExpressやFlaskなどを使ってWebサーバーを立てます。Node.jsならExpress、PythonならFlaskがよく使われます。アクセスされたときに「Bot is alive」のような短い文字を返すだけでも、監視先としては使えます。
✅ UptimeRobot設定の基本項目
| 設定項目 | 入れる内容 | 見るポイント |
|---|---|---|
| Monitor Type | HTTP(s) | ReplitのWeb URLを監視する |
| Friendly Name | 任意の名前 | Bot名など分かりやすくする |
| URL | ReplitのWebサーバーURL | Webviewなどで表示されるURL |
| Interval | 5分など | 無料枠の最短間隔は変わる可能性あり |
| Alert Contact | 通知先 | 止まった時に気づきやすくする |
UptimeRobotを使うと、ReplitのWebサーバーへ定期アクセスできます。ただし、アクセスしているのはWebサーバー部分であって、DiscordBot本体の動作を完全に保証するものではありません。BotがDiscord側でエラーを出して止まっている場合、Webサーバーだけ生きているように見えることもあります。
そのため、UptimeRobotを使うなら、ReplitのコンソールログやDiscord側のオンライン表示もあわせて確認した方がいいです。無料枠の条件や監視間隔は変わることがあるため、正確な情報は公式サイトをご確認ください。
Googleで常時起動する方法

Googleで常時起動する方法としてよく出てくるのは、Google Apps Scriptを使ってReplitのURLへ定期アクセスするやり方です。Google検索で何かを操作するわけではなく、Google Apps Scriptの時間トリガーを使って、ReplitのWebサーバーにアクセスするイメージです。
仕組みはUptimeRobotと近いです。Replit側でWebサーバーを立ててURLを用意し、Google Apps Script側でそのURLにアクセスする処理を作ります。さらに時間ベースのトリガーを設定して、数分おきに自動実行する流れです。
✅ Google Apps Script利用時の見方
| 項目 | 内容 | 注意点 |
|---|---|---|
| URL設定 | ReplitのWebサーバーURLを指定 | URL変更時は修正が必要 |
| トリガー | 時間ベースで実行 | 間隔はGoogle側の仕様に左右される |
| 複数URL | 複数BotのURLを並べる例もある | 管理が雑だと止まりやすい |
| ログ確認 | 実行履歴を見る | 失敗が続いていないか確認 |
| 安定性 | スリープ対策の補助 | 24時間保証ではない |
この方法のメリットは、外部監視サービスを使わずに定期アクセスを作れることです。すでにGoogleアカウントを使っている人なら、設定のハードルもそこまで高くありません。複数のReplit URLをまとめてアクセスする例もあります。
ただし、Google Apps Scriptにも実行制限やトリガーの仕様があります。ずっと同じ間隔で必ず動く、と断定して使うのは避けたいところです。止まると困るBotなら、Google Apps Scriptだけに頼らず、ログ監視や別サーバーへの移行も選択肢に入れておくと安心です。
24時間稼働の注意点

DiscordBotを24時間稼働させたい場合、まず考えるべきなのは「止まったらどれくらい困るか」です。友人サーバーの簡単な返信Botなら、たまに止まっても手動で起動し直せば済むかもしれません。一方で、記録Botや通知Botのように抜け漏れが困る用途では、無料運用だけに頼るのは不安が残ります。
Replitで常時起動を目指す場合は、Webサーバー、定期アクセス、Bot本体のエラー処理をセットで見る必要があります。Webサーバーが起動していても、Discordとの接続が切れていればBotとしては使えません。ここ、けっこう見落としやすいです。
✅ 用途別の運用判断
| Botの用途 | 止まった時の影響 | Replit無料運用の向き不向き |
|---|---|---|
| 練習用Bot | 低い | 向いている |
| 自動返信Bot | 中くらい | 小規模なら検討可 |
| 記録Bot | 高め | ログ欠損に注意 |
| 通知Bot | 高め | 代替通知も考えたい |
| 業務・販売系Bot | 高い | 専用サーバー検討が無難 |
また、DiscordBotはDiscord APIの制限にも注意が必要です。短時間に大量アクセスしたり、同じ処理を何度も繰り返したりすると、制限に引っかかる可能性があります。エラー時に無限再起動するような作りにすると、かえって不安定になることもあります。
24時間稼働を目指すなら、最初から大きく作り込むより、まずは小さく動かしてログを見るのがおすすめです。起動時刻、停止時刻、エラー内容、再起動の有無を残しておくと、Replit側の問題なのか、コード側の問題なのか切り分けやすくなります。
無料運用のダウンタイム

無料運用で一番気をつけたいのは、ダウンタイムがゼロとは限らないことです。UptimeRobotなどでアクセスを続けても、Replit側のスリープ、メンテナンス、接続切れ、Discord API側の制限などでBotが止まる可能性はあります。
過去の検証例では、ReplitとUptimeRobotを組み合わせても、短い停止だけでなく、ある程度まとまった停止が出たケースが紹介されています。一方、有料のAlways On系の設定では停止回数や停止時間が減ったという検証もあります。ただし、これは特定時点・特定環境の結果なので、今のあなたの環境で同じになるとは限りません。
✅ 無料運用で起きやすい問題
| 問題 | 起きるとどうなるか | 対策の考え方 |
|---|---|---|
| Replitのスリープ | Botがオフラインになる | 定期アクセスで軽減 |
| Discord接続切れ | Webは生きてもBotが反応しない | エラーログを確認 |
| URL変更 | 監視先がずれる | UptimeRobotやGASを更新 |
| Rate Limit | APIアクセスが制限される | 無駄な再接続を減らす |
| ログ欠損 | 記録が抜ける | 重要用途は別環境も検討 |
無料運用は、練習や個人用の小さなBotにはかなり便利です。費用を抑えて動作確認できるのは大きいですよね。ただ、無料である以上、稼働保証やサポートの範囲には限りがあります。
特に記録Botの場合、停止中のイベントは拾えないことがあります。あとから「その時間だけログがない」と気づいても、取り戻せないケースがあります。ログの欠損が困る用途なら、Replit無料運用は検証用にして、本番はより安定したサーバーを検討するのが堅実です。
Coreでも止まる可能性

Replit Coreのような有料プランを使えば、無料より快適になる可能性はあります。ただし、Coreを契約しただけでDiscordBotが自動的に24時間365日動き続ける、と決めつけるのは危ないです。プラン名や機能名、Always On相当の設定は時期によって変わることがあります。
調べた範囲では、Coreを購入しても常時稼働の設定が見つからない、外部のpingサービスを使っても期待通りに動かない、という相談も見られました。Replit Agentで作ったプロジェクトの場合、通常のReplと挙動や設定場所が違って見えることもあるようです。
✅ Core利用時に確認したいこと
| 確認項目 | 見る理由 |
|---|---|
| 常時起動機能の有無 | プランだけで有効になるとは限らない |
| Repl設定 | Always On系の項目があるか見る |
| 実行ファイル名 | main.pyやindex.jsなど起動対象を確認 |
| Webサーバー | 外部アクセスを受けられるか確認 |
| サポート情報 | 最新仕様は公式に確認する |
有料プランを使う場合でも、Bot本体の作りが不安定なら止まります。例外処理がない、トークンが読めていない、Intentが足りない、依存ライブラリのバージョンが合っていない、といった問題はプラン変更だけでは解決しません。
Coreを検討するなら、先に「無料環境で何が原因で止まっているのか」を見ておくと判断しやすいです。Replit側のスリープが原因なのか、コードのエラーなのか、Discord側の設定なのかで対策が変わります。正確なプラン条件は変動しやすいので、最終的にはReplit公式の料金・機能ページをご確認ください。
ReplitとDiscordBotのまとめ

Replitは、DiscordBotを作り始める環境としてかなり使いやすいです。ブラウザだけでコードを書けて、Node.jsやPythonのテンプレートも選べるため、最初のBot作成や学習には向いています。
一方で、常時起動まで含めると話は少し変わります。UptimeRobotやGoogle Apps Scriptで定期アクセスする方法はありますが、完全な24時間稼働を保証する方法ではありません。止まると困るBotほど、無料運用の限界を前提に設計した方が安全です。
✅ ReplitとDiscordBotの要点
- ✅ ReplitはDiscordBotの開発・テスト環境として始めやすいです
- ✅ 常時起動にはWebサーバーと定期アクセスの仕組みがよく使われます
- ✅ UptimeRobotやGoogle Apps Scriptはスリープ対策の補助として考えます
- ✅ 無料運用ではダウンタイムやログ欠損の可能性があります
- ✅ Coreなど有料プランでも設定や仕様確認は必要です
- ✅ 記録Botや通知Botなど重要用途は安定した別環境も検討したいです
あなたがこれから作るBotが練習用なら、まずはReplitで動かしてみるのがいいかなと思います。作って、動かして、止まる条件を見ていくと理解が早いです。
逆に、サーバー運営や仕事の通知に使うなど、止まると困る用途なら、Replitだけに寄せすぎない方が安心です。最初はReplitで試し、必要になったらVPSやクラウド環境へ移す、という段階的な進め方が現実的ですよ。
記事作成にあたり参考にさせて頂いたサイト- Repl.it を使った Discord Bot の構築と運用(無料) – Qiita
- 【初心者向け】Repl.itでDiscordのBotを作る|鮎月さんの日常
- Reddit – Please wait for verification
- 【2025最新】Discordのbotを完全無料で24時間365日運用する方法|225
- 【v14】discordjsのすゝめ 第2回「Replitでbotを起動する」 – ひぃの雑多書き
- Discover | Replit
- GitHub – MasyoLab/DiscordBot-LoginKeeper: DiscordBot のログインを維持するぞい · GitHub
- Replit Core purchase: No constant runtime for Discord bot? – Discord bot – Latenode Official Community
- youtube.comの記事
- Reddit – Please wait for verification
各サイト運営者様へ
有益な情報をご公開いただき、誠にありがとうございます。
感謝の意を込め、このリンクはSEO効果がある形で設置させていただいております。
※リンクには nofollow 属性を付与しておりませんので、一定のSEO効果が見込まれるなど、サイト運営者様にとってもメリットとなれば幸いです。
当サイトは、インターネット上に散在する有益な情報を収集し、要約・編集してわかりやすくお届けすることを目的としたメディアです。
引用や参照の方法に不備、あるいはご不快に感じられる点がございましたら、お問い合わせフォームよりご連絡ください。
今後とも、どうぞよろしくお願いいたします。
各サイト運営者様へ
有益な情報をご公開いただき、誠にありがとうございます。
感謝の意を込め、このリンクはSEO効果がある形で設置させていただいております。
※リンクには nofollow 属性を付与しておりませんので、一定のSEO効果が見込まれるなど、サイト運営者様にとってもメリットとなれば幸いです。
当サイトは、インターネット上に散在する有益な情報を収集し、要約・編集してわかりやすくお届けすることを目的としたメディアです。
引用や参照の方法に不備、あるいはご不快に感じられる点がございましたら、お問い合わせフォームよりご連絡ください。
今後とも、どうぞよろしくお願いいたします。


