GitリポジトリをWebDAV(+https)経由で公開する
色々やったけどこれで出来た。
インストール
# yum -y instal git-core
WebDAVの設定
# vim /etc/httpd/conf.d/git.conf Alias /git /mnt/drbd/www/git <Location "/git"> DAV on SSLRequireSSL AuthType Basic AuthName "Git" AuthUserFile /mnt/drbd/www/.htpasswd <Limitexcept GET HEAD PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location>
設定したら反映
# /etc/init.d/httpd reload
Gitリポジトリの作成
# cd /mnt/drbd/www/git/ # mkdir projects.git # cd projects.git # git --bare init # vim description 適当にdescriptionを書く # echo "https://yamkazu.org/git/projects.git" > cloneurl # printf "[gitweb]\n\towner = Kazuki YAMAMOTO\n" >> config # chmod +x hooks/post-update # git update-server-info # cd .. # chown -R apache.apache projects.git
クライアントの準備
httpsを使うにはcurlにオプションつけてインストールしないとダメなので、つけてない場合は一度アンイストール。
# sudo port uninstall git-core # sudo port uninstall curl
httpsアクセスの為の設定
# sudo port edit curl configure.argsのwithout-sslをwith-sslに変更
インストール
# sudo port install curl # sudo port install git-core
オレオレ証明書はGIT_SSL_NO_VERIFY=1をつけないと認証が通らない。毎回つけるのが面倒なのでaliasに設定してしまう。
# vim ~/.bashrc 以下を追加 alias git='GIT_SSL_NO_VERIFY=1 git'
認証情報の設定
# vim ~/.netrc machine yamkazu.org login <ユーザー名> password <パスワード>
パーミッションも変更
# chmod 600 ~/.netrc
動作確認
# git clone http://yamkazu.org/git/projects.git # cd projects # touch README.txt # git add README.txt # git commmit -m "test" # git push origin master
push出来ているか確認する為、適当な場所でcloneする。
# git clone http://yamkazu.org/git/projects.git # ls projects
さっきcommitしたREADME.txtがあればOK。