はじめに
こんにちは、Python界のすしざんまいです。あぶりとろうめえ。さてSphinxで書いたドキュメントをbitbucketやGitHubなんかで管理している今日この頃ですが、ちょっと自前でGitサーバ立てたくなったので、ちょうどさくらVPSも借りてることだし立ててみました。
今回はgitosis使って環境を作ります。
ログ
まずはgitosisの初期設定をするところまで。
(remote)% sudo apt-get install gitosis (remote)% sudo adduser --system --shell /bin/sh --group --disabled-password --home /home/git git (remote)% sudo -H -u git gitosis-init < .ssh/id_rsa.pub Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/ Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/ (remote)% sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
この設定でgitユーザでgitosisを管理するようになったので、次にgitosisを管理する設定ファイルレポジトリをcloneする。ローカル側の.ssh/configを設定してあることを確認する。特に自鯖とかでsshに22番ポート使ってない場合は確認しておきます。
Host example.com Hostname host.example.com IdentityFile ~/.ssh/id_rsa Port 22222 TCPKeepAlive yes
これでcloneしましょう。
(local)% git clone ssh://git@example.com/gitosis-admin.git Cloning into gitosis-admin... remote: Counting objects: 5, done. remote: Compressing objects: 100% (5/5), done. remote: Total 5 (delta 0), reused 5 (delta 0) Receiving objects: 100% (5/5), done.
こんな感じのツリー構造になってます。keydirに登録した公開鍵が全部追加される。
(local)% tree . ├── gitosis.conf └── keydir └── ymotongpoo@local.pub
gitosis.confを編集する。今回はnotesというレポジトリを追加してみる。membersはkeydirにあるファイル名のもの。
[gitosis] [group gitosis-admin] writable = gitosis-admin members = ymotongpoo@local # ここから追加 [group notes] writable = notes members = ymotongpoo@local
これでサーバに管理ファイルをpushして設定を反映させます。
(local)% git add gitosis.conf (local)% git commit -m "added repository notes" (local)% git push
これでnotesというレポジトリができているはずです。状態でいったらGitHubでレポジトリ作ったところ。ローカルの方で実際のレポジトリを作成してpushします。
(local)% mkdir notes (local)% cd notes (local)% git init (local)% git remote add origin ssh://git@stratos/notes.git (local)% echo 'private notes' > README (local)% git add README (local)% git commit -m "first commit" (local)% git push origin master
わりと簡単にできて満足です。UIフロントはGitXで十分かなあと思っています。あとgitosisの場合はレポジトリの削除は設定ファイル経由ではできないので自分でやらないといけないっぽいですが、まあ十分でしょう。