- ATXPI_MODE=console: /api/power/* → 403, кнопки питания скрыты в UI - /api/status отдаёт mode; env-шаблон и install.sh учитывают ATXPI_MODE - нужно для безопасного запуска панели на серверах-«управленцах» без риска питания
53 lines
2.0 KiB
HTML
53 lines
2.0 KiB
HTML
<!doctype html>
|
|
<html lang="ru">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>atxpi — управление сервером</title>
|
|
<link rel="stylesheet" href="/static/style.css">
|
|
<link rel="stylesheet" href="/static/vendor/xterm.css">
|
|
</head>
|
|
<body>
|
|
<!-- Логин -->
|
|
<div id="login" class="hidden">
|
|
<div class="card">
|
|
<h1>atxpi</h1>
|
|
<p class="muted">Введите токен доступа (ATXPI_WEB_TOKEN)</p>
|
|
<input id="tok" type="password" placeholder="Токен" autocomplete="off">
|
|
<button class="btn primary" onclick="login()">Войти</button>
|
|
<p id="loginMsg" class="err"></p>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Приложение -->
|
|
<main id="app" class="hidden">
|
|
<header>
|
|
<h1>⚡ atxpi</h1>
|
|
<span id="powerState" class="badge">…</span>
|
|
<span class="spacer"></span>
|
|
<span id="powerControls">
|
|
<button class="btn" onclick="doPower('on')" title="Нажать кнопку питания">⏻ ON</button>
|
|
<button class="btn" onclick="doPower('off')" title="Принудительно выключить (долгое нажатие)">⭘ OFF</button>
|
|
<button class="btn" onclick="doPower('reset')" title="Аппаратный сброс">↻ Reset</button>
|
|
<button class="btn" onclick="doPower('cycle')" title="Жёсткий перезапуск">⟳ Cycle</button>
|
|
</span>
|
|
</header>
|
|
|
|
<section id="status" class="status-line"></section>
|
|
|
|
<section class="console-panel">
|
|
<div class="console-bar">
|
|
<span>RS232-консоль</span>
|
|
<span id="consoleState" class="muted">не подключена</span>
|
|
<span class="spacer"></span>
|
|
<button class="btn" onclick="toggleConsole()">Подключить</button>
|
|
</div>
|
|
<div id="term"></div>
|
|
</section>
|
|
</main>
|
|
|
|
<script src="/static/vendor/xterm.js"></script>
|
|
<script src="/static/app.js"></script>
|
|
</body>
|
|
</html>
|