GitLabをインストールする?でGitLabサーバが使えるようになりました。gitoliteも使えるのでSSH経由でのアクセスも可能のはずです。そこで、HTTPでのアクセス手段を追加してみます。実際はセキュリティの関係でHTTPSを使う場合が多いと思いますが、設定はほぼ同じです。何が問題かSSHが問題なく使える場合はいいのですが、ファイアウォールが厳しいところはHTTPまたはHTTPSしか通らない場合があります(私の職場はそうです)。そこでHTTPまたはHTTPSも使いたいところです。認証についてSSHではgitoliteの公開鍵認証でリポジトリにアクセスできましたがHTTPだとその手段がありません。HTTPに対応しているため、HTTP認証を使えばリポジトリにアクセスすることが可能です。HTTPでの設定方法が以下のサイトに示されています。https://github.com/sitaramc/gitolite/blob/pu/doc/http-backend.mkdこれでHTTPでリポジトリにアクセスできますが、HTTP認証を使うため、Webサーバの認証ファイルなどを編集しなければなりません。これではGitLabのアカウントで認証できません。GitLabとgitoliteでは内部で使っているアカウント名が異なります(.gitolite/conf/gitolite.confを見れば分かります)。それらの紐付けをするためにGibLabのデータベースを利用する必要もあります。gitlab-httpそこで、それらの問題を解決するためにgitlab-httpという仕組みを考えました。実現方法は以下の通りです。ApacheのHTTP認証をフックしてGitLabで認証を行う認証が通ったら、GitLabアカウントからgitoliteアカウントを紐付けしてgitoliteに渡すこんな感じです。glgl-http-authそれを実装したスクリプトがglgl-http-auth(ぐるぐる-http-authと読んで下さい。GitLab-GitoLiteです)です。gitlab-http.tar.gz仕組みは簡単で、WSGIAuthUserScriptで認証をフックして、glgl-http-authのcheck_password()をコールGitLabにアクセスして認証(Railsをよく知らないのでHTTPアクセスを使います。効率的な方法もあると思います)認証が通ったら、GitLabのデータベースからgitoliteのアカウント名を取得して環境変数REMOTE_USERに格納するgitoliteのHTTP認証では環境変数REMOTE_USERが参照されますこの方法によりアクセスを実現しています。セットアップ必要なファイルはglgl-http-authのみなのでセットアップは簡単だと思います。mod_wsgiです。suEXECを使っているので、ドキュメントルートの下に配置する必要があるようです。/var/www/gitlab-http/glgl-http-authというように配置して実行属性をつけて下さい。apacheの設定はexample.confを参考にしてみて下さい。不親切な内容ですが、コメント欄で指摘があれば情報を足していきたいと思います。http://gitlab.foo.com/git/myproject.gitでユーザー名とパスワードを聞かれてアクセスできるはずです。GitLabのアカウントはメールアドレスなのでURLに埋め込むときは@を%40で記述します(http://dobuo%40mymail.foo.com@gitlab.foo.com/git/myproject.gitという感じ)。