オープンソースメッセンジャーの「Spika」というものがおもしろそうだったので試してみました。
事前に調べていた情報だとPHPやCouchDBで動いていると書いてありましたが、情報が古かったためか、蓋を開けてみるとNode.jsとMongoDBで動作するようで、当然、構築手順も全然違ったので、備忘録を残しておきます。
ちなみにライセンスはMITライセンスを使用しているようなので、他のアプリへの組み込みやカスタマイズもしやすそうですね。GitHubで公開されています。
2015/11/07 追記
2015/08に旧バージョンから新バージョンへ言語ごと移行しているようですね。下記のSpika-Serverが旧版。今回試したのは、下記のSpikaの方です。となると、クライアントも旧版の可能性があります。
https://github.com/cloverstudio/Spika
https://github.com/cloverstudio/Spika-Server
→ 2015/08にhttps://github.com/cloverstudio/Spika へ統合
https://github.com/cloverstudio/Spika-Android
https://github.com/cloverstudio/Spika-iOS
今回試したのはサーバーサイドのみ。環境はCentOS6です。GitHubのページにUbuntuの場合の構築手順が解説してあるので、それを参考に進めてみました。
まずは、GitHubからソースを入手します。クローンを作成するディレクトリに移動して、git clone
コマンドを実行します。
$ git clone https://github.com/cloverstudio/Spika.git
次に、Spkiaを動作させるのに必要なパッケージのインストールをします。CentOSの標準パッケージだででは足りないようでしたので、先にEPELリポジトリを追加しました。
# yum install epel-release
Node.jsをインストールします。
# yum install nodejs npm nodejs-mongodb
データベースをインストールして起動します。
# yum install mongodb mongodb-server
# /etc/init.d/mongod start
ImageMagickって何か知らないけど必要らしいのでインストールします。私の環境ではインストール済みでした。
# yum install ImageMagick
当然ですが、Webアプリなので/etc/sysconfig/iptables
を編集してポートを開放してやってください。編集したら/etc/init.d/iptables restart
でファイアーウォールを再起動しておきます。
準備が終わったら、「Spika」の構築です。まず、package.json
のあるディレクトリに移動してから、npm
コマンドを使用します。
$ cd Spika/web
$ npm install
$ npm install gulp -g
公式の手順には上記のように書いてあるのですが、私の環境だとエラーが発生してしまいました。どうやらgulp
のインストールには管理者権限がいるようで再実行しました。
# npm install gulp -g
次に、init.js
にホスト名やポート番号が書いてあるので設定値を変更します。ローカルで試すだけならlocalhost
のままでも構いません。ネットワーク越しの場合は、この他に、DNSまたはクライアントのhost
ファイルを設定してやってください。
Config.host = "localhost";
Config.port = 8080;
Config.urlPrefix = '/spika';
Config.socketNameSpace = '/spika';
web/src/server/init.js.sample
を参考。
Config.apiBaseUrl = "http://localhost:8080/spika/v1";
Config.socketUrl = "http://localhost:8080/spika";
web/src/client/init.js.sample
を参考。
設定値の変更がすんだら、ビルドとサーバーの起動です。
$ gulp build-dist
$ node src/server/main.js
無事、サーバーが起動したらブラウザから次のURLにアクセスします。
http://localhost:8080/spika/#login
すると、ログイン画面が表示され、サービスが起動していることを確認できます。(なぜかテキストボックスの枠が表示されなかった。)
ログインして使用するとこんな感じ。何故か同じメッセージが複数表示される。何の不具合だろう?
今回試したのはここまで。機会があればスマホアプリとの連携も試したいです。(iPhone持ってない(>_<)Androidしか試せないかも。)
2015/11/07 追記
スマホアプリは旧バージョン用かもしれない。試してみないとわからんぞ。→誰か試してください。