前まではwebサーバにSubversionサーバを兼任させていたわけですが、ルータの内側にNAS4Freeを入れた機会に内部Git鯖立ててそちらに乗り換えようかという。

Gitサーバの構築

Gitoliteのインストール

  • NAS4Freeへコンソールからログインし、Gitoliteをインストール
1
2
$ pkg_add -r gitolite2

gitユーザの作成

WebGUIからユーザ登録する(adduser使えない)

  • メニュー -> アクセス -> ユーザとグループ ->
    • グループ・・・「git」グループを作成
    • ユーザ・・・「git」ユーザを作成(グループは「git」) ※ログインシェルを設定しておく
      • プライマリグループを「git」
      • グループの追加で「ftp」を選択
      • ログインシェルを「csh」
      • ホームディレクトリを「/home/git」

FTPサーバ設定(SSH鍵転送のために)

WebGUIから設定する

  • メニュー -> サービス -> FTP
    • 「有効」にする(普通に設定する)

SSHサーバ設定

WebGUIから設定する

  • メニュー -> サービス -> SSH
    • 「有効」にする(その他項目は空白のまま)

SSHキーファイル転送

  • FTPで「git」に接続する
  • ホームにSSH公開鍵を「git.pub」という名前で格納
  • ホームに「bin」フォルダを作成
  • ホームに「.cshrc」ファイルを作成
1
2
set path=($HOME/bin $path)

Gitoliteのセットアップを行う

  • NAS4Freeへコンソールからログインし、下記コマンドを実行
1
2
3
4
5
6
$ su git
$ cd /home/git
$ git clone git://github.com/sitaramc/gitolite
$ gitolite/install -ln
$ gitolite setup -pk $HOME/git.pub

リポジトリの作成

管理用リポジトリをclone

1
2
$ git clone git@サーバ:gitolite-admin

リポジトリの追加(myreposを追加)

  • conf/gitolite.conf の編集
1
2
3
4
5
6
7
8
9
repo gitolite-admin
    RW+     =   git

repo testing
    RW+     =   @all

repo myrepos
    RW+     =   git

※下2行を追加

gitolite-adminをcommitしてpush

1
2
$ git commit -a
$ git push

myreposをclone

1
$ git clone git@サーバ:myrepos

これで開発できる。

参考URL