サーバ

FishEye 2.0.6 のインストールとアップグレード

FishEye はJBoss や Apache で使われているバグトラッキングシステム Jira を開発している Atlassian の製品で、ソースコードリポジトリの変更履歴を確認したり、統計情報を確認したりできる Web アプリケーションです。
例によってオープンソース製品には無償のライセンスが用意されていてJBoss.orgでも使われています。

私は 自宅の Jira と連携させて使っています。

インストールガイドは以下のページにあります。
FishEye Installation & Upgrade Guide – FishEye 2.0 – Atlassian Documentation – Confluence

1. FishEye 2.0 のダウンロード
ダウンロードページより zip アーカイブをダウンロードします。FishEye はどういうわけか Jira と違って JBoss や WLS 等の既存のアプリケーションサーバにデプロイすることはできず、Jetty を内蔵するスタンドアロン版しかありません。

FishEye Downloads

2. FishEye インストールディレクトリの作成
FishEye は自己完結型のディレクトリ構成を持っていますが、そのまま利用するとアップグレードが面倒になるため、運用環境ではデータは別ディレクトリに配置することを推奨しています

私は fisheye ディレクトリを掘ってありますのですんなりアップグレードできそうです。

3. ライセンスの設定(アップグレードの場合は不要)
3.a. FishEye を起動
まずは起動してからセットアップします。

$ export FISHEYE_INST=~/server/fisheye
$ export FISHEYE_HOME=~/server/fisheye-2.0.6
$ cd $FISHEYE_HOME/bin
./run.sh
INFO – FishEye 1.6.3 (build-336), Built on 2008-11-04
INFO –
INFO – =======================================================
INFO –
INFO – Welcome to FishEye!
INFO –
INFO – You need to configure an admin password and enter your
INFO – license key. You can do this by accessing FishEye through
INFO – a web browser:
INFO –
INFO – http://hostipaddress:8060/
INFO –
INFO – Alternatively you can edit config.xml, refer to the
INFO – FishEye administration guide for more infotmation:
INFO –
INFO – http://confluence.atlassian.com/x/N4CDBQ
INFO –
INFO – =======================================================
INFO –
Could not find a FishEye license.
Please visit http://my.atlassian.com and quote ****-****-****-**** to obtain a valid license,
or visit http://www.atlassian.com/fisheye/renew to renew your license.
INFO – Periodic polling for software updates is disabled.
INFO – Server started on :8060 (http) (control port on 127.0.0.1:8059)
WARN – No license info available, not starting FishEye repositories.

起動すると Server ID という 16 ケタの16進数の ID が発行されます。
これを控えておき、http://my.atlassian.com で評価用ライセンスを取得します。

3.b. ライセンスの入力
http://my.atlassian.com でライセンスキーを取得できたら http://ホスト:8060にアクセスし、ライセンスキーを入力します。

ライセンスキーを入力


ライセンスが受け入れられたところ

4. リポジトリのセットアップ(アップグレードの場合は不要)
http://ホスト:8060/adminにアクセスすると、管理画面になります。

fisheye 管理画面
[Repository List > Add repository] より、リポジトリを追加するフォームが表示されます。
Name*: リポジトリの名前
Repository type: SVN, CVS, perforce の中から選択
SVN URL*: プロトコルスキームから始まるリポジトリのパスを入力
Path: リポジトリのうち特定のディレクトリだけを fisheye で表示したい場合は入力
trunk/branch/tag structure: /project/trunk/…, /project/branches/NAME/…, /project/tags/NAME/…


リポジトリ追加フォーム

フォームに必要事項を記入したら [add] でリポジトリの追加が完了。
自動的にリポジトリのスキャンが始まります。

