読者です 読者をやめる 読者になる 読者になる

once upon a time,

Iris Tradをビール片手に聞くのが好きなエンジニアが、機械学習やRubyにまつわる話を書きます

Mercurialと親和性の高いリポジトリブラウザRhodeCodeをインストールしてみた

Mercurialと連動するブラウザベースのリポジトリ管理システム、RhodeCodeを導入したのでその際のメモを書き残します。
一言で言うと、githubみたいなものを社内などで運用したいというニーズに応えるものです。
gitlabとかも試してみましたが、ドツボにはまったので結局RhodeCodeに落ち着きました。

デモはこちら

RhodeCodeの特徴

  • ブラウザ上でリポジトリを作成できる(これ重要)
  • diffやコミットログがブラウザ上で見られる
  • ブランチも可視化してくれる
  • プロジェクトをグループでまとめることもできる
  • 意外と導入、運用は簡単だった
  • そのうちgitにも対応する予定らしい
  • あまり日本語で情報が少ないかも

Rhodecodeのインストール

基本的にオフィシャルに従う方針で行きました。
ただし、virtualenvを使った方が環境を汚さないと思うので、そうすることにしました。

http://packages.python.org/RhodeCode/installation.html

http://packages.python.org/RhodeCode/setup.html
ユーザは、適当にadduserで作ってください。
今回はhgというユーザを作りました。

adduser --system --home /home/hg/ --group --shell /bin/bash hg

sudo mkdir  /var/www/rhodecode-venv
sudo chown hg:hg /var/www/rhodecode-venv
virtualenv --no-site-packages /var/www/rhodecode-venv
# hgが一般権限で利用できるようにする必要がある
source /var/www/rhodecode-venv/bin/activate
sudo mkdir /var/www/rhodecode
sudo chown hg:hg /var/www/rhodecode
cd /var/www/rhodecode
pip install rhodecode

RabbitMqの導入

一応入れました(結局使ってないかも?)

sudo apt-get install rabbitmq-server

Rhodecodeの設定

cd /var/www/rhodecode
paster make-config RhodeCode production.ini
paster setup-app production.ini

途中で、リポジトリの場所、adminユーザの名前、パスワード、メールアドレスが求められる
実行する

paster serve production.ini

問題点

・UnicodeDecodeErrorが出る
hgユーザの言語設定を下記で解決。
日本語ja_JP.UTF-8にしてMercurialをインストールすると、どうやらRhodeCodeがこける模様。

export LC_ALL=C

rhodecode-init.shを作成。

./rhodecode-init.sh

#!/bin/bash

 export LC_ALL=C
 source /var/www/rhodecode-venv/bin/activate
 cd /var/www/rhodecode
 paster serve production.ini

実行方法

とりあえず、起動時にrhodecode-init.shを実行することで運用しています。
本格的に動かすならinit.dなどに書いた方がいいかも。

sudo -u hg ./rhodecode-init.sh