gitサーバーをubuntuに構築してgit://からアクセスできるようにする手順メモ

gitサーバを自宅のubuntuマシンに立てたのでその手順をメモ

ubuntuにgitをインストール

sudo apt-get install git-core

ubuntuにローカルリポジトリを作成

一応ubuntuマシンは完全なサーバではなく、開発マシンとしても使用するのでローカルにリポジトリを作成する。

mkdir -p /home/amacou/repos/tstrepos
cd /home/amacou/repos/tstrepos
git init
touch init
git add .
git commit -m "init"

ubuntuに公開用リポジトリの作成

sudo mkdir /var/repos
cd /var/repos
git clone --bare /home/amacou/repos/tstrepos ./tstrepos.git
touch tstrepos.git/git-daemon-export-ok

公開用のリポジトリはbareで作るのに注意

デーモンの起動

git-daemon --export-all --enable=receive-pack --base-path=/var/repos

MACからリポジトリをいじってみる

git clone git://192.168.3.6/tstrepos.git ./tstrepos #ubuntuマシンの公開リポジトリをコピー
rm tstrepos/init
git commit -a
git push git://192.168.3.6/tstrepos.git master

デーモンの常駐化

マシンを起動するたびにいちいちデーモンを起動するのが面倒なのでマシン起動時にデーモンが起動するように設定する。
調べたらgit-daemon-runというものがあるのでこれを使う

sudo apt-get install git-daemon-run

これでマシン起動時に勝手にgit-daemonが起動し、さらにserviceコマンドからgit-daemonをstop、startができるようになる

デーモン起動スクリプトを修正

デフォルトだとリポジトリの--base-pathが/var/cacheに設定されていたりしてめんどくさいので起動スクリプトを書き換える

sudo vi /var/sv/git-daemon/run

以下の一行を書き換える

#exec git-daemon --verbose --base-path=/var/cache /var/cache/git
exec git-daemon --verbose --base-path=/var/repos --export-all --enable=receive-pack 

一応サービスを再起動

sudo service git-daemon stop
sudo service git-daemon start

以上で公開用リポジトリの設定は終了です。