Skip to content

repl.itで動かす(無料)

tetsuya-ki edited this page Aug 2, 2021 · 12 revisions

概要

  • 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を作成する

new repl

shellタブにし、git cloneでブランチを指定してクローンする

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/

prepare

起動準備

start.shの実行権限を与える

  • ConsuleかShellで下記コマンドを実行する
    chmod 755 start.sh

起動

--1. .envファイルにあるものを、Envに記載していく

  • DiscordのBotトークンを記載は必須です!! Replit's Env
  1. Runボタンをクリックし、Botを起動する repl.it
  • 右上がflaskで作ったサーバ(このURLで1時間?おきにアクセスしないとサーバーが止まる。後でuptime robotで5分おきにアクセスする)
  • 右下がbotのログ
  1. 注意! 無料版ではPublicに公開されています!

uptime robotでアクセス

  1. uptime robotにアクセスし、アカウントを作成
  2. +Add New Monitorをクリックし、Monitor TypeHTTP(S)にする(色々設定が出てくる)
  3. 以下のように設定し、アラートが欲しい場合は、チェックの上、Create Monitorをクリックし、監視を作成
Friendly Name*: すきな名前
URL (or IP)*: repl.itをRunした時に立ち上がったブラウザのURL (さっきの画像の場合:「https://discord-bot-heroku.tetsuyaki.repl.co」)
Monitoring Interval*: every 5 minutes

参考にしたもの(参照した順)