Pivotal Tracker クローン「Fulcrum」をインストールしてみる
オープンソースの Rails製 Pivotal 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