DiscordのMusicBot(リピート機能付き)を無料VPS+CentOS7で構築


…ほとんど他記事紹介です

でもリンク先の手順通りだと所々ハマってしまったので忘備録。初投稿。Linux初心者。

追記(2019/05/31)

現在動作確認が取れていません。
素直に公式が推奨するDebian系で構築したほうが時間の浪費にならずいいかもしれません。

追記(2020/10/26)

一部表現・コマンドを見直しました。
現在CentOS8が出ていますが、私は完全にUbuntuに乗り換えてしまったので動作確認は他の方にお任せします、、、

GCPとGCEの登録・サーバ(インスタンス)の作成

ほとんどこちらを参考にしました。

【GCP-GCE】無料で永遠に信頼出来るVPSを使用できちゃう!

ただしこのマシン、永年無料だけが取り柄でPythonをインストールすると途中でブーストが切れるために結果15分以上かかったりとかなり使い勝手は悪いです。
GCPは新規に使い始めると1年間有効な300ドル分のクレジットが貰えるため、25ドル/月に収まるようなマシンを借りて試すことをお勧めします。
vCPU×1にメモリ1GBもあればこの用途では十分です。(ストレージはSSDにするとより快適)
同じ無料でも最大5倍程度のスペックアップが見込めます。

MusicBotサーバの構築

これが難しかった。何気に趣味とはいえ実運用するサーバの構築がこの時初でして、かなり手間取りました。
参考サイトはこちら。(この参考サイトを見ながら進めていきました)

【CentOS7 VPS】 Discord Musicbotの導入と常時オンライン化

まずは既に入っているソフトのアップデート。それから色んなもののインストール。

$ sudo yum -y update
$ sudo yum -y install git gcc gcc-c++ kernel-devel libffi-devel

ffmpegのインストール

これに手こずりました。。。
上記事さんの「さらに」の部分から「あとは適当な~」の直前まではカット。
代わりに以下URLの手順でやります。

CentOS7にffmpegをyumインストール

$ sudo yum -y install epel-release
$ sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
$ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
$ sudo yum -y install ffmpeg ffmpeg-devel

既にインストールされているものは Error: Nothing to do. と出てきます。無視して大丈夫です。
導入確認。バージョンっぽいものが出てくればOKです。

$ ffmpeg -version

リピート機能を含んだMusicBotのダウンロード

cd github まで進んだら一旦ストップ。
実はオリジナル版MusicBotにはリピート機能は実装されていません。無くてもいいのですがあったらかなり便利・・・
…ありました。こちらを参考にします。

discordだけでTRPGボイスセッション環境を整える

$ git clone https://github.com/Just-Some-Bots/MusicBot.git
$ cd MusicBot
$ git fetch origin pull/486/head:music-bot-id-486
$ git checkout music-bot-id-486

4行実行し終わったら cd ../ で元のディレクトリに戻っておきましょう。

Pythonのインストール

基本上記事さんの通りです。
しかしリピート機能を導入する場合、3.5以前を導入してください。
3.5.xまででしか動かせないとの情報。実際に3.7.2で確認しましたが動作しませんでした。
3.5.xの最新Verである3.5.7(2019/03/24現在)で話を進めます。

$ sudo yum -y install gcc zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel openssl openssl-devel
$ cd ~/github
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
$ vim ~/.bash_profile

Vimで以下を追記。先頭でも末尾でも良さそうです。Vimも最初は慣れませんでした。

# pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

続けて以下を実行。

$ source ~/.bash_profile
$ pyenv install 3.5.7
$ cd ~/github/MusicBot
$ pyenv local 3.5.7
$ pyenv rehash

導入確認です。3.5.7になっていれば大丈夫です。

$ python --version

Discord側でのbot作成~構築完了

ここからはほとんど上記事さんの通りで問題ないようです。
Discordに使い慣れていない限り迷うことは少なめに思えます。手順を間違えなければ…
初回起動時に実行されるPyNaCl+αのインストールが意外と時間かかります。

まとめ

海外サーバでも目立って音が切れることもなく快適です。

この使い方なら(ターミナルの操作遅延以外は)永年無料のサーバでも特に問題ないですが、応答時間が重要なWebサーバ用途等にはあまり向きませんね。ping値は地理的な限界で常に100ms以上です。

GCP ping

最近はvCPU×1+メモリ1GB+SSD20GBで400円/月程度の国内VPSサービスがありますね。気になる・・・
記事執筆後に使ってみました。普通に使えるのでコスパ優先ならおすすめです。

https://web.arena.ne.jp/vps-cloud/

その他参考

Markdown記法 チートシート

その他不備などありましたらお気軽にコメントお願いします。