Ruby on Rails製のオープンソース・ソフトウェア(GNU Affero General Public License)
HipChatのクローン。
チームで活動をする際に、リアルタイムで文字のコミュニケーションをとりたいけど、以下のような困ったことがある場合に使えそう。
- メールだとリアルタイム性がないのでスピード感が出ない
- Skypeなどのインターネットに出るものは禁止されている
- IPMessengerだと1対1が基本なので情報共有が難しい
Railsのため、Redmineなどと一緒に入れやすく、チーム活動に役立てやすい。また必要なら自分でもカスタマイズできるという利点がある。
http://kandanapp.com/
https://github.com/kandanapp/kandan
更新情報
- 2015/10/11 いろいろアップデートしたので対応
- 2014/08/31 ruby2.0系にも対応したようです。
環境
項目 | 内容(バージョン/パス等) |
---|---|
Cent OS | 6.5 |
Kandan | 1.2 |
ruby | 2.0.0p481 (2014-05-08 revision 45883) |
gem | 2.4.8 |
rails | 3.2.21 |
environment | production |
database adapter | mysql2 |
アプリディレクトリ | /usr/local/apl/kandan |
URL | http://[hostname]:3000 |
webサーバ | thin |
インストール手順
0. ネットワーク関連
iptables、ip6tables、selinuxなどは必要に応じて設定。
1. yumパッケージ
1.1. パッケージインストール
インストール
# yum install gcc gcc-c++
# yum install git
# yum install libxslt-devel libxml2-devel postgresql-devel
# yum install mysql-server mysql-devel
1.2. epelパッケージインストール
epelリポジトリ追加
# yum install epel-release
# yum install libyaml libyaml-devel --enablerepo=epel
# yum install nodejs npm --enablerepo=epel
3. ruby
3.1. rubyインストール
実際はrbenvやruby-build使うかもしれませんが割愛。
以下からrubyソースパッケージをダウンロード
https://www.ruby-lang.org/ja/downloads/
ビルド&インストール
# tar zxvf ruby-2.0.0-p481.tar.gz
# cd ruby-2.0.0-p481
# ./configure --disable-install-doc
# make
# make install
確認
# ruby -v
ruby 2.0.0p481 (2014-05-08 revision 45883) [x86_64-linux]
3.2. gemパッケージインストール
gemを最新版に更新
# gem update --system --no-rdoc --no-ri
# gem -v
2.4.8
bundlerインストール
# gem install bundler --no-rdoc --no-ri
確認
# gem list
bigdecimal (1.2.5)
bundler (1.7.6)
io-console (0.4.2)
json (1.8.1)
minitest (5.4.3)
rake (10.3.2)
rdoc (4.1.2)
rubygems-update (2.4.8)
4. mysql
4.1. my.cnfにutf8の設定を追加
/etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
default-character-set=utf8
4.2. mysqlサービス設定
起動
# service mysqld start
自動起動設定
# chkconfig mysqld on
セキュリティ設定(rootパスワード他)
# mysql_secure_installation
DB、ユーザー作成
# mysql -u root -p
mysql> create database db_kandan default character set utf8;
mysql> grant all on db_kandan.* to user_kandan@localhost identified by '********';
mysql> flush privileges;
mysql> exit
5. Kandan
5.1. Kandanダウンロードとインストール
# cd /usr/local/apl
# git clone https://github.com/kandanapp/kandan.git
# cd /usr/local/apl/kandan
5.2. データベース接続設定
- データベースはmysqlを使用する。(たまたまRedmineで使っていたため。PosgreSQLが推奨?)
config/database.yml
production:
adapter: mysql2
host: localhost
database: db_kandan
pool: 5
timeout: 5000
username: user_kandan
password: "********"
encoding: utf8
- GemfileでDBのコメントをはずす。このあとrakeのdb:createでエラーが出るのでバージョン指定もする。
Gemfile
gem "mysql2", '~> 0.3.10'
5.3. プリコンパイルの設定
動作が重くなるためスタティックにする
config/environments/production.rb
config.serve_static_assets = true # 静的ファイルを使う
config.assets.compile = false # ライブコンパイルを無効にする
5.4. ビルド
アプリケーションディレクトリは一般ユーザ(例:hoge)で操作。
※rootでもできなくはない。
- 権限設定とhogeへの変更
# chown -R hoge:hoge /usr/local/apl/kandan
# su - hoge
$
- ビルド
bundleインストール
$ cd /usr/local/apl/kandan/
$ bundle install --without development test --path vendor/bundle
DB作成
$ RAILS_ENV=production bundle exec rake db:create db:migrate kandan:bootstrap
プリコンパイル
$ RAILS_ENV=production bundle exec rake assets:precompile
5.5. kandanの起動
# cd /usr/local/apl/kandan
起動
# bundle exec thin start -e production
ポート指定起動(例:80)
# bundle exec thin start -p 80 -e production
デーモン起動
# bundle exec thin start -e production -d
6. 起動設定
6.1. Kandanの起動、停止、再起動のスクリプトを作成
ここで、ポート指定やサービス登録(etc/services)する場合は考慮。
その他、適当・・・
/etc/rc.d/init.d/kandan
# !/bin/bash
#
# chkconfig: - 99 01
#
# description: Kandan@thin server daemon
#
prog=kandan
PATH=$PATH:/usr/local/bin
case "$1" in
start)
echo -n $"Starting $prog ..."
cd /usr/local/apl/kandan && bundle exec thin start -e production -d
echo "Done."
;;
stop)
echo -n $"Stopping $prog ..."
cd /usr/local/apl/kandan && bundle exec thin stop -e production
echo "Done."
;;
restart)
echo -n $"Restarting $prog ..."
cd /usr/local/apl/kandan && bundle exec thin restart -e production -d
echo "Done."
;;
esac
exit 0
6.2. 起動ファイル設置と自動起動設定
- ファイルに実行権限をつける
# chmod 755 /etc/rc.d/init.d/kandan
- chkconfigに追加し、自動起動設定をする。
# chkconfig --add kandan
# chkconfig kandan on
6.3. 起動操作
- 起動する。
# /etc/init.d/kandan start
- 再起動する。
# /etc/init.d/kandan restart
- 停止する。
# /etc/init.d/kandan stop
7. アクセス
以下にアクセスし、管理者でログインする。
- URL
- http://{ホスト名}:3000/
- 管理者の初期ID・パスワード
- ID: Admin
- Pass: kandanappadmin
8. カスタマイズ(非推奨)
全体の思想を理解して対応したわけでなく、場当たり的な対処のため推奨しない。
8.1 投稿したテキスト(activity)を、投稿内容どおりに改行する。
- 標準の仕様は以下のとおり
- 1回の改行(2行)では改行せず1行で表示する。またこの場合はURLリンクは効かない。
- 2回以上の改行(3行)の場合は、"read more"という全内容のリンクを含めた4行を表示する。
- 設定は、{アプリ配置先}/app/assets/javascripts/backbone/plugins/pastie.js.coffee
pastie.js.coffee
@options:
maxPreviewLength: 300
maxPreviewLines: 4
regex: /\n.*\n/i
template: _.template '''
<pre class="pastie"><%= preview %><a target="_blank" class="pastie-link" href="<%= messageLink %>">read more</a>
</pre>
'''
- 以下のとおりに変更する。
- "maxPreviewLines"(最大表示行)を1000に変更する。
- 仕様1、2を実現する条件であるregexを1回以上の改行に変更する。
- "read more"のリンクを削除する。
- なお、この変更によりURLリンクの投稿も有効になる。
pastie.js.coffee
@options:
maxPreviewLength: 300
maxPreviewLines: 1000
regex: /.*\n/i
template: _.template '''
<pre class="pastie"><%= preview %>
</pre>
'''