GitリポジトリはHTTP以外の単純なファイル共有でも管理できますが、社内などであればHTTPサーバを通じて管理したいと思うことでしょう。GitHubを使いたいけれど使えない事情がある企業もあります。 そんな時にはGrackを使ってみましょう。とてもシンプルなGit管理サーバです。

Grackの設定です。リポジトリが複数入るディレクトリをrootとして指定します。

require 'grack/app'
require 'grack/git_adapter'

config = {
  :root => '/path/to/bare/repositories',
  :allow_push => true,
  :allow_pull => true,
  :git_adapter_factory => ->{ Grack::GitAdapter.new }
}

run Grack::App.new(config)

後はサーバを立ち上げるだけです。

$ bundle exec rackup --host localhost --port 8080 config.ru

これで localhost:8080 のGitサーバが立ち上がります。後は /(リポジトリ名).git でクローン可能です。ローカルのディレクトリを指定するだけで簡単に使えますので、社内で立ち上げるGitサーバに向いているのではないでしょうか。

GrackはRuby製のオープンソース・ソフトウェア(MIT License)です。

grackorg/grack: Git Smart HTTP Server Rack Implementation