diff options
| author | saturneric <[email protected]> | 2025-11-02 00:28:21 +0000 |
|---|---|---|
| committer | saturneric <[email protected]> | 2025-11-02 00:28:21 +0000 |
| commit | 0f5dccc2f6eb17ccd479600cf6e83370890ba3f4 (patch) | |
| tree | 3c81ff931ceec71db7d1f7c5a6b88c19b1332e73 | |
| parent | chore(git): ignore `cscope.*` index files (diff) | |
| download | cgit-0f5dccc2f6eb17ccd479600cf6e83370890ba3f4.tar.gz cgit-0f5dccc2f6eb17ccd479600cf6e83370890ba3f4.zip | |
feat(cgit): add initial config and lighttpd setup
* Introduce config files for `cgit` and its repository list
* Add `lighttpd` setup for proxying git and serving web UI
* Enable caching, repo sorting, snapshot formats, and custom
about page filters for improved usability
* Configure mimetypes and file patterns for repo info pages
* Support web clone URLs and sectioned repo display
Future changes may expand repository listing and adjust filters
for project requirements.
| -rw-r--r-- | cgitrc | 153 | ||||
| -rw-r--r-- | cgitrepos | 2 | ||||
| -rw-r--r-- | lighttpd.conf | 27 |
3 files changed, 182 insertions, 0 deletions
@@ -0,0 +1,153 @@ +# +## cgit config +# reference: https://linux.die.net/man/5/cgitrc +# +# +# Enable caching of up to 1000 output entries +cache-size=100000 + +## ttl for root page +cache-root-ttl=30 + +## ttl for repo summary page +cache-repo-ttl=30 + +## ttl for other dynamic pages +cache-dynamic-ttl=15 + +## ttl for static pages (addressed by SHA-1) +cache-static-ttl=-1 + +# css +css=/cgit.css +logo=/cgit.png +#logo=https://git-scm.com/images/logos/downloads/Git-Logo-1788C.png + +# Enable ASCII art commit history graph on the log pages +enable-commit-graph=1 + +enable-follow-links=1 +enable-subject-links=1 +enable-index-links=1 + +enable-git-config=1 +enable-html-serving=1 + +enable-http-clone=1 +enable-git-clone=1 + +enable-index-owner=0 +enable-gitweb-owner=1 + +enable-log-filecount=1 +enable-log-linecount=1 + +enable-remote-branches=1 +enable-tree-linenumbers=1 + +# summary info +summary-branches=10 +summary-log=10 +summary-tags=10 + +# Sort by age/name +repository-sort=name +branch-sort=age +commit-sort=age + +# Enable statistics per week, month and quarter +max-stats=year + +# show local time not utc +local-time=1 + +root-title=Git Repos of Saturneric +root-desc=Hosting opensource projects related to Saturneric +root-readme=/var/www/about.html +#footer=/var/www/footer.html + +# if you do not want that webcrawler (like google) index your site +robots=noindex, nofollow + +# if cgit messes up links, use a virtual-root. For example has cgit.example.org/ this value: +virtual-root=/ + +side-by-side-diffs=0 + +# needs python-pygments +# source-filter=/usr/lib/cgit/filters/syntax-highlighting.py + +# Format markdown, restructuredtext, manpages, text files, and html files through the right converters +about-filter=/usr/lib/cgit/filters/about-formatting.sh + +# available snaps +snapshots=tar.gz zip + +# Specify some default clone urls using macro expansion +clone-url=https://git.bktus.com/$CGIT_REPO_URL.git + +## +## List of common mimetypes +## + +mimetype.gif=image/gif +mimetype.html=text/html +mimetype.jpg=image/jpeg +mimetype.jpeg=image/jpeg +mimetype.pdf=application/pdf +mimetype.png=image/png +mimetype.svg=image/svg+xml + +## +### Search for these files in the root of the default branch of repositories +### for coming up with the about page: +### +readme=:README.md +readme=:readme.md +readme=:README.mkd +readme=:readme.mkd +readme=:README.rst +readme=:readme.rst +readme=:README.html +readme=:readme.html +readme=:README.htm +readme=:readme.htm +readme=:README.txt +readme=:readme.txt +readme=:README +readme=:readme +readme=:INSTALL.md +readme=:install.md +readme=:INSTALL.mkd +readme=:install.mkd +readme=:INSTALL.rst +readme=:install.rst +readme=:INSTALL.html +readme=:install.html +readme=:INSTALL.htm +readme=:install.htm +readme=:INSTALL.txt +readme=:install.txt +readme=:INSTALL +readme=:install + +# sections +section-from-path=1 +section-sort=1 + +# repos +max-repo-count=99999 +remove-suffix=1 +scan-hidden-path=1 +scan-path=/home/git/repositories + +## +## List of repositories. +## PS: Any repositories listed when section is unset will not be +## displayed under a section heading +## PPS: This list could be kept in a different file (e.g. '/etc/cgitrepos') +## and included like this: +## include=/etc/cgitrepos +## + +include=/etc/cgitrepos
\ No newline at end of file diff --git a/cgitrepos b/cgitrepos new file mode 100644 index 0000000..2ee70a0 --- /dev/null +++ b/cgitrepos @@ -0,0 +1,2 @@ +## +## List of repositories.
\ No newline at end of file diff --git a/lighttpd.conf b/lighttpd.conf new file mode 100644 index 0000000..99bdca7 --- /dev/null +++ b/lighttpd.conf @@ -0,0 +1,27 @@ +server.modules += ( "mod_cgi", "mod_rewrite", "mod_alias", "mod_proxy", "mod_access" ) + +$HTTP["url"] =~ "^/(.+?)\.git/(info/refs|git-upload-pack)$" { + $HTTP["request-method"] !~ "^(GET|POST)$" { + url.access-deny = ("") + } + + proxy.server = ( + "" => (( + "host" => "gitea", + "port" => 3000, + )) + ) +} +else $HTTP["url"] =~ "^/" { + server.document-root = "/usr/share/webapps/cgit/" + server.indexfiles = ("cgit.cgi") + + cgi.assign = ("cgit.cgi" => "") + mimetype.assign = ( ".css" => "text/css" ) + + # Rewrite any other url but the asset urls to be handled by the cgit + # executable. Use with virtual-root=/ cgitrc setting. + url.rewrite-once = ( + "^/((?!cgit\.(css|png)$)(?!favicon\.ico$)(?!robots\.txt$).*)$" => "/cgit.cgi/$1" + ) +}
\ No newline at end of file |
