Webブラウザを使ったチャットがあると、ネットをつかった会議や議論の時に便利だろう。 SkypeやGoogle Hangoutは、チャットがbuilt-inされているので、それを併用すればよいのだけど、 いわゆる「テレビ会議」システムを使った、他拠点での会議をおこなう時に、 言葉で説明するより文字で説明した方がよいことがある。 たとえば、定量的に精密に議論をしたい時に、「テレビ会議」では誤って伝わる可能性があり、 文字を使ったコミュケーションを併用したいことがある。 それと議論のためにファイル(おもにグラフのファイル)やURLの共有をしたい時にもチャットは役に立つ。
巷にはそのためだけの商用サービスなどもあり、各所で利用されているとは思うのだが、 研究プロジェクト内でのみ共有するような議論は、外部に保存したくないなどの微妙な問題があり、 あまり使われるとは思えない。研究費からそのような費用を出すのは、不可能ではないが、 研究室レベルでやるのは簡単ではないという事情もあり。 それで、オープンソースでなんとかならないかというと、あまりよい選択肢はない。 往年の掲示板CGIを使うというのもあると思うし、Wikiベースのシステムでも、 あとで議事録を残したり、議論内のファイルを保持記録しておくにはよいかもしれない。
だからChatonというWebベースの(ほぼ)リアルタイムチャットソフトがある。
http://chaton.practical-scheme.net/
ソースコードは https://github.com/shirok/Chaton で公開されており、 自分の使えるLinux機があれば、Gaucheが動くことを前提として、手軽に設置利用できる。 ただ、一つ面倒なのは、ChatonはCOMETというプロトコルを採用していて、 そのためにhttpポートに加えて、ある特定のポートをコンテンツのポーリングのために必要とする。 githubで公開されているコードは、このポートが任意に公開できることを前提としていて、 80と443しかポートが空いていない場合には、reverse proxyを設定する必要があり、 そのためにはソースコードを一部修正する必要があった。
ので自分用に修正をしたコードをフォークした。https://github.com/dadeba/Chaton
以下、そのセットアップ方法を記録しておく。
#####ソースをcloneする
git clone git@github.com:dadeba/Chaton.git
#####“conf/site.conf"を適切に編集する。 最低限必要なのはgoshのパスと、COMET serverを保持するディレクトリ(下記4.参照)。
#####設置するチャット用の設定ファイルを作る。
Chatonオリジナルものは"sample.conf"になる。
このforkバージョンでは追加の設定が必要なのでそれについて。
COMETのポートをApacheのreverse proxyを使って外部に公開するため、
それ用のpathを(comet-proxy-path "comet1")
で指定する。これはこの行を追記する。
また、(comet-port "9997")
も適当なポート番号を指定する。このポート番号はあとで利用する。
#####Chaton用ファイルを生成 オリジナルのドキュメントにあるように
gosh ./build-site mychat.conf
としてChatonを設置する。この結果、server-htdocs-dirとserver-data-dirに必要なファイルが生成される。 server-htdocs-dirのほうはhttpdからアクセスできる場所ではないといけないし、 server-data-dirはhttpdが書き込みできる必要がある。一番簡単には、どちらもhttpdが動くユーザーの権限、 Ubuntuの場合"www-data:www-data"がowner:groupとなる場所を指定した方がよい。 httpdによる、server-data-dirへの適切な書き込みやアクセス権限がないと、原因不明で動作しない。 面倒を避けるために、COMET serverを保持するディレクトリもwww-dataがownerとした方がよい。
例えば”/var/www/chaton"を作成し、```chown www-data:www-data /var/www/chaton"として、 COMET serverのpathは"/var/www/chaton/bin"として、各チャットのserver-data-dirは “/var/www/chaton/mychat/logs"のようにディレクトリを指定するのが一番簡単。 オリジナルのドキュメントに従って、各自のホームディレクトリ下に作成すると、 権限の設定が面倒なことになる場合がある。 この場合、build-siteの実行も、www-dataの権限で行うか、 rootで実行後、生成されたファイルのownerとgroupをwww-data:www-dataとする必要がある。
#####Apacheのreverse proxyの設定 reverse proxy moduleは読み込まれているという前提で 以下の設定をApacheの設定ファイルに追記する。
Alias /chaton/mychat /var/www/chaton/mychat/htdocs
ProxyPass /comet1 http://localhost:9997
ProxyPassReverse /comet1 http://localhost:9997
最初の行はserver-htdocs-dirで指定したディレクトリと、ApacheでのURLとの対応を指定する。 残りの2行でreverse proxyを設定する。COMET serverは9997ポートで動作するので、 それを"http://example.com/comet1"のURLでアクセスできるように指定する。どちらの行も必要。
#####COMET serverを起動
sudo -u www-data gosh /var/www/chaton/bin/chaton-viewer-mychat
#####Apacheを再起動する。
http://example.com/chaton/mychat
にアクセスすると利用開始できると思う。