CollabNet Subversion Edge上に Redmine をデプロイしてなんか Traclightning っぽくしてみた

前回CollabNet Subversion Edge(以下 csvn)をインストールしたが、
急遽Redmineも合わせて使いたいという要望が上がった。

ITSを導入するプロジェクトが増えるのはいいことだし、
自分も実際に仕事で Redmine を使うのは初めてだったので是非!という感じでセットアップをさせてもらった。

ただし

  • 外に開けるポートはなるべく減らしたい
  • イントラネット上に構築するのでセキュリティはそこまで神経質でなくてよい
  • とにかく早く構築して使い始めたい

構築の際には上記のような制限があったので、最終的にcsvnでインストールされた
apacheサーバーの後ろに Redmine を立てることにした。以下はその際の作業メモ。
csvn をインストールしたディレクトリに各ソフトウェアをインストールし、環境を構築する。

インストール済みのもの

  • CollabNetSubversionEdge v1.3.1
  • java v1.6.23

インストールするもの

Redmine

zipでダウンロードし、csvn\redmineに解凍する。

ruby installer

csvn\ruby187にインストール。
pathを通す。

sqlite3

exeとdllを両方ダウンロードし、exeにpathを通す。
インストール先はcsvn\sqlite375。

必要なgem をインストールする
$ gem --version
1.3.7
$ gem install rails -v=2.3.5
$ gem install -v=0.4.2 i18n
$ gem install mongrel_service
$ gem install sqlite3-ruby

sqlite3-rubyをインストールする際に以下のようなメッセージが表示されるので
指示通りにdllを%RUBYHOME%\binにコピーする。

  You've installed the binary version of sqlite3.
  It was built using SQLite3 version 3.7.3.
  It's recommended to use the exact same version to avoid potential issues.

  At the time of building this gem, the necessary DLL files where available
  in the following download:

  http://www.sqlite.org/sqlitedll-3_7_3.zip

  You can put the sqlite3.dll available in this package in your Ruby bin
  directory, for example C:\Ruby\bin

redmine/config/database.yml.exampleをsqlite3用に編集。

production:
adapter: sqlite3
dbfile: db/redmine.db
timeout: 5000

redmineのセションをクリアしてデータベースのinitialize。
デフォルトデータの挿入をする。

$ cd csvn\redmine
$ rake config/initializers/session_store.rb
$ rake redmine:load_default_data RAILS_ENV="production"

mongrelredmineが立ち上がることを確認し、サービスに登録する

$ cd csvn\redmine
$ ruby script/server -e production
# booting mongrelと表示されていることを確認する
# http://localhost:3000にアクセスしてredmineのログイン画面が表示されればOK

$ mongrel_rails service::install -N "Redmine" -c D:\tools\csvn\redmine -p 3000 -e production

今回は3000番のポートは外に向けて開けない。
したがってcsvnが稼動しているapachに/redmineでアクセスがあった場合、redmine
リクエストを送るように変更する。

# csvn\data\conf\httpd.conf

# *.so自体はcsvnに標準で含まれているのでLoadModuleのみ追記する
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<Location /redmine>
    ProxyPass http://localhost:3000
    ProxyPassReverse http://localhost:3000
</Location>

このままだとredmineの表示が崩れるのでproduction.rbを編集する

# rails_root/config/environment/production.rb
# 2行目に以下を追記する

ActionController::Base.relative_url_root = '/redmine'

apacheおよびredmineのサービスを再起動してアクセスできるか確認する。
よりTraclightningっぽくするのであれば同じようにJenkinsをapache上に展開すれば良い。