Redmine が ruby 1.9 に未対応なので ChiliProject を Heroku で試してみよう

最近はわざわざ Rails2 の為に ruby 1.8 を使う事もなく、rails3 と ruby 1.9 の組み合わせがスタンダードなので、できれば 1.8 を完全に切り捨てたいところ。

* Redmine2 がリリースされましたね。rails3 / ruby 1.9 で、すばらっ。同様に heroku に上げてみようとしたんですが、いまいち上手くいきませんでした。出来たら記事にしてみます。

でもぼくらの Redmine 大先生は正式には 1.9 に対応してない(ちゃんと検証はしてないからどんな感じかわからないけど)。

Redmine 1.4 で対応するとのことですが、Ruby 1.9 に対応した Redmine からフォークされた ChiliProject というのがあったので、コレを Heroku に設置して、動くものを触ってみることに。

どちらのプロジェクトが良いのか、使わせてもらっている程度の立場なのでなんとも言えないけど、記事執筆時点で 1.9 で動かすには ChiliProject を使うのがよい選択なんじゃないでしょうか。

ダウンロード

ココの通り、git clone してもいいですが、

から、パッケージをダウンロードしてやりました。

wget https://www.chiliproject.org/attachments/download/251/chiliproject-3.0.0.tar.gz

適当なところに解凍して、cd してください。

インストール

手順通りに進めます。

今回は 3.0.0 のパッケージを使うので、ruby は 1.9.2, 1.9.3 でいけます。

2.0.0 以上ですでに、1.9.2 には対応しているようです。

必要な gem は bundler でインストールできるので、bundler だけ用意しておいてください。

あと、heroku にもコミットするので heroku の gem もですね。

bundle install --without test development

必要な gem が一通り入るので、準備は完了です。

セッション用のシークレットキー設定

bundle exec rake generate_session_store

redmine 同様、rake コマンドで生成できます。

bundle exec は bundler がインストールした gem を呼び出すためのコマンドです。

設定ファイルの配置/修正

おなじみ、データベースの設定を config/database.yml.sample を config/database.yml にコピーして設置します。

アプリの設定が、config/settings.yml に記述されているので、適宜変更してください。

とりあえず日本語にしておきたいので、default_language: ja と書き換えましょう。

ローカルサーバでお試し

ここで、ちょっとローカルで簡単に動かして見ました。

database.yml に記述されている、test_sqlite3 を利用します。

rake db:migrate RAILS_ENV=test_sqlite3
script/server -e test_sqlite3

で、とりあえず localhost:3000 で動かしてみました。

デフォルトのアカウントが admin:admin で設定されているので、ログインして、少し触ってみてください。

さっき、ja に設定したのに、英語なのは、ユーザーの言語が en だからなので手動で切り替えてみてください。

デフォルトの UI が異なり、雰囲気はだいぶ違いますが、機能は本家 Redmine と同じことがわかります。

もう動作するので、お試しならコレでもよいかもしれませんね。

Heroku に設置

Heroku に redmine 1.3 を設置して、トライアル感覚で動かす も参考にしてください。

ファイルパスの設定を変えないと、heroku 上で動きません。

ファイルがアップロードできて、閲覧も出来ましたが、恐らく何らかのタイミングで消えるので、永続化に関しては別の手段が必要です。

config/configuration.yml.sample を config/configuration.yml にコピーして、

default:
  attachments_storage_path: /tmp

パスを設定します。

また、public/plugin_assets/README というディレクトリとファイルを作ってコミットします。

初期化時に、このファイルを作成しようとして、書き込みエラーがでるので、それを回避するためです。

mkdir public/plugin_assets
touch public/plugin_assets/README

これらもコミットして、さらに Gemfile.lock が必要なので、それも git add -f で追加してください。

heroku create --stack bamboo-mri-1.9.2
git push heroku master
heroku rake db:migrate

いちおう stack を指定しておきます。

これで動くようになったんじゃないでしょうか。

Redmine の 1.3.1 くらいから複数リポジトリに対応していて、待望の機能だったのでとても便利です。

ChiliProject の 3.0.0 ではまだ対応していませんでしたが、対応の動きはあるようです。

* 4/4 に 3.1.0 がリリースされましたが、それにはまだ入っていません。でもフォーラムを見ると pull request を送っている人がいるので、3.2 には取り込まれそうです。期待です。

プラグインに関しては、Redmine との互換性のページがありました。

1.9.x で動くのはいいのですが、複数リポジトリに対応していないのはちょっと残念、というか、既に複数リポジトリを使い始めていて、とても便利なのでこちらも対応して欲しいってのが本音。

いやいや、使わせてもらっているのだから贅沢は言えませんけどね。

サクッと作れるほどスキルもないし…。ぐぬぬ。

おまけ

久しぶりに見たら Heroku のアドオンが少しかわっていました。

Logging 廃止

ログ表示のツールが廃止になっていました。廃止といっても使えなくなったのではなく、アドオンとして廃止?になったようです。

今まではわざわざプランをアップして、tail できるようにしていましたが、デフォルトで heroku logs –tail が使えました。

Mailgun

sendgrid の代替でしょうか。新しいメールアドオンがありました。

Redmine では Sendgrid でやりましたが、ChiliProject ではこちらを使ってみました。

heroku addons:add mailgun:starter

ドキュメントを参照して、設定をします。

heroku config で ID や パスワードなどを確認して、以下の設定を configuration.yml に追記します。

production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: smtp.mailgun.org
      port: 587
      authentication: :plain
      domain: 'heroku.com'                                                                                               
      user_name: 'postmaster@appXXXXXXX.mailgun.org'
      password: 'XXXXXXXXXXXX'

無料プランでは 300通 / 日の制限がありますが、あまりデモ運用程度なら問題にはならないでしょう。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする