ローカルPCのnode.jsをつけっぱなしにするはイヤだったので、もともと維持しているGCPの無料VMで実行させることにしました。
無料VM
https://cloud.google.com/free?hl=ja
に詳しく載っています。
VMの構築方法の詳細は、ググると詳しく載っているのと、自分の過去記事にも少し触れていますので、省略しますが、要は、e2-microという小さなサーバをUS-WEST(オレゴン)で作ると無料って感じです。
あたりさわりのない「ubuntu」で作っています。
実は、ずっと18のままだったんですが、サポート切れたので、今日、20に上げました。
nodejs インストール
nodesoource経由でインストールしてみます。
$ sudo su
# apt update
# apt upgrade
# curl -fsSL https://deb.nodesource.com/setup_23.x -o nodesource_setup.sh
# chmod 777 nodesource_setup.sh
# ./nodesource_setup.sh
# apt install nodejs
常時起動のために、forever
もインストールします。
# npm install -g forever
-g
を忘れずに・・
動いてるか確かめます。
# node -v
# npm -v
環境移行
前回作ったBOTプログラムをこっちに持ってきます。
$ mkdir ~/discord-bot
$ cd ~/discord-bot/
$ mkdir tenki_likemark
$ cd tenki_likemark/
$ npm init
$ npm i discord.js
$ npm i axios
プログラムとconfigをコピペします。
$ vi index.js
$ vi config.json
動くかな??
$ node index.js
東京の天気👍#xxxxで起動しました!
動いたので、CTRL+C
で一旦とめます。
forever
常時起動には、forever
を使います。
$ forever start index.js
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: index.js
(node:79148) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:79148) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(node:79148) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
なんか、たくさんワーニングが出るな〜??
動いているか見てみます。
$ forever list
(node:79181) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:79181) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(node:79181) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
info: Forever processes running
data: uid command script forever pid id logfile uptime
data: [0] EMJe /usr/bin/node index.js 79159 79166 /home/hogehoge/.forever/EMJe.log 0:0:0:43.19
動いてるっぽい。
完成
めでたしめでたし