2015-10-19

Rocket.Chatを Cloud Foundry で動かす

「Cloud Foundry 百日行」第81日目は、Meteor製のチャットツールRocket.Chat です。
MeteorとはNodeJSのフルスタックなリアクティブ・フレームワークで、百日行の企画で初めてのMeteor製のアプリケーションという事になります。
また、画面の雰囲気も以前にとりあげた『Let’s Chat』のようにとても今風なアプリケーションです。

基本情報

手順の概要は以下の通りです。

  • 1) ソースコードの取得
  • 2) 事前準備
  • 3) アプリの起動
  • 4) 動作確認

1. ソースコードの取得

$ git clone https://github.com/RocketChat/Rocket.Chat
$ cd Rocket.Chat

2. 事前準備

2.1. MongoDBのサービスインスタンス作成

$ cf create-service "Mongo DB" "Default Mongo Plan" rocket-mongo

2.2. アプリの事前push

RocketChat用のmeteor向けbuildpackのURLをapp.json(Heroku Button用の設定ファイル)から確認します。

$ cat app.json
  "env": {
      "BUILDPACK_URL": "https://github.com/RocketChat/heroku-buildpack-meteor.git",

-bで先ほど調べたbuildpackのURLを指定し、–no-startを指定します。

$ cf push rocket -b https://github.com/RocketChat/heroku-buildpack-meteor.git --no-start

2.3. サービスの紐付け

作成したサービスインスタンスをアプリに紐づけます。

$ cf bind-service rocket rocket-mongo

2.4. 環境変数設定

紐づけたサービスの情報を得るために『cf env』を実行し、credentialsのuri部分をメモします。

$ cf env rocket
:
    "credentials": {
     "uri": "mongodb://68608217-650b-4b26-91df-e70ad5105a34:password@192.168.15.82:27017/f9d8d716-8426-42a6-bd62-585aecfe43d1"
    },

cf set-envでMONGO_URLという変数に先ほどメモしたcredentialsの値を設定します。

$ cf set-env rocket MONGO_URL "mongodb://68608217-650b-4b26-91df-e70ad5105a34:password@192.168.15.82:27017/f9d8d716-8426-42a6-bd62-585aecfe43d1"

cf set-envでROOT_URLという変数にアプリのURLと同じ値を設定します。

cf set-env rocket ROOT_URL https://rocket.10.244.0.34.xip.io

さらに、以下の環境変数も設定します。

cf set-env rocket NODE_ENV production
cf set-env rocket LCB_SECRETS_COOKIE secret

3. アプリの起動

$ cf start rocket
:
 
App started
 
 
OK
 
App rocket was started using this command `.meteor/heroku_build/bin/node .meteor/heroku_build/app/main.js`
 
Showing health and status for app rocket in org develop / space develop-space as admin...
OK
 
requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: rocket.10.244.0.34.xip.io
last uploaded: Fri Sep 18 01:28:14 UTC 2015
stack: cflinuxfs2
buildpack: https://github.com/RocketChat/heroku-buildpack-meteor.git
 
     state     since                    cpu    memory           disk      details
#0   running   2015-09-18 10:58:02 AM   0.0%   134.7M of 256M   0 of 1G

成功しました。

4. 動作確認

ブラウザーでアクセス。
Sign up:

Sing in後:

メッセージ入力:

試しに別のユーザーも作成してSing up & Sing in後にメッセージ入力を試してみます。

今回使用したソフトウェア