LoginSignup
38
42

More than 5 years have passed since last update.

Kandan(Webチャット)インストール

Last updated at Posted at 2014-06-18

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. データベース接続設定

  1. データベースはmysqlを使用する。(たまたまRedmineで使っていたため。PosgreSQLが推奨?)
config/database.yml
  production:
    adapter: mysql2
    host: localhost
    database: db_kandan
    pool: 5
    timeout: 5000
    username: user_kandan
    password: "********"
    encoding: utf8
  1. 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でもできなくはない。

  1. 権限設定とhogeへの変更
  # chown -R hoge:hoge /usr/local/apl/kandan
  # su - hoge
  $
  1. ビルド
  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. 起動ファイル設置と自動起動設定

  1. ファイルに実行権限をつける
  # chmod 755 /etc/rc.d/init.d/kandan
  1. chkconfigに追加し、自動起動設定をする。
  # chkconfig --add kandan
  # chkconfig kandan on

6.3. 起動操作

  1. 起動する。
  # /etc/init.d/kandan start
  1. 再起動する。
  # /etc/init.d/kandan restart
  1. 停止する。
  # /etc/init.d/kandan stop

7. アクセス

以下にアクセスし、管理者でログインする。

  • URL
    • http://{ホスト名}:3000/
  • 管理者の初期ID・パスワード
    • ID: Admin
    • Pass: kandanappadmin

8. カスタマイズ(非推奨)

全体の思想を理解して対応したわけでなく、場当たり的な対処のため推奨しない。

8.1 投稿したテキスト(activity)を、投稿内容どおりに改行する。

  • 標準の仕様は以下のとおり
    1. 1回の改行(2行)では改行せず1行で表示する。またこの場合はURLリンクは効かない。
    2. 2回以上の改行(3行)の場合は、"read more"という全内容のリンクを含めた4行を表示する。
    3. 設定は、{アプリ配置先}/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>
    '''
38
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
42