開発者向けリアルタイムチャットアプリケーション『AsakusaSatellite』 0.7をリリースしました

前回のバージョンアップからだいぶ時間が空いてしまいましたが、AsakusaSatelliteの新バージョンのリリースを行ないました。

前回まではSkypeで相談しながら開発するというスタイルでした。しかし、今回のバージョンアップで機能が多数追加されたことによりAsakusaSatelliteで相談しながらAsakusaSatelliteを開発するというドッグフードスタイルによる開発が可能となりました。

AsakusaSatelliteの特徴

AsakusaSatelliteは以下のような機能をもった開発者向けチャットアプリケーションです。

今回のバージョンアップにより追加された機能

v0.7 のバージョンアップのキーワードは「AsakusaSatellite as a Service」であり、PaaS対応を意識しています。
その結果、従来よりもプラガブルな構成になっています。

PaaS(heroku)対応

今回のバージョンアップの最大の変化点は、herokuに対応したことです。 これにより自前でサーバを持たずにAsakusaSateliteを利用できるようになりました。
もちろん、今まで通りローカルのサーバで動作させることもできます。

これにともないDBがGroongaからMongoDBに変更されました。

WebSocketサーバの外部サービス対応

PaaS対応の一環で、WebSocketサーバを切り替えられるようになりました。
現在は以下の3つの WebSocket サーバを利用できます。

  • ローカルで動作するSocky ベースの WebSocket サーバ
  • 外部サービスであるPusher
  • node.js ベースの Pusherクローン Keima (開発中)

内部にリソースを持ちたくない場合には、Pusher を利用し、内部で閉じた形で利用したい場合には、Socky ベースの WebSocket サーバを利用する、といった使い分けが可能です。
また合せてChrome16への対応も行なっています。

部屋の非公開設定

部屋を特定メンバのみに公開することができるようになりました。この機能により、herokuのようなpublicなサーバに設置した場合でもプライベートな情報を守れます。
部屋ごとの設定となっているため、一般用の部屋を公開し、身内用の部屋を非公開にするといった併用も可能です。

QuoteIt対応

プラグイン機能によりQuoteItと連携できるようになりました。これによりAsakusaSatellite上でTwitterSlideshare、Gistなどを簡単に引用することができます。
また、QuoteIt は世界中の開発者が自由にプラグインを追加できるので、利用しているうちに機能が追加されている、ということも起こりえます。
ただし、すべてのURLをQuoteItに送るため、セキュリティの観点からデフォルトでは無効になっています。

周辺ツールの充実

AsausaSatelliteを日常的に用いるようになったため、周辺ツールが整備されました。
AsakusaSatellite Plugin for JenkinsをJenkinsにインストールすることで、ビルド結果をAsakusaSatelliteに通知できるようになります。Redmineチケットリンクプラグインによって、コミットメッセージに埋めこまれたチケット番号が展開されるので、非常に分かりやすい通知になります。

ダウンロード・インストール方法

公開ページからパッケージを取得し、適当なディレクトリに展開します。

依存ライブラリをインストールします。

$ bundle install --path vendor/bundle

環境に応じてMongoDBの起動を行ないます。

$ mongod --dbpath <dir_name>

WebSocketサーバであるSockyを起動します。

$ bundle exec thin -R socky/config.ru -p3002 start

AsakusaSatellite本体を起動します。

$ bundle exec rails server

http://localhost:3000/ でAsakusaSatelliteが利用できます。
また詳細なマニュアルも公開しています。

謝辞

以下の方からいただいたパッチを取り込んでいます。ありがとうございます。(敬称略)