Discord Botをレンタルサーバーで動かす!

5v5の爆破ゲーム(VALORANT)にてMAP BANの優先権獲得のためDiscordのBot機能を利用していました。
某配信者が「ダイスで0出したんだけど…」

筆者「これやりてえな。ほしい。」

Discord Bot作成したので共有します。

一応スペック

  • 言語:JavaScript
  • サーバー:お名前ドットコムRSプラン
  • Discord bot名:app.js

「Discord Bot作成」と調べると複数記事がヒットして、わかりやすいものが多かったです。

そちらを参考にしていただいても構いません。
(最後にこちらで使用したソースを記載します。)

こちらでは主にレンタルサーバーで常時起動させる方法について記載します。

  1. レンタルサーバーへSSH接続
  2. node16のインストール
  3. Discord.jsのインストール
  4. 起動方法
  5. おまけ

注意!
レンタルサーバーで動かす際には、config.jsonはpublic_html上には載せないように!!

Discordのkey情報が全世界へ出てしまいます。

レンタルサーバーへSSH接続

今回はお名前ドットコムのレンタルサーバーへSSH接続します。

接続方法:https://www.onamae-server.com/guide/vps/ssh_connect/

node16のインストール

なぜnode16を利用するかというとnode18以降であるとJavaScriptの規格が変わってしまい、エラーが発生してしまうのでnode16で動かすようにしました。

レンタルサーバーにnodejsのインストールを行います。
方法はさまざまありますが、今回はnvmでやりました。

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash

“nvm -v”を行ってバージョンが出ていれば問題ないです。その後以下コマンドでnode16のインストールを行います。

nvm install v16.20.0

インストールしたバージョンを利用するために以下コマンドを実行します。

nvm use v16.20.0

Discord.jsのインストール

Discord.jsとは、Discord上にてJavaScriptで作ったものを動かすことができるようになるようなモジュールになります。

npm install discord.js

上記コマンドでモジュールのインストールを行います。

これがないと動かないので確実に行うようにしましょう。

起動方法

最後にBotを起動させてみましょう。

node app.js

これでDiscordを開くとbotを利用することができるようになっていると思います。

しかし、これでは時間経過でログアウトされ、動かなくなってしまいます。

ここで使うのがforeverになります。
foreverが動かない場合はインストールを行います。

npm install -g forever

スタートするには以下のコマンドを実行します。

forever start app.js

これで動くようになっていると思います。

停止する場合は以下です。

forever stop app.js

おまけ

今回私が作成したdice botは以下になります。

完成形

discord/
├ commands/
│└ dice.js
├ config.json
├ deploy-commands.js
└ index.js

node index.js

上記でログインを行います。

node deploy-commands.js

上記でコマンドの登録を行います。

上記により、時間経過でログアウトすることなく、コマンドを動かすことができます。