はじめに
諸事情で,Git と Mercurial の両方をホスティングできる良さげなサーバアプリはないものか?と探していたら,Kallithea っていうのがあるよと教えてもらったので,試してみた.
試すための手順なので,実運用するならもっと真面目にあれこれ設定したほうがいいと思う.
なお,この記事はメモ的に書いてるので,だいぶ書き方が雑になると思います.
動作環境
Debian(Docker Container) on Debian (VM) on Ubuntu 14.04
Docker のインストールまでは省略
参考URL
本家サイト
https://kallithea-scm.org/
GitとMercurialに対応のリポジトリ管理ツール「Kallithea」 - ファーエンドテクノロジー株式会社 - http://goo.gl/lmjQwc
手順
Kallithea を動かすための Docker コンテナを起動します.
最終的に, Kallithea を 5000 番ポートでアクセスできるようにしたいので, 5000番ポートをフォワーディングするようにします.
# docker run --name=test1 -dit -p 5000:5000 debian /bin/bash
# docker-enter test1
これで,コンテナで動いている Debian に入りました.
これ以降はコンテナ内の Debian での操作になります.
以下のコマンドで Kallithea のインストールをします.
# apt-get install python-dev
# apt-get install git
# apt-get install python-pip
# easy_install pip
# pip install kallithea
Kallithea を動かすために必要なファイルを準備します.
# mkdir -p /var/lib/kallithea/repos
# cd /var/lib/kallithea
# paster make-config Kallithea kallithea.ini
# paster setup-db kallithea.ini
# paster setup-db kallithea.ini
でいくつか対話的に質問がでます.
質問は
- admin ユーザのユーザ名
- admin ユーザのパスワード
- admin ユーザのとメールアドレス
- リポジトリを置くディレクトリ
を指定するためのものだったと思います.
もしかしたら,他にも何かあったかもしれません.
4 のディレクトリは,/var/lib/kallithea/repos
を指定してみました.
真面目に動かすなら,このディレクトリはデータボリュームにしておいたほうがいいんだと思います,たぶん.
また,コマンド名から察するに, DB のセットアップをしていると思うんですが,これの実態もデータボリュームにしたほうがいいんだと思います.
どこに作られるのかはわかりませんが...
次に,設定ファイルを少し変更します.
コンテナの外からアクセスするために必要な変更です.
/var/lib/kallithea/kallithea.ini
を以下のように変更します.
--- kallithea.ini.backup 2016-01-07 14:06:42.844000000 +0000
+++ kallithea.ini 2016-01-07 09:44:01.428000000 +0000
@@ -158,7 +158,7 @@
#cheaper-step = 1
## COMMON ##
-host = 127.0.0.1
+host = 0.0.0.0
port = 5000
## middleware for hosting the WSGI application under a URL prefix
最後に,以下のコマンドを実行して,サーバを起動します.
# paster serve kallithea.ini start
あとは,ブラウザから Docker ホストの 5000 番ポート (=コンテナの 5000 番ポートにフォワーディング) にアクセスすると,それっぽい Web UI が見えるかと思います.
ぱっと見た目が Github や GitLab などとだいぶ違いますが, Web UI をしばらくポチポチしてたらなんとなくわかるんじゃないかと思います.
Web UI の解説はなしで (スクショ貼るのめんどうなので...)
おわりに
とりあえず,Kallithea が動くところまではこれでできるはずです,たぶん.
真面目に使うなら,もう少し色々設定したほうがいいと思います.
設定はきっと,kallithea.ini をいじればいいんじゃないかと思いますが,そんなにいじってないのでよくわかりません.