# elgit A git web frontend written in Go, forked from elgit after the author moved on. ## Fork changes - Uses gomponents instead of html/template. - Better integration with [gitolite](https://gitolite.com/gitolite/index.html) - repo.ignore is ignored: only repositories listed in projects.list are shown. - Supports subdirectories - Removed syntax highlighting ## Features - Cloning over http(s). - Less archaic HTML. - Not CGI. ## Installing Clone it, 'go build' it. ## Config Uses yaml for configuration. Looks for a 'config.yaml' in the current directory by default; pass the '--config' flag to point it elsewhere. Example config.yaml: ``` repo: root: /var/lib/gitolite readme: - readme - README - readme.md - README.md mainBranch: - master - main meta: title: git good description: i think it's a skill issue server: name: git.icyphox.sh host: 127.0.0.1 port: 5555 compress: true development: false ``` These options are fairly self-explanatory, but of note are: - `repo.root`: where all your git repos live (or die). This should contain projects.list and repositories/ - `repo.readme`: readme files to look for. - `repo.mainBranch`: main branch names to look for. - `repo.unlisted`: repos to hide, relative to root/repositories. - `server.name`: used for go-import meta tags and clone URLs. - `server.compress`: automatically compress responses with gzip or zstd ## Notes - Run elgit behind a TLS terminating proxy like relayd(8) or nginx. - Cloning only works in bare repos---this is a limitation inherent to git. You can still view non-bare repos just fine in elgit. - Pushing over https, while supported, is disabled because auth is a pain. Use ssh. - Paths are unveil(2)'d on OpenBSD. ## License elgit is licensed under MIT.