Files
felhom.eu/documentation/audits/kernel-night-2026-10-08/readback/hub-system-page-0640.html
T
2026-10-09 07:14:20 +02:00

348 lines
26 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>System — Felhom Hub</title>
<link rel="stylesheet" href="/style.css?v=0.143.1">
<style>
.sys td, .sys th { white-space: nowrap; font-size: 0.82em; vertical-align: top; }
.sys .grp { border-left: 2px solid var(--border, #444); }
.c-warn { color: var(--warn); font-weight: 600; }
.c-bad { color: var(--danger, #e5534b); font-weight: 700; }
.sys form { display: inline; }
.rel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 0.75rem; }
</style>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" style="display:none" aria-hidden="true">
<symbol id="i-triangle-alert" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" /> <path d="M12 9v4" /> <path d="M12 17h.01" /></symbol>
<symbol id="i-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5" /></symbol>
<symbol id="i-server" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2" /> <rect width="20" height="8" x="2" y="14" rx="2" ry="2" /> <line x1="6" x2="6.01" y1="6" y2="6" /> <line x1="6" x2="6.01" y1="18" y2="18" /></symbol>
<symbol id="i-settings" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915" /> <circle cx="12" cy="12" r="3" /></symbol>
<symbol id="i-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 6 6 18" /> <path d="m6 6 12 12" /></symbol>
<symbol id="i-info" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10" /> <path d="M12 16v-4" /> <path d="M12 8h.01" /></symbol>
<symbol id="i-hard-drive" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10 16h.01" /> <path d="M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" /> <path d="M21.946 12.013H2.054" /> <path d="M6 16h.01" /></symbol>
<symbol id="i-cpu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 20v2" /> <path d="M12 2v2" /> <path d="M17 20v2" /> <path d="M17 2v2" /> <path d="M2 12h2" /> <path d="M2 17h2" /> <path d="M2 7h2" /> <path d="M20 12h2" /> <path d="M20 17h2" /> <path d="M20 7h2" /> <path d="M7 20v2" /> <path d="M7 2v2" /> <rect x="4" y="4" width="16" height="16" rx="2" /> <rect x="8" y="8" width="8" height="8" rx="1" /></symbol>
<symbol id="i-clock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10" /> <path d="M12 6v6l4 2" /></symbol>
<symbol id="i-boxes" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z" /> <path d="m7 16.5-4.74-2.85" /> <path d="m7 16.5 5-3" /> <path d="M7 16.5v5.17" /> <path d="M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z" /> <path d="m17 16.5-5-3" /> <path d="m17 16.5 4.74-2.85" /> <path d="M17 16.5v5.17" /> <path d="M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z" /> <path d="M12 8 7.26 5.15" /> <path d="m12 8 4.74-2.85" /> <path d="M12 13.5V8" /></symbol>
<symbol id="i-users" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" /> <path d="M16 3.128a4 4 0 0 1 0 7.744" /> <path d="M22 21v-2a4 4 0 0 0-3-3.87" /> <circle cx="9" cy="7" r="4" /></symbol>
</svg>
<script>
function felhomConfirm(el,question,onYes){
if(!el||el.dataset.fcOpen)return;
el.dataset.fcOpen='1';
var wrap=document.createElement('span');wrap.className='inline-confirm';
var q=document.createElement('span');q.className='inline-confirm-q';q.textContent=question;
var yes=document.createElement('button');yes.type='button';yes.className='btn btn-sm btn-danger';yes.textContent='Igen';
var no=document.createElement('button');no.type='button';no.className='btn btn-sm btn-outline';no.textContent='Mégse';
wrap.appendChild(q);wrap.appendChild(yes);wrap.appendChild(no);
el.style.display='none';el.parentNode.insertBefore(wrap,el.nextSibling);
function close(){wrap.remove();el.style.display='';delete el.dataset.fcOpen;}
no.addEventListener('click',close);
yes.addEventListener('click',function(){close();onYes();});
}
document.addEventListener('click',function(e){
var btn=e.target.closest?e.target.closest('[data-confirm]'):null;
if(!btn)return;
e.preventDefault();
felhomConfirm(btn,btn.getAttribute('data-confirm'),function(){
var form=btn.closest('form');
if(form){if(form.requestSubmit)form.requestSubmit(btn);else form.submit();}
});
});
</script>
<div class="container">
<header>
<h1>Felhom <span>Hub</span></h1>
<nav class="nav-links">
<a href="/" class="nav-link">Dashboard</a>
<a href="/configs" class="nav-link">Customers</a>
<a href="/apps" class="nav-link">Apps</a>
<a href="/hosts" class="nav-link">Hosts</a>
<a href="/system" class="nav-link active">System</a>
<a href="/offsite" class="nav-link">Offsite</a>
<a href="/configuration" class="nav-link">Configuration</a>
</nav>
</header>
<h2 style="margin-bottom: 1rem;">System — versions and OS updates</h2>
<section class="card" style="margin-bottom: 1.5rem;">
<h3 style="margin-top: 0;">Approved releases</h3>
<div class="rel-grid">
<div><strong>guest</strong>: <code>os-guest-20261007-163710</code><br>
<span class="text-muted">272 packages · 2026-10-07 16:37 UTC · by auto</span>
</div>
<div><strong>host</strong>: <code>os-host-20261005-122429</code><br>
<span class="text-muted">607 packages · 2026-10-05 12:24 UTC · by auto</span>
</div>
<div><strong>docker</strong>: <code>os-docker-20261004-142842</code><br>
<span class="text-muted">6 packages · 2026-10-04 14:28 UTC · by operator</span>
</div>
</div>
<h3>Cancelled approvals (last 7 days)</h3>
<div class="rel-grid">
<div><strong>host</strong>: <code>os-host-20261004-124133</code><br>
<span class="c-warn">cancelled 2026-10-04 18:20:02 UTC — a TEST approval</span><br>
<span class="text-muted">no further box installs it; boxes that installed it keep it</span></div>
<div><strong>host</strong>: <code>os-host-20261004-124034</code><br>
<span class="c-warn">cancelled 2026-10-04 18:20:02 UTC — a TEST approval</span><br>
<span class="text-muted">no further box installs it; boxes that installed it keep it</span></div>
<div><strong>guest</strong>: <code>os-guest-20261004-123933</code><br>
<span class="c-warn">cancelled 2026-10-04 18:20:02 UTC — a TEST approval</span><br>
<span class="text-muted">no further box installs it; boxes that installed it keep it</span></div>
<div><strong>guest</strong>: <code>os-20261004-091417</code><br>
<span class="c-warn">cancelled 2026-10-04 18:20:02 UTC — a TEST approval</span><br>
<span class="text-muted">no further box installs it; boxes that installed it keep it</span></div>
</div>
<h3>What ring 0 runs now</h3>
<div class="rel-grid">
<div><strong>guest</strong>:
272 packages, first seen 2026-10-08 20:28 UTC<br>
<span class="text-muted">healthy for 8h11m0s of 24h0m0s</span>
</div>
<div><strong>host</strong>:
607 packages, first seen 2026-10-08 20:28 UTC<br>
<span class="text-muted">healthy for 8h11m0s of 24h0m0s</span>
</div>
<div><strong>docker</strong>:
2 packages, first seen 2026-10-09 02:44 UTC<br>
<span class="text-muted">demo-felhom-8363b5 has 0 of 2 healthy night Docker step(s) with this set</span>
</div>
<div><strong>pve</strong>:
120 packages, first seen 2026-10-08 20:29 UTC<br>
<span class="text-muted">demo-felhom-8363b5 has 1 of 2 healthy night Proxmox step(s) with this set</span>
</div>
<div><strong>kernel</strong>:
<span class="text-muted">—</span><br>
<span class="text-muted">demo-hp-bb76ea has not booted a new kernel healthily yet</span>
</div>
</div>
<form method="POST" action="/os/approve-now" style="margin-top: 0.8rem;">
<input type="hidden" name="_csrf" value="(removed)"><input type="hidden" name="return" value="/system">
<button type="submit" class="btn btn-sm btn-danger" data-confirm="Approve the guest and host sets ring 0 runs NOW, without the 24 h + 1 night wait? Every ring-1 box installs them at its next night run.">Approve now (guest + host)</button>
<span class="text-muted" style="font-size: 0.85em;">An urgent fix only — normally the hub approves after 24 h and one night.</span>
</form>
</section>
<section class="card" id="version-floors">
<h3 style="margin-top: 0;">Version floors</h3>
<p>Global controller floor: <strong>0.292.0</strong> · vouched agent: <strong>0.150.0</strong></p>
<table class="data-table">
<thead><tr><th>Customer</th><th>Own floor</th><th>Set</th><th>Global floor moves it?</th></tr></thead>
<tbody>
<tr>
<td><a href="/customers/demo-felhom">demo-felhom</a><br><span class="text-muted">Demo Ügyfél</span></td>
<td>0.303.0</td>
<td class="" title="">35 h ago (2026-10-07)</td>
<td>no — its own floor applies (at or above the global)</td>
</tr>
<tr>
<td><a href="/customers/demo-hp">demo-hp</a><br><span class="text-muted">Demo HP</span></td>
<td>0.303.0</td>
<td class="" title="">35 h ago (2026-10-07)</td>
<td>no — its own floor applies (at or above the global)</td>
</tr>
<tr>
<td><a href="/customers/tester-1">tester-1</a><br><span class="text-muted">Tester 1</span></td>
<td>0.303.0</td>
<td class="" title="">35 h ago (2026-10-07)</td>
<td>no — its own floor applies (at or above the global)</td>
</tr>
</tbody>
</table>
</section>
<section class="card" style="padding: 0; overflow-x: auto;">
<table class="data-table sys">
<thead>
<tr>
<th>Box</th><th>Ring / updates</th><th>Tunnel</th>
<th class="grp">Proxmox</th><th>Kernel (running)</th><th>Kernel (next boot)</th><th title="The kernel GRUB boots normally (R-836). Amber: a one-shot flag names another kernel for the next boot only.">Kernel (default)</th><th title="The kernel lane (R-836): the newest step, the kernel the box is due, and whether its household was told for tonight (no mail, no step).">Kernel step</th><th>Debian</th><th>Felhom release</th><th>Pending</th><th>Not covered</th><th>Held</th><th>Reboot needed</th><th>kernel.panic</th><th>Oops</th><th>Crash restarts 24 h</th><th>Crash guard</th><th title="The root-owned config bundle: sudoers, wrappers, units (R-840)">Root files</th><th title="The box's agent against the vouched one (R-530). Agents update only by a per-box signed job.">Agent</th>
<th class="grp">Guest Debian</th><th>Felhom release</th><th>Pending</th><th>Restart needed</th><th title="The newest pct fstrim of the guest's disks, and what it freed (R-444). The boxes trim weekly.">Last disk trim</th>
<th class="grp">Docker</th><th>containerd</th><th>live-restore</th><th>Docker release</th>
<th class="grp">Last OS leg</th>
</tr>
<tr class="text-muted"><th></th><th></th><th></th><th class="grp" colspan="17">host</th><th class="grp" colspan="5">guest</th><th class="grp" colspan="4">Docker engine</th><th class="grp"></th></tr>
</thead>
<tbody>
<tr>
<td><a href="/hosts/Tester-2-be8404">Tester-2-be8404</a><br><span class="text-muted">Tester 2</span>
</td>
<td>
ring 1
<form method="POST" action="/os/ring/Tester-2-be8404">
<input type="hidden" name="_csrf" value="(removed)"><input type="hidden" name="return" value="/system">
<input type="hidden" name="ring" value="0"><button type="submit" class="btn btn-sm btn-outline" data-confirm="Make Tester-2-be8404 a DEMO (ring 0) box? It then installs every new fix first and takes unsigned Docker steps if its root-owned ring-0 mark allows.">→ demo</button>
</form><br>
updates <strong>ON</strong>
<form method="POST" action="/os/enabled/Tester-2-be8404">
<input type="hidden" name="_csrf" value="(removed)"><input type="hidden" name="return" value="/system">
<input type="hidden" name="on" value="0"><button type="submit" class="btn btn-sm btn-outline" data-confirm="Switch OS updates OFF for Tester-2-be8404? It keeps reporting and installs nothing.">switch off</button>
</form>
</td>
<td>running</td>
<td class="grp ">9.2.2</td>
<td>7.0.2-6-pve</td><td>7.0.2-6-pve</td><td class="c-warn" title="the box could not read it (agent older than v0.142.0, or the guest is down)">unknown</td><td title="the box reports no kernel lane (agent older than v0.152.0)">—</td><td>13.7</td>
<td>os-host-20261004-124133</td><td>78</td><td>0</td>
<td>none</td><td class="c-warn">since 2026-10-04</td><td>10 s</td><td>no</td>
<td>0</td><td>armed</td><td class="c-warn" title="the box could not read it (agent older than v0.142.0, or the guest is down)">unknown</td><td class="c-warn" title="8 minor releases behind — sign an agent_update for this box">0.142.0 → 0.150.0 (since 2026-10-05)</td>
<td class="grp ">13.7</td>
<td>os-guest-20261004-123933</td><td>0</td><td>7</td><td title="the agent reports no disk trim (an agent without the weekly trim)">—</td>
<td class="grp ">29.8.2</td>
<td>2.3.6-1~debian.13~trixie</td><td>on</td><td>—</td>
<td class="grp " title="last successful leg: 4 days ago">4 days ago · applied · 44 s</td>
</tr>
<tr>
<td><a href="/hosts/demo-felhom-8363b5">demo-felhom-8363b5</a><br><span class="text-muted">Demo Ügyfél</span>
</td>
<td>
ring 0
<form method="POST" action="/os/ring/demo-felhom-8363b5">
<input type="hidden" name="_csrf" value="(removed)"><input type="hidden" name="return" value="/system">
<input type="hidden" name="ring" value="1"><button type="submit" class="btn btn-sm btn-outline" data-confirm="Make demo-felhom-8363b5 a normal (ring 1) box? It then installs only approved releases.">→ normal</button>
</form><br>
updates <strong>ON</strong>
<form method="POST" action="/os/enabled/demo-felhom-8363b5">
<input type="hidden" name="_csrf" value="(removed)"><input type="hidden" name="return" value="/system">
<input type="hidden" name="on" value="0"><button type="submit" class="btn btn-sm btn-outline" data-confirm="Switch OS updates OFF for demo-felhom-8363b5? It keeps reporting and installs nothing.">switch off</button>
</form>
</td>
<td>running</td>
<td class="grp ">9.2.21</td>
<td>7.0.14-22-pve</td><td>7.0.14-22-pve</td><td>7.0.14-22-pve</td><td title="healthy 39s after the agent started; the new kernel is the default">7.0.14-22-pve applied 1 h ago · due 7.0.14-23-pve — not told yet (mails 09–20 h) · phase good</td><td>13.7</td>
<td>ring0-20261009T024218Z</td><td>9</td><td>0</td>
<td>none</td><td>no</td><td>10 s</td><td>no</td>
<td>0</td><td>armed</td><td class="c-warn" title="behind the vouched agent 0.150.0&#39;s bundle — send it with a signed agent_config_update (behind since 2026-10-07 12:15 UTC)">0.152.0</td><td title="current (vouched 0.150.0)">0.153.0</td>
<td class="grp ">13.7</td>
<td>ring0-20261009T024218Z</td><td>5</td><td>0</td><td title="schedule: weekly, due Wednesday from 10:00 host-local time; starts only 10:00-20:59; never beside a backup or restore-test">44 h ago · 0.7 GiB</td>
<td class="grp ">29.9.0</td>
<td>2.4.1-2~debian.13~trixie</td><td>on</td><td>ring0-20261009T024218Z</td>
<td class="grp " title="last successful leg: 1 h ago">1 h ago · applied · 50 s</td>
</tr>
<tr>
<td><a href="/hosts/demo-hp-bb76ea">demo-hp-bb76ea</a><br><span class="text-muted">Demo HP</span>
</td>
<td>
ring 0
<form method="POST" action="/os/ring/demo-hp-bb76ea">
<input type="hidden" name="_csrf" value="(removed)"><input type="hidden" name="return" value="/system">
<input type="hidden" name="ring" value="1"><button type="submit" class="btn btn-sm btn-outline" data-confirm="Make demo-hp-bb76ea a normal (ring 1) box? It then installs only approved releases.">→ normal</button>
</form><br>
updates <strong>ON</strong>
<form method="POST" action="/os/enabled/demo-hp-bb76ea">
<input type="hidden" name="_csrf" value="(removed)"><input type="hidden" name="return" value="/system">
<input type="hidden" name="on" value="0"><button type="submit" class="btn btn-sm btn-outline" data-confirm="Switch OS updates OFF for demo-hp-bb76ea? It keeps reporting and installs nothing.">switch off</button>
</form>
</td>
<td>running</td>
<td class="grp ">9.2.2</td>
<td>7.0.14-20-pve</td><td>7.0.14-20-pve</td><td>7.0.14-20-pve</td><td>due 7.0.14-22-pve — household told 16 h ago: TONIGHT</td><td>13.7</td>
<td>ring0-20261008T202710Z</td><td>80</td><td>0</td>
<td>none</td><td>no</td><td>10 s</td><td>no</td>
<td>0</td><td>armed</td><td class="c-warn" title="behind the vouched agent 0.150.0&#39;s bundle — send it with a signed agent_config_update (behind since 2026-10-07 12:15 UTC)">0.152.0</td><td title="current (vouched 0.150.0)">0.153.0</td>
<td class="grp ">13.7</td>
<td>ring0-20261008T202710Z</td><td>1</td><td>0</td><td title="schedule: weekly, due Wednesday from 10:00 host-local time; starts only 10:00-20:59; never beside a backup or restore-test">44 h ago · 6.2 GiB</td>
<td class="grp ">29.8.2</td>
<td>2.3.6-1~debian.13~trixie</td><td>on</td><td>ring0-20261008T202710Z</td>
<td class="grp " title="last successful leg: 8 h ago">8 h ago · applied · 67 s</td>
</tr>
<tr>
<td><a href="/hosts/tester-1-d70be4">tester-1-d70be4</a><br><span class="text-muted">Tester 1</span>
</td>
<td>
ring 1
<form method="POST" action="/os/ring/tester-1-d70be4">
<input type="hidden" name="_csrf" value="(removed)"><input type="hidden" name="return" value="/system">
<input type="hidden" name="ring" value="0"><button type="submit" class="btn btn-sm btn-outline" data-confirm="Make tester-1-d70be4 a DEMO (ring 0) box? It then installs every new fix first and takes unsigned Docker steps if its root-owned ring-0 mark allows.">→ demo</button>
</form><br>
updates <strong>ON</strong>
<form method="POST" action="/os/enabled/tester-1-d70be4">
<input type="hidden" name="_csrf" value="(removed)"><input type="hidden" name="return" value="/system">
<input type="hidden" name="on" value="0"><button type="submit" class="btn btn-sm btn-outline" data-confirm="Switch OS updates OFF for tester-1-d70be4? It keeps reporting and installs nothing.">switch off</button>
</form>
</td>
<td>running</td>
<td class="grp ">9.2.2</td>
<td>7.0.14-22-pve</td><td>7.0.14-22-pve</td><td>7.0.14-22-pve</td><td title="ring 1: no kernel staged by a signed os_kernel_step healthy 1m17s after the agent started; the new kernel is the default">7.0.14-22-pve applied 37 h ago · phase good</td><td>13.7</td>
<td>os-host-20261005-122429</td><td>81</td><td>0</td>
<td>none</td><td>no</td><td>10 s</td><td>no</td>
<td>0</td><td>armed</td><td class="c-warn" title="behind the vouched agent 0.150.0&#39;s bundle — send it with a signed agent_config_update (behind since 2026-10-07 13:16 UTC)">0.152.0</td><td title="current (vouched 0.150.0)">0.153.0</td>
<td class="grp ">13.7</td>
<td>os-guest-20261007-163710</td><td>7</td><td>7</td><td title="schedule: weekly, due Wednesday from 10:00 host-local time; starts only 10:00-20:59; never beside a backup or restore-test">44 h ago · 2.3 GiB</td>
<td class="grp ">29.8.2</td>
<td>2.3.6-1~debian.13~trixie</td><td>on</td><td>—</td>
<td class="grp " title="last successful leg: 1 h ago">1 h ago · nothing · 14 s</td>
</tr>
</tbody>
</table>
</section>
<p class="text-muted" style="font-size: 0.85em;">Amber: worth a look. Red: an operator alarm fires (`08` §6.3). "unknown": the box could not read the value — never a guess.</p>
<footer style="margin-top: 2rem; color: var(--text-muted); font-size: 0.8rem; text-align: center;">
Felhom Hub <span style="font-family: var(--font-mono)">0.143.1</span>
</footer>
</div>
</body>
</html>