AgeCommit message (Collapse)AuthorLines
Cut the nginx config down to a generic drop-inBryce Kwon-310/+68
The old file was a complete nginx.conf with TLS, compression, catch-all hosts and security headers, and it had to be taken apart before it ran beside a distribution's own nginx.conf. A server block included from the http block leaves the user, the MIME types and the logs to the distribution. Its header gives one default path per thing, adjusted where a system differs, which leaves packagers a plain base to adapt rather than a table for each distribution. HTTPS and git-http-backend are commented examples, so the file serves plain HTTP as shipped. The backend takes only the three smart HTTP paths at cgit's own repository urls, so every page still reaches cgit. git refuses a repository another user owns, which failed every clone until safe.directory was set for the backend, and a 3 MB push got 413 until the location lifted nginx's body limit. The split empties SCRIPT_NAME because a second SCRIPT_NAME after the include reaches fcgiwrap as well, and cgit reads the first one, which put every link under the request path. cgit sends nosniff and a locked policy on raw output itself, so the configs no longer carry one. The t0004 check that all three agree goes here, with the first of them to drop it.
Say cgit pages carry no expiry, not no headersBryce Kwon-1/+1
Behind an auth filter every page carries Cache-Control: private and the login page no-store, so only the missing expiry holds on every site.
Spell url the way the tree mostly doesBryce Kwon-8/+8
Names keep their own spelling, so the URL trailer and CGIT_REPO_URL stay in capitals.
Drop config comments that restate their lineBryce Kwon-4/+1
Say each routing fact once in the server configsBryce Kwon-3/+2
Trim the header notes in the server configsBryce Kwon-9/+3
Each config listed every header cgit sends, where only its own nosniff and strict policy on raw bytes bear on the headers set there. The list also missed Vary, and the Apache one called Apache a proxy.
Drop the snapshot format from the query commentBryce Kwon-1/+1
A snapshot's format comes from the suffix of its filename in the path, not from the query string.
Name every default asset link in the configsBryce Kwon-7/+7
The nginx sub-path recipe moved only the stylesheet and the logo, and left the script and the icon pointing at the domain root.
Pin the server configs to the releases they suitBryce Kwon-0/+2
Each release named is the one its project's own site listed as current on 2026-10-29.
Mark a page behind an auth filter privateBryce Kwon-4/+5
Only the login page carried a Cache-Control, so a page an auth filter had let a visitor see could be kept by a cache shared with the next visitor. The page also varies on the cookie that got them in.
Unify the docs, samples and extensionsBryce Kwon-5/+4
Refresh the server configs and drop unsafe-inlineBryce Kwon-43/+30
style-src allowed inline styles only for the diffstat bars, which take their width from colspan instead. t0004 now checks that the three configs pin the same policy.
Refuse unknown and spoofed hostnames in nginx.confBryce Kwon-0/+31
Rework the response headers in the server configsBryce Kwon-11/+45
Drop the Last-Modified, Expires and ETag headersBryce Kwon-0/+6
Make the server configs complete standalone filesBryce Kwon-142/+215
Reorganise the tree into vendor/ and custom/Bryce Kwon-0/+0