summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ansible/roles/trove-setup/templates/lighttpd/git-httpd.conf14
-rw-r--r--http-assets/index.html2
-rw-r--r--share/etc/cgitrc2
3 files changed, 17 insertions, 1 deletions
diff --git a/ansible/roles/trove-setup/templates/lighttpd/git-httpd.conf b/ansible/roles/trove-setup/templates/lighttpd/git-httpd.conf
index 8b4a22e..f2d61c9 100644
--- a/ansible/roles/trove-setup/templates/lighttpd/git-httpd.conf
+++ b/ansible/roles/trove-setup/templates/lighttpd/git-httpd.conf
@@ -10,6 +10,7 @@ server.modules = (
"mod_alias",
"mod_compress",
"mod_redirect",
+ "mod_rewrite",
"mod_cgi",
"mod_auth",
"mod_setenv",
@@ -61,6 +62,19 @@ $HTTP["url"] =~ "^/git/.*$" {
)
}
+# Avoid needlessly long cgit URLs. This must correspond with the
+# 'virtual-root' setting in /etc/cgitrc.
+url.rewrite-if-not-file = (
+ "^/cgit/(.*)$" => "/cgi-bin/cgit.cgi/$1",
+)
+
+# Allow /baserock and /delta, but redirect them to the proper /cgit/ path.
+# Troves can contain arbitrary project names, so we can't do this for all
+# projects, we just special-case the ones for git.baserock.org.
+$HTTP["url"] =~ "^/(baserock|delta)(/.*)?$" {
+ url.redirect = ( "^/(.*)" => "/cgit/$1" )
+}
+
$HTTP["scheme"] == "https" {
include "git-auth.conf"
diff --git a/http-assets/index.html b/http-assets/index.html
index 0a8c3f9..18069ec 100644
--- a/http-assets/index.html
+++ b/http-assets/index.html
@@ -1,5 +1,5 @@
<html><head>
-<meta http-equiv="refresh" content="0; /cgi-bin/cgit.cgi">
+<meta http-equiv="refresh" content="0; /cgit/">
</head>
<body>
</body>
diff --git a/share/etc/cgitrc b/share/etc/cgitrc
index 28540dd..83daf94 100644
--- a/share/etc/cgitrc
+++ b/share/etc/cgitrc
@@ -24,3 +24,5 @@ mimetype.png=image/png
mimetype.svg=image/svg+xml
scan-path=/home/git/repos/
+
+virtual-root=/cgit/