diff options
| author | Lena <lena@omega> | 2026-08-01 00:00:00 +0000 |
|---|---|---|
| committer | Lena <lena@omega> | 2026-08-01 00:00:00 +0000 |
| commit | bb6bc2387d58c737dbf92e73f8544bf39319dbd8 (patch) | |
| tree | 6d5eaf5dac213074cd832da50f64260fce728fed /templates/login.html | |
| download | git-forge-master.tar.gz | |
A small self-hosted git forge: HTTP push and pull, cgit browsing,
local and OIDC accounts, TOTP, scoped push tokens, per-repo
permissions, issues, a wiki, and outbound mail.
It does not reimplement git. git-http-backend and cgit run as CGI
behind its own listener, which authorises every request before
exec'ing either. One binary, one data directory, one listener: no
database, no JavaScript, and state is JSON in a git repo with a
working tree.
Diffstat (limited to 'templates/login.html')
| -rw-r--r-- | templates/login.html | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/templates/login.html b/templates/login.html new file mode 100644 index 0000000..eb9dcd9 --- /dev/null +++ b/templates/login.html @@ -0,0 +1,33 @@ +{{define "title"}}Sign in - {{.Site}}{{end}} +{{define "main"}} +<h2>Sign in</h2> +<form method="post" action="/login"> +<input type="hidden" name="csrf" value="{{.CSRF}}"> +<p> +<label for="name">Account</label> +<input id="name" name="name" autocomplete="username" autocapitalize="none" required> +</p> +<p> +<label for="password">Password</label> +<input id="password" name="password" type="password" autocomplete="current-password" required> +</p> +<p><button type="submit">Sign in</button></p> +</form> +{{if .MailOff}} +<p class="dim"> +Mail is turned off on this instance, so there is no password reset. An admin +can issue you a one time link instead. +</p> +{{else}} +<p><a href="/reset">Forgotten your password?</a></p> +{{end}} + +{{with .Data.Providers}} +<h3>Or sign in through</h3> +<ul> +{{range .}} +<li><a href="/oidc/{{.Key}}">{{.Label}}</a></li> +{{end}} +</ul> +{{end}} +{{end}} |