1. Qiita
  2. 投稿
  3. Spika

オープンソースメッセンジャー「Spika」を試してみた。

  • 33
    いいね
  • 3
    コメント

オープンソースメッセンジャーの「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ファイルを設定してやってください。

web/src/server/init.js
Config.host = "localhost";
Config.port = 8080;
Config.urlPrefix = '/spika';
Config.socketNameSpace = '/spika';

web/src/server/init.js.sampleを参考。

web/src/client/js/init.js
Config.apiBaseUrl = "http://localhost:8080/spika/v1";
Config.socketUrl = "http://localhost:8080/spika";

web/src/client/init.js.sampleを参考。

設定値の変更がすんだら、ビルドとサーバーの起動です。

bash
$ gulp build-dist
$ node src/server/main.js

無事、サーバーが起動したらブラウザから次のURLにアクセスします。

http://localhost:8080/spika/#login

すると、ログイン画面が表示され、サービスが起動していることを確認できます。(なぜかテキストボックスの枠が表示されなかった。)

7e8f10e2-08e7-4360-9720-d224ebda2ae2.png

ログインして使用するとこんな感じ。何故か同じメッセージが複数表示される。何の不具合だろう?

5bdb0b17-4552-429c-a9b3-6f60a30ac8f2.png

今回試したのはここまで。機会があればスマホアプリとの連携も試したいです。(iPhone持ってない(>_<)Androidしか試せないかも。)

2015/11/07 追記
スマホアプリは旧バージョン用かもしれない。試してみないとわからんぞ。→誰か試してください。