gitホスティング

githubは便利でとてもありがたいのだけれど、無料で使うとpublicになってしまう。
お金を払えば良いのだが、

  • githubが落ちたらどうしよう?とか
  • 大学の研究室で使うには支払い方法的にどうよ?とか
  • やっぱりコードは自分の把握してるところに置きたいとか
  • 自前のサーバーいくらでもあるからお金払いたくない。

とかあるわけで、自前でgitリポジトリホスティングしたい。

gitはローカルで使う分には

local> cd /path/to/sources
local> git init
local> git commit -a -m 'first commit' 

見たいな感じで楽チン。しかし、リモートにリポジトリを作ってpushして同期してというのを自前のサーバーでやろうとすると、

#on remote server
remote> cd /path/to/repos
remote> mkdir test.git
remote> git --bare init

#on local machine
local> cd /path/to/sources
local> git remote add origin hoge@severname:/path/to/repos/test.git
local> git push origin master 

という行程になる。localでの作業は良いとしても、remoteの作業はいちいちsshで接続するのも面倒だし、複数人で行う場合に、アクセス権限とかの設定が面倒。

そこで、gitosisを使うと良いよー!という記事を見つけて使ってみた。
http://openbooth.org/archives/60.html

記事どおりにやればちゃんと動いた。設置が終われば、sshでリモートに繋いだりする必要がないので、とっても楽。gitwebとの連携も出来るっぽい。

僕が設置してて、はまったのは設置前にすでにgitというユーザーを作って、公開鍵暗号方式でログインできるようにしていたところ、authorized_keysが上書きではなく、追記されてしまって動作がおかしくなっていた。(authorized_keysに同じkeyが二つあるとファイルの上のほうが優先されることを知った。)あと、command=なんとかと書くと、ログイン時に動かすコマンドも決められるだねえ。昔使ったけど忘れてたよ。gitosisのためのgitユーザーは改めて、新しく作ったほうがよさそう。