summaryrefslogtreecommitdiffstats
path: root/roles/git/files/etc/nginx/sites-available/git
diff options
context:
space:
mode:
authorGuilhem Moulin <guilhem@fripost.org>2015-09-21 18:48:19 +0200
committerGuilhem Moulin <guilhem@fripost.org>2015-09-21 18:48:19 +0200
commit9d9fe107d0de34602775cbee2ca5208d604e0c5b (patch)
treeb269e53cc63202c5e4114d731f912f7b33676be7 /roles/git/files/etc/nginx/sites-available/git
parentf13bae3697d23437af6af325262e75281dec2e30 (diff)
Replace gitweb with cgit.
Diffstat (limited to 'roles/git/files/etc/nginx/sites-available/git')
-rw-r--r--roles/git/files/etc/nginx/sites-available/git74
1 files changed, 44 insertions, 30 deletions
diff --git a/roles/git/files/etc/nginx/sites-available/git b/roles/git/files/etc/nginx/sites-available/git
index 9510620..75c1512 100644
--- a/roles/git/files/etc/nginx/sites-available/git
+++ b/roles/git/files/etc/nginx/sites-available/git
@@ -7,31 +7,38 @@ server {
access_log /var/log/nginx/git.access.log;
error_log /var/log/nginx/git.error.log info;
+ location ^~ /static/ {
+ alias /usr/share/cgit/;
+ expires 30d;
+ }
+
# Bypass the CGI to return static files stored on disk. Try first repo with
# a trailing '.git', then without.
- location ~* "^/((?U)[^/]+)(?:\.git)?/objects/([0-9a-f]{2}/[0-9a-f]{38}|pack/pack-[0-9a-f]{40}\.(?:pack|idx))$" {
+ location ~* "^/((?U)[^/]+)(?:\.git)?/objects/(?:[0-9a-f]{2}/[0-9a-f]{38}|pack/pack-[0-9a-f]{40}\.(?:pack|idx))$" {
root /var/lib/gitolite/repositories;
try_files /$1.git/objects/$2 /$1/objects/$2 =404;
+ expires 30d;
+ # TODO honor git-daemon-export-ok
}
- # Disallow push over HTTP(S)
- location ~* ^/[^/]+/git-receive-pack$ {
- return 403;
- }
+ # disallow push over HTTP/HTTPS
+ location ~* "^/[^/]+/git-receive-pack$" { return 403; }
- location ~* ^/[^/]+/(:?HEAD|info/refs|objects/info/[^/]+|git-upload-pack)$ {
- fastcgi_param PATH_INFO $uri;
- fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
- fastcgi_param GIT_HTTP_EXPORT_ALL 1;
- fastcgi_param GIT_PROJECT_ROOT /var/lib/gitolite/repositories;
- include fastcgi/params;
- fastcgi_pass unix:/var/run/fcgiwrap.socket;
+ location ~* "^/[^/]+/(?:HEAD|info/refs|objects/info/[^/]+|git-upload-pack)$" {
gzip off;
+ include uwsgi_params;
+ uwsgi_modifier1 9;
+ uwsgi_param GIT_PROJECT_ROOT /var/lib/gitolite/repositories;
+ uwsgi_pass unix:/run/uwsgi/app/git-http-backend/socket;
}
- # Redirect to gitweb otherwise
- location ~ ^/([^/]+/?)?$ {
- return 302 $scheme://gitweb.fripost.org/$1;
+
+ # send all other URLs to cgit
+ location / {
+ gzip off;
+ include uwsgi_params;
+ uwsgi_modifier1 9;
+ uwsgi_pass unix:/run/uwsgi/app/cgit/socket;
}
}
@@ -49,30 +56,37 @@ server {
access_log /var/log/nginx/git.access.log;
error_log /var/log/nginx/git.error.log info;
+ location ^~ /static/ {
+ alias /usr/share/cgit/;
+ expires 30d;
+ }
+
# Bypass the CGI to return static files stored on disk. Try first repo with
# a trailing '.git', then without.
- location ~* "^/((?U)[^/]+)(?:\.git)?/objects/([0-9a-f]{2}/[0-9a-f]{38}|pack/pack-[0-9a-f]{40}\.(?:pack|idx))$" {
+ location ~* "^/((?U)[^/]+)(?:\.git)?/objects/(?:[0-9a-f]{2}/[0-9a-f]{38}|pack/pack-[0-9a-f]{40}\.(?:pack|idx))$" {
root /var/lib/gitolite/repositories;
try_files /$1.git/objects/$2 /$1/objects/$2 =404;
+ expires 30d;
+ # TODO honor git-daemon-export-ok
}
- # Disallow push over HTTP(S)
- location ~* ^/[^/]+/git-receive-pack$ {
- return 403;
- }
+ # disallow push over HTTP/HTTPS
+ location ~* "^/[^/]+/git-receive-pack$" { return 403; }
- location ~* ^/[^/]+/(:?HEAD|info/refs|objects/info/[^/]+|git-upload-pack)$ {
- fastcgi_param PATH_INFO $uri;
- fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
- fastcgi_param GIT_HTTP_EXPORT_ALL 1;
- fastcgi_param GIT_PROJECT_ROOT /var/lib/gitolite/repositories;
- include fastcgi/params;
- fastcgi_pass unix:/var/run/fcgiwrap.socket;
+ location ~* "^/[^/]+/(?:HEAD|info/refs|objects/info/[^/]+|git-upload-pack)$" {
gzip off;
+ include uwsgi_params;
+ uwsgi_modifier1 9;
+ uwsgi_param GIT_PROJECT_ROOT /var/lib/gitolite/repositories;
+ uwsgi_pass unix:/run/uwsgi/app/git-http-backend/socket;
}
- # Redirect to gitweb otherwise
- location ~ ^/([^/]+/?)?$ {
- return 302 $scheme://gitweb.fripost.org/$1;
+
+ # send all other URLs to cgit
+ location / {
+ gzip off;
+ include uwsgi_params;
+ uwsgi_modifier1 9;
+ uwsgi_pass unix:/run/uwsgi/app/cgit/socket;
}
}