Typetalk用Botを作成する ~hubot入門その3 古いパソコンの復活~
これまでのあらすじ
前回の続きです。
前回までで目標であった「Typetalk用Botを作成しHeroku上で実行する」は一応達成しました。
が、不十分不完全燃焼の結果と言わざるを得ませんでした。
なぜならHerokuの無料プランの制限(6時間スリープ問題)に引っかかり「毎朝起こさないと起きない低血圧hubot」が爆誕してしまったからです。
今回、解決策を模索し、いっそレンタルサーバーを借りてそこでBotを実行しようかとも思ったのですが 昔のパソコンにubuntuぶちこんだことを思い出しました。
古くて使わなくなったパソコンをhubotサーバーとして使えばいいんじゃね?と。
そこでメリットデメリットを洗い出すことにしました。
メリット
- お金かからない
- 24時間稼働
- 好きに使える
デメリット
- 少し動作が重たい
- 時間が経つと電源アダプターがあっつい
アダプターの熱以外で、やらない手はないかなと。
早速導入してみました。
Gitを使用してコードを共有
現在hubotを編集しているPC(メインPCとします)と古いPC(サブPCとします)の2台のPCでコードを共有するためにGitを利用します。
僕は無料で個人用非公開リポジトリを作成できるbitBacketを使用しました。
bitBacketでのリポジトリの作成や、リポジトリにコードをプッシュする方法はbitBacketで説明されているのでハショリます。
端折ったのは下の2点です。
- bitBacketなどにリポジトリを作成し、メインPCからプッシュ
- git cloneを使ってサブPCにクローンを作成
ちなみにサブPCで使用しているOSは正確にはUbuntuベースのlinuxBeanというOSです。
自分みたいなLinux初心者にはぴったりの優しめなOSなのでおすすめです。
ではクローンが終わりましたら、hubotのディレクトリに移動し実行環境を整えます。
下記コマンドを順番に実行してください(nodejsとnpmのインストールは飛ばしても構いません)
$ sudo apt-get update $ sudo apt-get install nodejs $ sudo apt-get install npm $ sudo apt-get install redis-server
これで実行
$ bin/hubot
おや、エラー。
"failed to fetch from registory: hubot-shipet"
ググるとどうやらnodejsとnpmのバージョンが悪いみたいです。
一度2つをアンインストールしてPPAを使用してインストールしなおします
ちなみにPPAを利用してnodejsをインストールするとnpmも一緒にインストールされます。
こちら参考にさせていただきました。
$ sudo apt-get purge nodejs npm $ curl -sL https://deb.nodesource.com/setup | sudo bash - $ sudo apt-get install -y nodejs $ sudo apt-get install build-essential
インストールが完了したらリトライ
$ bin/hubot
ワーニングはでますが待機状態に入りました。成功です。
レスポンスもこの通り。
bottyan> bottyan ping bottyan> PING
ではTypetalk連携を行ってみます
$ export HUBOT_TYPETALK_CLIENT_ID='クライアントID' $ export HUBOT_TYPETALK_CLIENT_SECRET='クライアントシークレットキー' $ export HUBOT_TYPETALK_ROOMS='トピックのID' $ bin/hubot -a typetalk
Typetalkに"hana ping"と入力したら"PONG"とレスポンスがありました。
これで成功ですね。
ちなみに実行時に「npmのバージョンが古い」とワーニングが出ていたのでバージョンアップを行いました。
$ sudo npm -g install npm@latest
これやったらワーニングは消えましたのでご参考まで。