setup issue: cgit only shows summary page

John Keeping john at
Fri Jan 16 18:05:45 CET 2015

On Fri, Jan 16, 2015 at 05:30:56PM +0100, Lukas Tribus wrote:
> I've a probably stupid setup issue, I just can't figure it out and need
> a fresh set of eyes:
> I compiled cgit from source (@d6c405077) and installed it
> on a Ubuntu VM together with nginx through fcgiwrapper.
> When I open cgit in my browser it recognizes the repositories, etc,
> but I only ever see the summary page with the list of repositories.
> If I click on one of them ("/cgit/<repo>/" or "/cgit/cgit.cgi/<repo>/")
> it does open in the browser but the content is always the summary page of
> all repositories, never the actual repository itself.
> Repositories are correctly discovered and for example the "idle" column shows
> correct values, but I can't seem to open one of those repositories.
> I triple checked file permissions, that doesn't appear to be the problem.
> I've also attached strace to the fcgiwrapper process monitoring its cgit
> children, and I don't see any permission problems.
> cgitrc is:
> #virtual-root=/cgit/
> css=/cgit/cgit.css
> logo=/cgit/cgit.png
> favicon=/cgit/favicon.ico
> remove-suffix=1
> scan-path=/srv/git
> and the relevant part of the nginx config is:
> root /var/www/htdocs;
> location /cgit/ {
> 		try_files $uri @cgitcgi;
> }
> location @cgitcgi {
> 		fastcgi_param   DOCUMENT_ROOT $document_root;
> 		fastcgi_param   SCRIPT_NAME /cgit/cgit.cgi;
> 		fastcgi_param   QUERY_STRING            $query_string;
> 		fastcgi_param   REQUEST_METHOD          $request_method;
> 		fastcgi_param   CONTENT_TYPE            $content_type;
> 		fastcgi_param   CONTENT_LENGTH          $content_length;
> 		fastcgi_param   REQUEST_URI             $request_uri;
> 		fastcgi_param   SERVER_PROTOCOL         $server_protocol;
> 		fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
> 		fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;
> 		fastcgi_param   REMOTE_ADDR             $remote_addr;
> 		fastcgi_param   REMOTE_PORT             $remote_port;
> 		fastcgi_param   SERVER_ADDR             $server_addr;
> 		fastcgi_param   SERVER_PORT             $server_port;
> 		fastcgi_param   SERVER_NAME             $server_name;
> 		fastcgi_param   HTTPS                   $https if_not_empty;
> 		fastcgi_pass        unix:/var/run/fcgiwrap.socket;
> }

I think you either need to set PATH_INFO here *or* to avoid setting
SCRIPT_NAME.  CGit uses SCRIPT_NAME to decide whether to use path URLs
or the "url=" query parameter.  If it's using path URLs then you need to
have PATH_INFO specified as the full path (which must start with

Note that I've never used fcgiwrapper so I don't know whether it will
set either of those automatically; I'm just going on how CGit behaves.

More information about the CGit mailing list