Files
chimera-Public/renderer/server-login.html
T

33 lines
3.2 KiB
HTML

<!doctype html>
<html lang="en"><head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="color-scheme" content="dark">
<link rel="icon" type="image/svg+xml" href="/assets/chimera-crest.svg"><link rel="apple-touch-icon" href="__CHIMERA_ICON_SRC__">
<title>Chimera — sign in</title><link rel="stylesheet" href="/styles/server-login.css">
</head><body><main class="auth-shell"><section class="auth-card">
<img src="/assets/chimera-crest.svg" alt="" class="logo"><p class="eyebrow">PERSONAL PLAYSTATION PLATFORM</p><h1>Chimera</h1>
<p id="intro">Sign in securely to your personal Chimera server.</p><div id="message" role="status" aria-live="polite"></div>
<form id="login-form" hidden>
<label>Username<input name="username" autocomplete="username" required></label>
<label>Password<input name="password" type="password" autocomplete="current-password" required></label><label id="totp-row" hidden>Authenticator or recovery code<input name="totpCode" inputmode="numeric" autocomplete="one-time-code"></label><button type="submit">Sign in</button>
</form>
<form id="setup-form" hidden><h2>Initial setup</h2><p class="step">1. Local administrator</p>
<label>One-time bootstrap token<input name="bootstrapToken" type="password" autocomplete="one-time-code"><small>Required for network setup. Read it from the root-owned file configured as <code>CHIMERA_BOOTSTRAP_TOKEN_PATH</code>; loopback setup may leave this blank.</small></label>
<div class="grid"><label>Username<input name="username" autocomplete="username" minlength="3" maxlength="64" required></label>
<label>Password (12 characters minimum)<input name="password" type="password" autocomplete="new-password" minlength="12" required></label></div>
<p class="step">2. Persistent storage and volumes</p><div id="data-status" class="panel"></div>
<fieldset><legend>Allowed server roots</legend><div id="roots"></div></fieldset>
<p class="step">3. PS5 connection profile</p><div class="grid three">
<label>PS5 host/IP<input name="ftpHost" placeholder="192.168.10.x"></label>
<label>FTP port<input name="ftpPort" type="number" value="21" min="1" max="65535"></label>
<label>FTP user<input name="ftpUser" autocomplete="off"></label></div>
<label>FTP password<input name="ftpPassword" type="password" autocomplete="new-password"><small>Stored encrypted and never returned to the browser.</small></label>
<button type="button" class="secondary" id="test-ftp">Test FTP connection</button>
<p class="step">4. Language, backups and capabilities</p><div class="grid">
<label>Language<select name="language"><option value="en">English</option><option value="nl">Nederlands</option></select></label>
<label>Automatic backups to retain<input name="backupRetention" type="number" value="14" min="1" max="90"></label></div>
<div id="capabilities" class="panel"></div>
<label class="check"><input name="safetyConfirmed" type="checkbox" required> I understand that destructive PS5 actions require confirmation and that backups and persistent storage remain enabled.</label>
<button type="submit">Complete setup</button>
</form>
</section></main><script src="/server-login.js"></script></body></html>