5. コンテクストパス、ajp コネクタのセットアップ(アップグレードの場合は不要)
FishEye はデフォルトでルートコンテキストで動作するようです。
今回は FishEye 用のサブドメインを立てるのではなく、http://yusuke.homeip.net/fisheye/ というパスでアクセスできるようにしたいのでコンテクストパスを設定することにしました。
コンテクストパスやその他 Web サーバの設定は [Server Settings > Web Server > Edit settings] より行えます。
以下のように設定しました。
WebContext: fisheye
Http Bind Address: 8060
Ajp13 Bind Address: 8069

Bind Address のところは特定の NIC だけでリスンてほしければ IPアドレス:ポート のフォーマットで入力すればokです。
今回は Wifi でも Ethernet でもリスンして欲しいのでポートだけ入力しました。

6. 起動スクリプト設定
デフォルトではヒープサイズや GC ログの設定がされていないようです。
最低限どれくらいのヒープサイズで動くのかわかりませんのでざっくりと 64mb に設定し、-XX:+PrintGCTimeSamps オプションで GC 状況のログを取っておくことにしました。
設定は fisheyectl.sh に書きます。

1: #!/bin/sh
2: FISHEYE_OPTS="$FISHEYE_OPTS -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xmx64m -Xms64m-Xss180k"
3: FISHEYE_INST=/Users/yusukey/server/fisheye
4: FISHEYE_HOME=/Users/yusukey/server/fisheye-2.0.6

7. mod_jk 設定
8060番ポートに穴を空けたくないので mod_jk を以下のように設定して Apache と連携させました。
worker.properties

worker.fisheye.port=8069
worker.fisheye.host=127.0.0.1
worker.fisheye.type=ajp13

uriworkermap.properties

/fisheye=fisheye
/fisheye/*=fisheye

8. 起動設定(アップグレードの場合は不要)
FishEye は run.sh で簡単に起動できますが、サーバ(再)起動時に手動で起動するのは面倒なので自動起動できるように設定しました。

# cd /Library/StartupItems/
# mkdir fisheye

MacOSX 独自の起動スクリプトを書く

# cd /Library/StartupItems/fisheye
# vi fisheye

#!/bin/sh

##
# fisheye
##

. /etc/rc.common

StartService ()
{
ConsoleMessage “Starting FishEye”
cd /Users/yusukey/server/fisheye-2.0.6/bin
sudo -u yusukey ./start.sh
}

StopService ()
{
ConsoleMessage “Stopping FishEye”
cd /Users/yusukey/server/fisheye-2.0.6/bin
sudo -u yusukey ./stop.sh
}

RestartService ()
{
ConsoleMessage “Restarting FishEye”
cd /Users/yusukey/server/fisheye-2.0.6/bin
sudo -u yusukey ./stop.sh
sudo -u yusukey ./start.sh
}

RunService “$1”

# vi StartupParameters.plist

{
Description = “fisheye”;
Provides = (“fisheye“);
Requires = (“DirectoryServices”);
Uses = (“Disks”);
OrderPreference = “None”;
}

これで fisheye/StartupParameters.plist の2つのファイルを見て Mac OSX 起動時に勝手に FishEye を起動してくれるようになります。
コマンドラインから操作する際は
# SystemStarter start|stop|restart fisheye
でできます。
標準(エラー)出力は $FISHEYE_INST/var/log に記録されます。

10. robots.txt の設定
FishEye をセットアップしたことで、Google や Yahoo! にコードリポジトリそのものの索引を作ってもらう必要がなくなりましたので以下のように設定して検索対象からはずしました。
FishEye のコードは検索でヒットしても良いので Disallow に入れていません。

User-agent: *
Disallow: /svn/

11. 完了
以上の設定で無事 FishEye をインストールできました。
FishEye: browsing yusuke.homeip.net/

関連記事:
Jira 3.13.1 へ FishEye プラグイン 2.3 をインストール
FishEye 1.6.3 のインストール – 侍ズム
Jira をバージョン 3.13.1 へアップデート
Jira をバージョン 3.12.3 へアップデート