repl.itで動かす(無料) - tetsuya-ki/discord-bot-heroku GitHub Wiki
概要
- repl.itとuptime robotを使用し、無料で24時間(ダウンタイムはあるらしい...1日数分くらい)動かす方法について解説
使用するもの
- repl.it
- サーバーを動かすところ(Herokuと違ってクレジットカードは不要)
- ただし、無料版だと他人からもソースが見られてしまうので
.env
の取り扱いには注意
- uptime robot
- サーバーが休止しないようにアクセスするbot
前提
- gitについて簡単に理解していること
- discord Botアカウントを作成し、アクセストークンを取得していること
- 前述のBotアカウントが自分の管理するDiscordのギルドに招待されていること
- repl.itとGitHub連携でソースをもってくること
手順(簡単)
repl.itのFork機能でやる
下記リンクを開き、右の方にある「Fork」というボタンを押す。
https://replit.com/@tetsuyaki/discord-bot-heroku#readme.md
My replsにコピーされる
poetryを使えるようにする
pip install poetry
起動準備 以降はおなじ
手順(自分でやる)
repl.itで新しいreplを作成する
git clone
でブランチを指定してクローンする
shellタブにし、git clone -b for-replit https://github.com/tetsuya-ki/discord-bot-heroku
keep_alive.pyを作成(上記ブランチで対応済のため、不要)
- uptime robotからアクセスされるサーバーをflaskで作成
# file name is keep_alive.py
from flask import Flask
from threading import Thread
app = Flask('')
@app.route('/')
def main():
return "Your bot is alive!"
def run():
app.run(host="0.0.0.0", port=8080)
def keep_alive():
server = Thread(target=run)
server.start()
assitantbot.pyを修正(前項で作成したflaskを起動する)(上記ブランチで対応済のため、不要)
# 先頭に下記を追加
import keep_alive
# 「# AssitantBotのインスタンス化および起動処理。」というコメントの周辺、 bot〜と書かれている直前に以下の行を挿入
# start a server
keep_alive.keep_alive()
bot = AssistantBot(
# ...
botやflaskの依存関係解消(上記ブランチで対応済のため、不要)
- 依存関係については
poetry
で対応(他だと思うように動かなかったため)
ディレクトリ階層が違う点について対処など
~/test-dbh$ rm main.py
~/test-dbh$ cd discord-bot-heroku/
~/test-dbh/discord-bot-heroku$ mv * ../
~/test-dbh/discord-bot-heroku$ mv .* ../
~/test-dbh/discord-bot-heroku$ cd ..
~/test-dbh$ rmdir discord-bot-heroku/
起動準備
start.shの実行権限を与える
- ConsuleかShellで下記コマンドを実行する
chmod 755 start.sh
起動
--1. .envファイルにあるものを、Envに記載していく
- DiscordのBotトークンを記載は必須です!!
- Runボタンをクリックし、Botを起動する
- 右上がflaskで作ったサーバ(このURLで1時間?おきにアクセスしないとサーバーが止まる。後でuptime robotで5分おきにアクセスする)
- 右下がbotのログ
- 注意! 無料版ではPublicに公開されています!
- 参考:こちらで動いてるbotが見られます
https://repl.it/@tetsuyaki/discord-bot-heroku
uptime robotでアクセス
- uptime robotにアクセスし、アカウントを作成
+Add New Monitor
をクリックし、Monitor Type
をHTTP(S)
にする(色々設定が出てくる)- 以下のように設定し、アラートが欲しい場合は、チェックの上、
Create Monitor
をクリックし、監視を作成
Friendly Name*: すきな名前
URL (or IP)*: repl.itをRunした時に立ち上がったブラウザのURL (さっきの画像の場合:「https://discord-bot-heroku.tetsuyaki.repl.co」)
Monitoring Interval*: every 5 minutes
参考にしたもの(参照した順)
- Discord Pythonボットを24時間起動します。
- Hosting discord.py bots on repl.it
- Pythonとrepl.itを使って無料でDiscord Botを運用してみた
💩をつけまくってみる - 【Discord.js】repl.itとuptimerobotで24時間起動Discord Botの作り方!