Cgit et nginx

cgit est maintenant dans les dépôts de jessie. Quelqu’un a-t-il déjà réussi à le mettre en place avec nginx? Je galère depuis hier soir, mais il y a toujours un souci au niveau des url.

Voici ma config.
/etc/cgitrc :

[code]css=/cgit.css
logo=/cgit.png
enable-http-clone=1
enable-git-config=1
enable-commit-graph=1
remove-suffix=1
virtual-root=/
snapshots=tar.gz zip

scan-path=/media/PIDATA/www/gitreps/
"[/code]

configuration de nginx :

[code]server {
listen 80;
server_name localhost;
index cgit.cgi;

root                  /usr/share/cgit;
try_files             $uri @cgit;

location @cgit {
  include             fastcgi_params;
  fastcgi_param       SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi;
  fastcgi_param       PATH_INFO       $uri;
  fastcgi_param       QUERY_STRING    $args;
  fastcgi_param       HTTP_HOST       $server_name;
  fastcgi_pass        unix:/run/fcgiwrap.socket;
}

}
[/code]

j’ai cgit + nginx installé sur une raspbian, le piège dans la config de cgit c’est que l’ordre des options a une importance, il faut impérativement mettre virtual-root en première ligne. :wink:

voici mes configs pour info, mais c’est assez proche de ce que tu as :

virtual-root=/
snapshots=tar.xz
scan-path=/srv/data/git
enable-index-owner=0
server {
  server_name git.rpi;
  listen 443 ssl;
  root /srv/www/cgit;

  location / {
    include auth;
    try_files $uri @cgit;
  }

  location @cgit {
    fastcgi_pass unix:/run/fcgiwrap.socket;
    fastcgi_param SCRIPT_FILENAME $document_root/cgit.cgi;
    fastcgi_param PATH_INFO $uri;
    fastcgi_param QUERY_STRING $args;
    include fastcgi_params;
  }
}

Merci
Hum, c’est mieux, mais il y a encore un souci. Lorsque je clique sur “tree” ou “log” par exemple, il me dit “No repositories found”.

L’url est pourtant bien : localhost/mondepot/tree/

à mon avis tu devrais essayer en supprimant l’option remove-suffix=1

Mais t’es génial toi tu sais! Ça fonctionne en effet. Par contre ce n’est pas très élégant comme présentation : J’ai pour url “http://localhost/hostathome/.git/diff/”

cool 8)

ton problème vient du fait que tu pointes sur des repositories normaux, il faudrait utiliser des bare (cf git init/git clone --bare)
avec ça mes urls sont de la forme git.rpi/dotfiles.git/diff/
et c’est parce que j’ai choisi de suffixer les répertoires en .git, ce qui n’est pas une obligation.

sinon tu devrais pouvoir gérer ça dans la config nginx avec de la réécriture d’url, mais ça devient trop tricky pour moi :slightly_smiling:

Ouais, c’est ce que j’ai cru comprendre. Bon déjà, un grand merci. :023
Il me reste à trouver

  • comment pouvoir cloner à partir de mon nom de domaine (via http),
  • donner la possibilité à tous de pousser sur mon serveur.