NorthflankでDiscord Botを無料で常時起動
NorthflankというサービスでDiscord Botを動かす方法をまとめました。
この記事で紹介するとき、日本語の記事が見つからなかったのでないなら書けばいいじゃないというマリー・アントワネット的な思考で描きました
Northflankとは
Discord Botの常時起動の方法でよく聞くHerokuと同じPaaS (Platform as a Service) にあたるサービスです。(ただし、Herokuの無料枠は廃止されています。)
GitHubやGitLabなどと連携すると、リポジトリから簡単にデプロイでき、CI/CD機能によりプッシュ時に自動でデプロイされて便利です。
Python、Ruby、Rust、PHP、TypeScript、React、Vue.jsなどが動作します。サンプルコードも用意されています。
こちらから確認できます。
Developer Sandboxプランでは、0.2 shared CPU、512MBのRAM、1GBのストレージのマシンを2つ利用できます。
言語
Python 3.11
用意するもの
- Botのリポジトリ
- クレジットカードまたはデビットカード(プリペイドカードが使えるかどうかは不明)
テストコード
このコードはこちらの記事のコードをベースに作成させていただきました。
登録
メアド、Google、GitHub、GitLab、BitBucketでの登録ができます。
自分のリポジトリを使うならGitHub、GitLab、BitBucketのどれかの方がいいです。
次に出てくるページでユーザー名を登録してしてください。(写真撮り忘れた)
ここでは2
でDeveloper Sandbox
を選んでおけばいいです。
これで登録完了です。
プロジェクト作成
まず、プロジェクトを作成します。
上のCreate New
からProject
を選択してください。
Project Name
には任意なプロジェクト名を選んで、リージョンはアメリカとイギリスの好きな方を選んでください。
これでプロジェクトは完成です。
デプロイ
いよいよDiscord Botをデプロイしていきます。
まず先ほどと同様にCreate New
を押して、今度はService
を選択してください。
Service name
には任意の名前を入れてください。
Repositry
には自分のリポジトリを選択するか、リポジトリのURLを入れてください。
GitHub等でアカウントを作っていたら自動で自分のリポジトリが選べるようになっているはずです。(違ったらすみません。)
ビルド方法にはDockerfile
とHeroku Buildpack
があるのですが、今回はDockerfile
にします。
Dockerfile
を選択するとリポジトリから自動で読み取ってポートなどの設定を自動でやってくれます。
もし自動で読み取れないならVerify
を押して読み取らせてください。
次に、Environment variables
のRuntime variables
をクリックして、環境変数を設定していきます。
Add variable
をクリックしてテストコードの場合だとKeyにDISCORD_TOKENと入れて、ValueにBotのTokenを入れてください。
jsonやenvの形式で入れることもできます。
最後にマシンのスペックを設定していきます。
Developer Sandboxプランなら2つまでnf-compute-10
でもnf-compute-20
でも無料なので特別な理由がないならnf-compute-20
に変えましょう。
そしてCreate Serivce
を押してデプロイ...って言いたいところですが支払い方法を追加していないとここでカードで認証するように言われるのでカードを追加しましょう。(プリペイドカード使えたかは覚えてません。デビットは使える。)
Developer Sandboxプランから変えなければ請求が来ることはありません。(料金改訂があるかもしれないので決済履歴や料金は定期的に見るようにしましょう。)
追加したら自動でデプロイが開始されます。
デプロイから起動までは数分程度かかるので少し待ちましょう。
Botがオンラインになりました。
おわりに
使ってみた感想として環境変数にjsonやenvが使えることや、無料枠を超えてしまう機能は警告や制限がされて請求が発生しないようになっているUIが気に入りました。
過去のデプロイのログも結構残っているのでそれも高評価。(いつまで保管されているか不明)
Northflankで半年くらいBlueskyのBotをデプロイしてますが、今の所ダウンしていることはあっても気づかないくらいしかないです。
無料枠の中では比較的高いスペックのマシンが2つ使えるので、他の用途にも使えて結構おすすめです。
最後まで読んでいただきありがとうございました。
↓Northflankで運用しているBot
Discussion