all repos — elgit @ fc65017b75f46e02bb32f43dce61fcea8090f785

fork of legit: web frontend for git, written in go

..
-rw-r--r--
3770
style.css

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.