How do I have to configure gitweb and gitolite so they'll work together?

Jee picture Jee · Aug 27, 2011 · Viewed 16.4k times · Source

I am trying to make gitweb work with gitolite... but unsuccessful so far.
I am working on a RedHat Linux machine. A user called git exists.

gitolite is installed under: /home/git
Repository location: /home/git/repositories

Please note that, gitweb was working fine with plain vanilla git. Now i am trying to make it work with gitolite.

Here are what my files look like:

  • /etc/gitweb.conf

    $projectroot = "/home/git/repositories";
    @git_base_url_list = qw(ssh://[MyHostName]/home/git/projects.list);
    $projects_list = "/home/git/projects.list"
    
  • /home/git/projects.list

    myrepo1.git
    myrepo2.git 
    
  • /home/git/.gitolite.rc:

    $PROJECTS_LIST = $ENV{HOME} . "/projects.list";
    $GL_GITCONFIG_KEYS = "gitweb.url receive.denyNonFastforwards receive.denyDeletes";
    

What configuration have I missed? I have not made any changes to Apache.

Web URL: http://MyHostName/git
This gives a 404 error saying - No repositories found.

Answer

Adam Sharp picture Adam Sharp · May 30, 2012

I recently set up gitolite and gitweb and found that /etc/gitweb.conf required very little configuration. What you have looks right to me. What are the permissions like on /home/git/repositories? You may find they are too restrictive. Try this out:

$ chmod -R 775 /home/git/repositories

That's what solved the issue for me, (though I imagine there's a more secure way to set up the permissions). If that works, I'd recommend just having a look into giving Apache (or whatever user account gitweb is being executed under) more fine-grained permissions over the repositories directory.

I also have this in my .gitolite.rc:

GIT_CONFIG_KEYS => 'gitweb\.(owner|description|category)',

so that the following works in <gitolite-admin>/conf/gitolite.conf:

config gitweb.owner         =   owner name
config gitweb.description   =   some description
config gitweb.category      =   some category