gitoliteで作るプライベートgitサーバー(gitwebの導入)

gitolite で git サーバーを構築したので、gitweb を導入してブラウザでリポジトリを確認できるようにしました。
gitolite の導入については、以下のエントリーを参照してください。

apache は導入済みであることが前提です。

gitweb のインストール

$ sudo aptitude install gitweb

gitweb の設定

/etc/gitweb.conf の $projectroot に gitolite のリポジトリディレクトリを指定します。
他のパラメータはデフォルトのままで大丈夫です。

$ sudo vi /etc/gitweb.conf
- $projectroot = "/var/cache/git";
+ $projectroot = "/var/lib/gitolite/repositories";

apache の設定

gitweb を deb パッケージでインストールすると、

  • /usr/lib/cgi-bin/gitweb.cgi
  • /usr/share/gitweb/*(.css|.png)

のような構成になっているので、ファイルにアクセスできるように apache を設定します。
私の環境では、/var/htdocs/git 以下で gitweb を動かすようにしたので、必要なファイルを準備します。
あと、apache ユーザーが git リポジトリを読める必要があるので、 git グループに追加します。

$ sudo mkdir -p /var/htdocs/git
$ sudo cp /usr/share/gitweb/*.png /var/htdocs/git
$ sudo cp /usr/share/gitweb/gitweb.* /var/htdocs/git
$ sudo ln -s /usr/lib/cgi-bin/gitweb.cgi /var/htdocs/git/gitweb.cgi
$ sudo chown -R apache:apache /var/htdocs/git
$ sudo /usr/sbin/usermod -G git apache

apache を設定して、再起動します。

$ sudo vi /etc/apache2/sites-available/gitweb
<VirtualHost *:80>
	ServerName gitweb.example.com
	ServerAdmin gitweb@example.com
	SetEnv GITWEB_CONFIG /etc/gitweb.conf
	DocumentRoot /var/htdocs/git
	<Directory />
		Options None
		AllowOverride None
		Order deny,allow
		Deny from all
	</Directory>
	<Directory /var/htdocs/git/>
                Options FollowSymLinks +ExecCGI
		AllowOverride None
		AddHandler cgi-script .cgi
                DirectoryIndex gitweb.cgi
		Order allow,deny
		Allow from all
	</Directory>
	ErrorLog ${APACHE_LOG_DIR}/git_error.log
	LogLevel warn
	CustomLog ${APACHE_LOG_DIR}/git_access.log combined
</VirtualHost>
$ sudo a2ensite gitweb
$ sudo /etc/init.d/apache2 restart


http://gitweb.example.com/ にアクセスすると、リポジトリが参照できるようになります。