49 lines
2.9 KiB
HTML
49 lines
2.9 KiB
HTML
<!doctype html>
|
|
<html data-theme="dark" lang="en">
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>RustProxy / Sign in</title>
|
|
<link rel="icon" href="/favicon.svg">
|
|
<link rel="stylesheet" href="/assets/style___RUSTPROXY_ASSET_ID__.css">
|
|
<script defer src="/assets/login___RUSTPROXY_ASSET_ID__.js"></script>
|
|
</head>
|
|
|
|
<body class="auth-page auth-loading">
|
|
<header class="auth-top"><a class="brand" href="/" aria-label="RustProxy"><span
|
|
class="brand-mark">r<span>/</span>p</span><span>RustProxy</span></a><select id="language"
|
|
class="language-select" aria-label="Language" data-i18n-aria="language"></select></header>
|
|
<main class="auth-main">
|
|
<section class="login-section" id="login">
|
|
<h1 data-i18n="loginTitle">Administration</h1>
|
|
<form class="login-card" id="login-form">
|
|
<div class="card-heading">
|
|
<h2 id="auth-title">Sign in</h2><span class="pill" id="auth-badge">LOCAL</span>
|
|
</div>
|
|
<div hidden="" id="setup-fields">
|
|
<p class="fine" data-i18n="setupHelp">Create the first administrator using a one-time local
|
|
capability.</p><code class="command">rust-proxy --data-dir ./data admin setup-token</code>
|
|
<p class="fine" data-i18n="setupCommandExample">Standard service installation example:</p>
|
|
<code class="command">rust-proxy --data-dir /var/lib/rustproxy admin setup-token</code>
|
|
<label data-i18n="setupToken" for="setup-token">One-time setup token</label><input
|
|
autocomplete="off" id="setup-token" maxlength="64" minlength="64" spellcheck="false"
|
|
type="password" />
|
|
</div>
|
|
<label data-i18n="username" for="username">Username</label><input autocapitalize="none"
|
|
autocomplete="username" id="username" maxlength="64" minlength="3" pattern="[A-Za-z0-9_.\-]{3,64}"
|
|
required="" spellcheck="false" />
|
|
<label data-i18n="password" for="password">Password</label><input autocomplete="current-password"
|
|
id="password" maxlength="128" required="" type="password" />
|
|
<div hidden="" id="confirm-field"><label data-i18n="confirmPassword" for="password-confirm">Confirm
|
|
password</label><input autocomplete="new-password" id="password-confirm" maxlength="128"
|
|
type="password" /></div>
|
|
<button class="primary" id="login-submit" type="submit">Sign in</button>
|
|
<p class="fine" data-i18n="authPrivateNote">Access is restricted to authorized administrators.</p>
|
|
</form>
|
|
<p class="fine" id="auth-message" role="alert" aria-live="polite"></p>
|
|
</section>
|
|
</main>
|
|
</body>
|
|
|
|
</html> |