Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

オープンソースメッセンジャーの「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 追記
スマホアプリは旧バージョン用かもしれない。試してみないとわからんぞ。→誰か試してください。

u4da3
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away