5

I'm currently hosting my own git-repos for my private projects. For this, I use Apache and the standard git http-backend.

Now, a repo can be accessed under an URL like this:

http://vcs.myserver.lc/git/Repo.git

With this URL, I can push, fetch and clone to/from this repo using . However, opening this URL in a Browser simply gives me a blank page and now I'm looking for a way to avoid this.

Instead, I'd like Apache to present a page with some infos like:

This is not a web-page, this is a git-repo. You can clone this repo using git clone [URL] ...

It would be nice if [URL] would be replaced with the current URL (using PHP for example), but plain HTML would be fine, too.

I know this should be possible since does the same with their repos.

I managed to do something similar for the vcs.myserver.lc-domain by specifying a DocumentRoot in the VHost-config file:

DocumentRoot /srv/http/vcs/

In this path, i put a simple index.html-file with basic instructions.

So, is their any simple way of showing an info side for browsers while the git-client can still work with the repo? Can I redirect browsers to a specific info-site?

-1

Yes, that's actually relatively simple. You need to tell apache to only use the git-http-backend for things git is interested in, which is anything that matches ^.*/(HEAD|info/refs|objects/info/.*|git-(upload|receive)-pack)$

  • Would you elaborate? Using AliasMatch with that expression doesn't work. – GnP Aug 26 '15 at 21:02
  • Ok, I've figured it out and your answer was the pointer I needed. I created an AliasMatch ^/git/.*.git/$ <some_txt_file_with_basic_instructions> to handle browsers and a ScriptAliasMatch ^/git/(.*\.git/.*) /usr/lib/git-core/git-http-backend/$1 where I previously had the textbook ScriptAlias. – GnP Aug 27 '15 at 18:18

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.