Добавлена страница noVNC консоли VM

Этот коммит содержится в:
Виктор
2026-05-06 22:31:35 +09:00
родитель 8e3ac9371d
Коммит 8325ef38a2
+63
Просмотреть файл
@@ -0,0 +1,63 @@
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Консоль {{ vm.name }} — {{ app_name }}</title>
<link rel="stylesheet" href="/static/app.css">
</head>
<body>
<div class="shell console-shell">
<header class="topbar">
<div>
<div class="brand">Консоль: {{ vm.name }}</div>
<div class="muted">noVNC через авторизованный WebSocket proxy Virtuality</div>
</div>
<div class="top-meta">
<span>user: {{ user }}</span>
<a class="link-pill" href="/vm/{{ vm.name }}">← VM</a>
<a class="link-pill" href="/">Дашборд</a>
</div>
</header>
<section class="grid stats">
<article class="card stat">
<div class="label">VNC display</div>
<div class="value small">{{ console.display }}</div>
</article>
<article class="card stat">
<div class="label">VNC port</div>
<div class="value small">{{ console.port or 'not available' }}</div>
</article>
<article class="card stat">
<div class="label">noVNC</div>
<div class="value small">{{ 'ready' if console.has_novnc else 'not installed' }}</div>
</article>
<article class="card stat">
<div class="label">VM IP</div>
<div class="value small">{{ vm.ip }}</div>
</article>
</section>
{% if console.url %}
<section class="card console-card">
<iframe class="console-frame" src="{{ console.url }}" allowfullscreen></iframe>
</section>
{% else %}
<section class="card">
<div class="card-head">
<h2>Консоль пока недоступна</h2>
<span class="status err">not ready</span>
</div>
<div class="services">
<div class="service-row"><span>noVNC path</span><span>{{ console.novnc_dir }}</span></div>
<div class="service-row"><span>VNC display</span><span>{{ console.display }}</span></div>
</div>
<div class="notice top-space">
Проверь, что VM запущена, у неё есть VNC display, а пакет novnc установлен. После обновления web-панели установщик должен поставить novnc автоматически.
</div>
</section>
{% endif %}
</div>
</body>
</html>