fork of legit
- Go 80.2%
- Nix 11.3%
- CSS 8.3%
- Just 0.2%
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
- 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.