рабочий вариант, но скороть 10 МБит
build / backend (push) Has been cancelled
build / node-agent (push) Has been cancelled
build / worker (push) Has been cancelled

This commit is contained in:
2026-05-22 21:46:49 +03:00
parent 469fa0e860
commit 20d361a886
280 changed files with 954890 additions and 18524 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+90 -4
View File
@@ -3,11 +3,97 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Панель Secure Access Fabric</title>
<script type="module" crossorigin src="/assets/index-CiNvRobk.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-Cur_BAkX.css">
<title>Вход в панель фермы</title>
<style>
:root {
color-scheme: light;
--bg: #eef2ec;
--panel: #fffdf7;
--ink: #102018;
--muted: #66716a;
--line: #dce2d8;
--accent: #1f6b4c;
--soft: #f6f4ea;
}
* { box-sizing: border-box; }
body {
margin: 0;
background: var(--bg);
color: var(--ink);
font-family: Inter, "Segoe UI", Arial, sans-serif;
font-size: 15px;
line-height: 1.45;
}
main {
min-height: 100vh;
display: grid;
place-items: center;
padding: 28px;
}
.shell { width: min(460px, 100%); }
h1 { margin: 0 0 8px; font-size: 26px; letter-spacing: 0; }
p { margin: 0; color: var(--muted); }
form, .note {
background: var(--panel);
border: 1px solid var(--line);
border-radius: 8px;
padding: 18px;
}
form { margin-top: 22px; box-shadow: 0 14px 34px rgba(20, 35, 25, .08); }
label {
display: block;
margin: 0 0 14px;
color: #3d4a42;
font-size: 13px;
font-weight: 800;
}
input {
width: 100%;
margin-top: 7px;
border: 1px solid var(--line);
border-radius: 6px;
background: white;
color: var(--ink);
padding: 12px 13px;
font: inherit;
}
input:focus { outline: 2px solid rgba(31, 107, 76, .22); border-color: var(--accent); }
button {
width: 100%;
border: 0;
border-radius: 6px;
background: var(--accent);
color: white;
padding: 12px 14px;
font: 800 15px Inter, "Segoe UI", Arial, sans-serif;
cursor: pointer;
}
.note {
margin-top: 10px;
background: var(--soft);
color: var(--muted);
font-size: 13px;
}
</style>
</head>
<body>
<div id="root"></div>
<main>
<section class="shell" aria-labelledby="title">
<h1 id="title">Вход в панель фермы</h1>
<p>Администратор откроет управление фермой. Пользователь получит страницу установки VPN.</p>
<form method="post" action="/api/v1/auth/ui/login">
<label>
Email или логин
<input name="email" autocomplete="username" required autofocus />
</label>
<label>
Пароль
<input name="password" type="password" autocomplete="current-password" required />
</label>
<button type="submit">Войти</button>
</form>
<p class="note">Вход выполняется сервером. В браузере нет хранения ID оператора и тяжелой клиентской логики.</p>
</section>
</main>
</body>
</html>