akishin999の日記

調べた事などを書いて行きます。

Pivotal Tracker クローン「Fulcrum」をインストールしてみる

オープンソースRailsPivotal Tracker クローン「Fulcrum」をインストールしてみました。
インストールした環境は以下です。

fulcrum のセットアップ

まずは必要なライブラリをインストール。

# yum install -y git libxml2 libxml2-devel libxslt-devel
# gem install bundler --no-rdoc --no-ri

次に Fulcrum 配置ディレクトリと実行グループ・ユーザを作成します。

# groupadd appusers
# mkdir /var/apps
# chgrp -R appusers /var/apps
# chmod -R g+rwx /var/apps
# useradd -G appusers -c 'Fulcrum' -d /var/empty/fulcrum fulcrum

作成した fulcrum ユーザになり、Fulcrum を clone します。

# su - fulcrum
$ cd /var/apps
$ git clone git://github.com/malclocke/fulcrum.git
$ cd fulcrum

今回はデータベースに MySQL を使用したいため、Gemfile を編集します。

$ vi Gemfile

どこでもいいのですが、取りあえず production グループに以下のように追加してみました。

group :production do
  #gem 'pg'
  gem 'mysql2'
  gem 'therubyracer'
end

不要な pg ライブラリをコメントアウトし、mysql2 と therubyracer を追加しています。
変更を保存したら gem をインストールします。

$ bundle install --path=vendor/bundle --without development test --no-deployment

マイグレーションを実行する前に MySQL ユーザを準備します。
MySQL サーバに接続し、以下のようにユーザを作成しました。
(パスワードは各自でちゃんと設定してください。)

mysql> GRANT ALL PRIVILEGES ON `fulcrum%`.* TO 'fulcrum'@'localhost' IDENTIFIED BY 'fulcrum', 'fulcrum'@'%' IDENTIFIED BY XXXXXXXX;
mysql> FLUSH PRIVILEGES;
mysql> exit

ここでは簡単のため ALL PRIVILEGES でユーザを作成していますが、アクセス権限をしっかりと管理したい場合は fulcrum_production データベースを作成し、そのデータベースのみに権限を持つユーザを作成してください。

用意されているテンプレートをコピーしてデータベース設定ファイルを作成します。
SQLiteの設定をコメントアウトしてMySQL の設定をアンコメントしたら、先ほど作成したユーザを設定します。

$ cp config/database.yml.example config/database.yml
$ vi config/database.yml

次に fulcrum 用設定ファイルの雛形をコピーして編集します。

$ cp config/fulcrum.example.rb config/fulcrum.rb
$ vi config/fulcrum.rb

以下のコメントアウトされている行を環境に合わせてアンコメントして変更します。

Configuration.for('fulcrum') do
  # Set this to the domain name of your installation.  Env var APP_HOST
  #app_host 'example.com/fulcrum'

  # The email address that notification emails will be sent from.  Env var
  # MAILER_SENDER
  #mailer_sender 'noreply@example.com'

  # Disable registration pages.  If set to true, users will need to be invited
  # to a project rather than being able to self sign-up.
  # Env var DISABLE_REGISTRATION
  #disable_registration false
end

ここまで完了したら以下を実行して DB を作成します。

$ RAILS_ENV=production bundle exec rake fulcrum:setup db:setup

今回は Apache + Passenger でサブディレクトリで動かすので、application.rb を変更します。

$ vi config/application.rb

Application クラスの下辺りに以下のように relative_url_root を追記します。

module Fulcrum
  class Application < Rails::Application
    config.action_controller.relative_url_root = '/fulcrum' # 追記

また、サブディレクトリ以下で動かす場合、そのままだと project.js が動作しないのでこれも修正します。

$ vi app/assets/javascripts/models/project.js

以下のように、30行目の「return '/projects/' + this.id;」となっている部分にサブディレクトリ名である「fulcrum」を追加しておきます。

29   url: function() {
30     return '/fulcrum/projects/' + this.id; # /fulcrum を追記
31   },

assets:precompile を実行しておきます。

$ RAILS_ENV=production bundle exec rake assets:precompile

Apache + Passenger の設定

Apache がインストールされていない場合はインストールします。

$ su -
# yum install -y httpd httpd-devel libcurl-devel

Passenger をインストールします。

# gem install passenger --no-rdoc --no-ri
# passenger-install-apache2-module

passenger.conf を作成。

# vi /etc/httpd/conf.d/passenger.conf

Passenger インストール後に表示されたモジュール読み込み設定を記述します。

LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.19/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.19
PassengerRuby /usr/local/bin/ruby

/var/www/html の下に fulcrum のシンボリックリンクを作成します。

# ln -s /var/apps/fulcrum/public /var/www/html/fulcrum

httpd.conf を編集。

# vi /etc/httpd/conf/httpd.conf

以下のように DocumentRoot となっている /var/www/html の Directory ディレクティブに RailsBaseURI を追加します。
実際の httpd.conf はかなりコメントが多いですが、ここではコメントは省略しました。

 DocumentRoot "/var/www/html"
 
 <Directory "/var/www/html">
     Options Indexes FollowSymLinks
     AllowOverride AuthConfig
     Order allow,deny
     Allow from all
     RailsBaseURI /fulcrum
 </Directory>

Apache を起動します。

# service httpd start

これでセットアップは完了です。

ユーザの作成

ブラウザからアクセスすると以下のようにログイン画面が表示されます。

公式サイトによればここで「test@example.com」でログインできるとありますが、なぜか「Invalid email or password.」となってしまいログインできません。

仕方ないので「Sign up」リンクをクリック。
下のような Sign up 画面が表示されるので、メールアドレスなどを入力してユーザを作成します。

サインアップすると入力したメールアドレスに確認メールが届くので、確認メールに記載されている URL にアクセスし、パスワードを設定すればユーザ登録は完了です。

これでログインしてプロジェクトが作れるようになりました。
使い方はまだよく分かっていませんが、試しに適当にプロジェクトを作ってみると以下のような感じです。

なかなか見た目がかっこよくて良いです。

Scrum 自体の知識もないし、まだ使い方は全然わかりませんが、Pivotal Tracker のクローンとのことなので、以下の記事を参考にしていろいろ試行錯誤してみたいと思います。

Pivotal Tracker: はじめかた
http://agile.esm.co.jp/pivotaltracker/help/gettingstarted_ja