よろしい,ならば9Arrowsだ

9arrows.com | Home
最近公開されたばかりで良く耳にして,こういうのならTracredMineよりも使い道があるかなとインストールしてみた(結局はどれも使い方次第だと思うけど^^;).でまぁ勿論環境を整えないと行けないので過程をつらつら.インストールしたのは勿論FreeBSD 7.0-RELEASE.
【FreeBSD】PostgreSQL環境を構築する(PostgreSQL 8.3.x)
参考にしたのはこのサイトと,同梱されているREADME-ja.

PostgreSQL

インストール

RailsなのにMySQLじゃないのは結構珍しい気がする.何はともあれportsから.最近リモートログインばかりで使ってないけど,入れているKDEが8.1のクライアントを使っているらしく,最新版とコンフリクトを起こすのでバージョンを合わせてインストール(理由がない限りは最新版の8.3の方がいい).make configの設定はデフォルト.

% cd /usr/ports/databases/postgresql83-server
% sudo make config
% sudo make install clean
設定

インストールが出来たらpgsqlユーザと/usr/local/pgsqlのディレクトリが生成されるので,これらで設定を行う.

% su root  # pgsqlになるために必要(一般ユーザからsu pgsqlだとパスが分からない).
# su pgsql

その後,Postgreでクラスタと呼ばれるデータの格納先を作成し初期化する(このモードタブやヒストリーが聞かないのでやりにくいw).

$ cd /usr/local/pgsql
$ mkdir data
$ initdb -D ./data --encoding=utf-8

問題なければ"Success"と出てくる.で,起動させたいのだけど

    postmaster -D ./data
or
    pg_ctl -D ./data -l logfile start

何かSuccessの下に2つ方法が提示される.postmasterがバックエンドサーバで,pg_ctlが細かな設定を含めてpostmasterを起動するフロントエンドのようだ.ということでpg_ctlから起動する.

$ pg_ctl -D /usr/local/pgsql/data start

ちゃんと動いたのであれば,9Arrows用のユーザを作成する.

$ createuser 9arrows -P
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n

次はこのユーザを所有者としてデータベースを作成する(testとproductionも).

$ createdb -O 9arrows -U 9arrows 9arrows_development

これで基本は終わり

ログ

syslog経由で取得する(どうかと思うがまぁ負荷少ないし).

% cd /var/log
% sudo touch pgsql.log
% sudo chmod 777 pgsql.log

そして/etc/syslog.confの先頭に以下を記述する(下に書くとどこかに引っかかるw).

LOCAL0.*  /var/log/pgsql.log

後は/usr/local/pgsql/data/postgresql.confをpgsqlユーザで編集する.

log_destination = 'syslog'
syslog_ident = 'postgres'
log_statement = 'all'

両方とも再起動すればOK.

Ruby関係

gemからインストール.

% sudo gem install rails -v=2.1.0 -r
% sudo gem install ruby-postgres -r

9Arrowsはソースを直接ダウンロードして解凍する.

% cd src
% wget http://9arrows.googlecode.com/files/9arrows-all-0.9.0.1.tar.gz
% tar zxvf 9arrows-all-0.9.0.1.tar.gz -C ~/work

9Arrows

データベースのマイグレーション

設定を上の設定に合わせる.config/database.ymlを編集.

development:
  adapter: postgresql
  database: 9arrows_development
  username: 9arrows
  password: 9arrows_password
  host: localhost
# ditto

後はお決まり.

% rake db:schema:load
メール

デフォルトはsendmailなのだけど,そんなの設定してないので他の設定を使う.sendmailの設定をコメントアウトして,下にあるGMailsmtpの設定を有効にする(最初研究室のメールサーバを使おうと思ったけど,メールが送られてこなかった.ActionMailer分からないので断念).

# Gmail options
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.smtp_settings = {
  :address        => "smtp.gmail.com",
  :port           => 587,
  :domain         => 'gmail.com',
  :user_name      => "your_account@gmail.com",
  :password       => "your_password",
  :authentication => :plain
}
起動
% ruby script\server

とした後http://localhost:3000/にアクセスすればいい.デフォルトでユーザ名/パスが"ninearrows"というユーザがいる.でも新規登録した時のユーザIDはメールアドレスという.まぁmixiみたいにidで識別してるようなので仕方ないのかな.

感想

メインとなるDashBoardこんな感じで,結構すっきりしている.上の方にプロジェクトで使えるページがあるけど,WBSで各タスクを更新したりすると,ガントチャートやカレンダーにも反映されてビジュアルでも確認することが出来る.
まぁでも一学生に企画書とかはないので,使うなら大抵この辺スキップして使うことになるのかなと(削除することで工程から省くことが出来る).
以下気になった所.

  • ユーザって削除出来ない?
  • 必須項目には印が欲しい.
  • 期限と期間とかの違いがよく分からない(これは恐らく俺のせい).
  • README-jaに書かれてるパーミッションにしなくても普通に動く.
  • メールに書かれている仮パスワードいらなくない?
    • サインアップと同時にログインしてるので,ページに飛ぶと変更することが出来る
    • うっかりログアウトしてしまった人を想定してるのかな…
  • Mongrel + productionでたまに激重な時がある
    • というか以下のエラーが出た(偶然嵌っただけか…)
ActionController::RoutingError (No route matches "/javascripts/user/edit.js" with {:method=>:get}):

まだバージョン0.9.0だしこれから洗練されて行くのを期待しよう.ということで,研究室内では使えるので使いたい人はアカウントを勝手に作ってほげほげして下さい.

備考

9Arrowsでproduction(すぐ忘れるw).

% rake environment RAILS_ENV=production db:schema:load
% ruby script/server mongrel -e production -d