legit
一个用Go语言编写的Git网页前端。
发音随你喜好;我更喜欢唤起内心戴贝雷帽的法国人,说"Oui, il est le git!"
但是没错,它确实很正宗,毫无疑问。
功能特点
• 完全可定制的模板和样式表。 • 通过http(s)进行克隆。 • 更现代的HTML。 • 非CGI。
安装
克隆它,然后用'go build'构建。
配置
使用yaml进行配置。默认在当前目录查找'config.yaml';使用'--config'标志指向其他位置。
config.yaml示例:
repo:
scanPath: /var/www/git
readme:
- readme
- README
- readme.md
- README.md
mainBranch:
- master
- main
ignore:
- foo
- bar
dirs:
templates: ./templates
static: ./static
meta:
title: git good
description: i think it's a skill issue
server:
name: git.icyphox.sh
host: 127.0.0.1
port: 5555
这些选项大多不言自明,但值得注意的是:
• repo.scanPath:所有Git仓库所在的位置。legit目前还不支持遍历子目录。 • dirs:用于覆盖默认模板和静态资源。 • repo.readme:要查找的readme文件。 • repo.mainBranch:要查找的主分支名称。 • repo.ignore:要忽略的仓库,相对于scanPath。 • server.name:用于go-import元标签和克隆URL。
注意事项
• 在像relayd(8)或nginx这样的TLS终止代理后运行legit。 • 克隆只在裸仓库中有效 -- 这是Git固有的限制。你仍然可以在legit中正常查看非裸仓库。 • 默认的head.html模板使用我的CDN获取字体 -- 你可能想要或不想要这个。 • 虽然支持通过https推送,但因为认证很麻烦所以被禁用。请使用ssh。 • 在OpenBSD上,路径使用unveil(2)进行保护。
构想
• 只通过Tailscale可用的"私有"仓库。 • 支持类似cgit的过滤器(用于readme等)。
许可证
legit采用MIT许可证。