¿Cómo puedo crear "páginas" de Gitweb para cada uno de mis usuarios?

Gitweb ignora el

SetEnv GIT_PROJECT_ROOT /path/to/user/git 

Aunque funciona para git. Puedo clonar y enviar a mis repositorys. Si habilito gitweb, cada usuario puede ver TODOS los repositorys de los usuarios y el código dentro.

¿Cómo puedo crear "páginas" de Gitweb para cada uno de mis usuarios?

La respuesta aquí se encuentra en la variable $ per_request_config en el file gitweb.conf (generalmente ubicado en /etc/gitweb.conf)

Asumiendo que / git / es el directory raíz de su repository de git, y cada usuario tiene un directory en esa carpeta, esto funcionará para usted:

 our $per_request_config = sub { $projectroot = "/git/" . $cgi->remote_user; }; 

Su configuration de Apache Vhost podría verse así:

 <VirtualHost *:443> SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP SSLCertificateFile /ssl/mydomain.com.crt SSLCertificateKeyFile /ssl/mydomain.com.key DocumentRoot /git/user ServerName user.mydomain.com SetEnv GIT_PROJECT_ROOT /git/user SetEnv GIT_HTTP_EXPORT_ALL <Directory /> Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch AuthType Basic AuthName "Private Git Access" AuthUserFile "/git/git-auth" Require valid-user AddHandler cgi-script .cgi DirectoryIndex gitweb.cgi </Directory> # This pattern matches git operations and passes them to http-backend ScriptAliasMatch "(?x)^/(.*/(HEAD | info/refs | objects/(info/[^/]+ | [0-9a-f]{2}/[0-9a-f]{38} | pack/pack-[0-9a-f]{40}\.(pack|idx)) | git-(upload|receive)-pack))$" /usr/libexec/git-core/git-http-backend/$1 </VirtualHost> 

Encontré que esta es la forma más fácil para mí de administrar git y usuarios.

PERO, si está siguiendo un model más tradicional, podría vincular a una carpeta 'git' en el directory de inicio de cada usuario.

 our $per_request_config = sub { $projectroot = "/home/" . $cgi->remote_user . "/git/"; };