website: two hidden mockups - M1 "the site is the dashboard", M2 hybrid
gates / gates (push) Failing after 7m1s

Design studies only. Nothing live changes, nothing is linked from a live page, both
carry noindex and /preview/ is already Disallow-ed in robots.txt. felhom-controller
was read ONLY (baseline dcd89364a4); nothing in it was touched.

M1  website/preview/m1/  - the website wearing the controller's shell
    index (Indítópult)   welcome card + all 58 launcher tiles
    alkalmazasok         the catalog in the site's own five buckets, vanilla search
    mentesek             the three backup levels, every number marked "minta"
    hogyan / teszteles / kapcsolat   today's copy inside the dashboard shell
M2  website/preview/m2/  - short hero beside a window holding a clickable launcher

Real data, not invented:
  * 58 apps from app-catalog-felhom.eu @ 8ea72aa: real names, logos, Hungarian
    taglines, use cases and first steps out of each .felhom.yml app_info.
  * Tile colours reproduce the controller's OWN tileColor (funcmap.go): FNV-1a 32
    of the slug -> hue, 45% 38%. No brand_color exists in the catalog, so every
    tile here is the colour a real launcher would paint.
  * Page copy is today's live website only.
  * Category labels are the five buckets alkalmazasok.html already uses. None invented.

The 58 is now measured, not quoted: 60 templates minus plant-it (abandoned) and
wger (hidden) = 58 offered, which is exactly what the site's prose says. See the
R-929 note in the audit folder.

Mockup rules honoured:
  * No value pretends to be live - every sample wears a "minta" badge.
  * No control does nothing: the disabled sidebar entries (Tárhely, Megosztás,
    Rendszermonitor, Beállítások) say "a saját dobozodon működik" rather than
    404-ing, and the contact form's submit is disabled with the same kind of hint.
    The consent text is the live one, unchanged.
  * App panels open with :target, so they work with JavaScript switched OFF and
    their text is real HTML a crawler can read - not JS-built content.
  * No login form anywhere. No external request, no AI or stock image.

CSS: website/preview/mockup.css is three labelled blocks so the shared-design
report can count them - adapted base (font URLs repointed /static -> /assets),
188 rules copied VERBATIM from the controller, and the mockup-only rules. The
burger is the website's own three-span control, copied rather than hand-rolling an
SVG: the shared sprite carries no i-menu.

scripts/site_gates.py gains a MOCKUPS set, with the reasoning in a comment. The
mockups keep every correctness check (BOM, emoji, banned strings and CDN hosts, no
<style>, cache-busting, <html lang>, clean tail, dashboard-picture language, the
picture-viewer rules) and are excluded from exactly the three chrome-consistency
checks a dashboard-shell study must fail by construction: nav/footer identical to
index.html, the NO_TWIN language globe, and analytics - the last deliberately, so a
hidden mockup cannot pollute the real stats. Delete the set with the directories.

site_gates.py green.
This commit is contained in:
2026-10-11 12:13:23 +02:00
parent 0c86e698b0
commit 063ba83e41
9 changed files with 5978 additions and 3 deletions
+201
View File
@@ -0,0 +1,201 @@
<!DOCTYPE html>
<html lang="hu">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="robots" content="noindex, nofollow">
<meta name="description" content="Mockup: rövid nyitóoldal a vezérlőpult kattintható másával.">
<title>Felhom.eu · hibrid mockup</title>
<link rel="stylesheet" href="/preview/mockup.css?v=1">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
</head>
<body class="mockup m2">
<header class="m2-top">
<a class="m2-logo" href="#"><img src="/assets/logo-mark.svg" alt=""><img class="m2-word" src="/assets/logo-wordmark.png" alt="felhom.eu"></a>
<a class="btn btn-primary" href="/preview/m1/teszteles.html">Jelentkezem tesztelőnek →</a>
</header>
<section class="m2-hero">
<div class="m2-hero-text">
<h1>Saját felhőd,<br><span>saját szabályaid</span></h1>
<p>Egy kis gép az otthonodban: a fényképeid, a dokumentumaid, a filmjeid. Minden éjjel mentés készül. Mi figyeljük, te használod.</p>
<a class="btn btn-primary btn-lg" href="/preview/m1/teszteles.html">Jelentkezem tesztelőnek →</a>
</div>
<div class="m2-window" aria-label="A vezérlőpult kattintható mása">
<div class="m2-window-bar">
<span class="m2-dot"></span><span class="m2-dot"></span><span class="m2-dot"></span>
<span class="m2-window-title">otthonod.hu <span class="sample">minta</span></span>
</div>
<div class="m2-window-body">
<p class="m2-window-lede">Így néz ki a doboz vezérlőpultja. Kattints egy csempére.</p>
<div class="launch-grid launch-grid--mini">
<a class="launch-cell" href="#app-immich">
<span class="launch-tile" style="background: hsl(18, 45%, 38%)">
<span class="launch-mono">I</span>
<img class="launch-logo" src="/assets/immich-logo.svg" alt="" loading="lazy">
</span>
<span class="launch-name">Immich</span>
</a>
<a class="launch-cell" href="#app-jellyfin">
<span class="launch-tile" style="background: hsl(348, 45%, 38%)">
<span class="launch-mono">J</span>
<img class="launch-logo" src="/assets/jellyfin-logo.svg" alt="" loading="lazy">
</span>
<span class="launch-name">Jellyfin</span>
</a>
<a class="launch-cell" href="#app-nextcloud">
<span class="launch-tile" style="background: hsl(201, 45%, 38%)">
<span class="launch-mono">N</span>
<img class="launch-logo" src="/assets/nextcloud-logo.svg" alt="" loading="lazy">
</span>
<span class="launch-name">Nextcloud</span>
</a>
<a class="launch-cell" href="#app-vaultwarden">
<span class="launch-tile" style="background: hsl(66, 45%, 38%)">
<span class="launch-mono">V</span>
<img class="launch-logo" src="/assets/vaultwarden-logo.svg" alt="" loading="lazy">
</span>
<span class="launch-name">Vaultwarden</span>
</a>
</div>
<a class="app-info-link" href="/preview/m1/">Teljes vezérlőpult megnyitása →</a>
</div>
</div>
</section>
<section class="m2-section">
<h2>Mit tud a doboz ma?</h2>
<p>Nem terv és nem ígéret: ezek ma működő funkciók egy éles Felhom dobozon.</p>
<div class="app-info-grid">
<div class="app-info-card"><h3>Fényképek, dokumentumok, média</h3><p>A telefonod fotói automatikusan feltöltődnek a saját gépedre. A beszkennelt papírjaidat a rendszer felismeri és kereshetővé teszi.</p></div>
<div class="app-info-card"><h3>Hálózati megosztás</h3><p>A doboz mappái megjelennek a Windows Intézőben és a Mac Finderben: úgy húzod rájuk a fájlokat, mint bármelyik másik mappára.</p></div>
<div class="app-info-card"><h3>58 telepíthető alkalmazás</h3><p>A vezérlőpultból telepíthetők, pár kattintással, parancssor nélkül. Szinte mind nyílt forráskódú, és mind a te gépeden fut.</p></div>
</div>
</section>
<section class="m2-section m2-section--alt">
<h2>Háromszintű automatikus mentés</h2>
<p>Minden éjjel készül egy mentés a dobozon, egy másodpéldány egy második meghajtóra (ha van), és egy titkosított másolat egy távoli tárhelyre. A távoli mentés kulcsa egy helyreállítási kód, ami pontosan egyszer jelenik meg: a te képernyődön. Mi nem ismerjük.</p>
<a class="app-info-link" href="/preview/m1/mentesek.html">A mentések oldala →</a>
</section>
<section class="m2-section">
<h2>Zárt teszt</h2>
<p>Néhány magyar háztartással most kezdjük el élesben használni a rendszert. Őszintén: a vezérlőpulthoz jelenleg egy közös háztartási jelszó tartozik, és a TV-re streamelés (DLNA) még nincs.</p>
<a class="app-info-link" href="/preview/m1/teszteles.html">A zárt tesztről →</a>
</section>
<section class="m2-section m2-section--alt">
<h2>Ki áll mögötte</h2>
<div class="m2-who">
<img src="/assets/operator-portrait-small.webp" alt="Nagyfenyvesi Viktor" width="160" height="200" loading="lazy">
<p>A Felhom mögött egy ember áll: <strong>Nagyfenyvesi Viktor</strong>. Tíz éve tervez hálózatokat és infrastruktúrát, ma DevOps mérnökként dolgozik. Ha írsz, ő válaszol.
<a class="app-info-link" href="/preview/m1/kapcsolat.html">Kapcsolat →</a></p>
</div>
</section>
<div class="app-panel" id="app-immich" role="dialog" aria-label="Immich">
<div class="app-panel-card">
<a class="app-panel-close" href="#" aria-label="Bezárás"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-x"/></svg></a>
<div class="app-info-hero">
<img class="app-info-logo" src="/assets/immich-logo.svg" alt="">
<div class="app-info-hero-text">
<h3>Immich</h3>
<p class="app-info-tagline">Google Photos alternatíva - automatikus fotó mentés és rendszerezés</p>
</div>
</div>
<img class="app-screenshot" src="/assets/immich-screenshot-1.webp" alt="Immich képernyőkép" loading="lazy">
<div class="app-info-grid">
<div class="app-info-card">
<h3>Mire jó egy családnak?</h3>
<ul class="app-info-list"><li>Fotók és videók automatikus mentése telefonról</li><li>Arc- és tárgyfelismerés gépi tanulással</li><li>Térképes megjelenítés helyszín alapján</li><li>Emlékek és visszatekintések automatikus generálása</li></ul>
</div>
<div class="app-info-card">
<h3>Első lépések</h3>
<ul class="app-info-list"><li>Nyisd meg a photos.DOMAIN címet a böngészőben</li><li>Hozd létre az admin fiókot</li><li>Telepítsd az Immich alkalmazást a telefonodra (Android/iOS)</li></ul>
</div>
</div>
<p class="form-hint">Telepítés: pár kattintás a vezérlőpultból. A saját dobozodon a
<strong>photos.otthonod.hu</strong> címen érnéd el. <span class="sample">minta</span></p>
</div>
</div>
<div class="app-panel" id="app-jellyfin" role="dialog" aria-label="Jellyfin">
<div class="app-panel-card">
<a class="app-panel-close" href="#" aria-label="Bezárás"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-x"/></svg></a>
<div class="app-info-hero">
<img class="app-info-logo" src="/assets/jellyfin-logo.svg" alt="">
<div class="app-info-hero-text">
<h3>Jellyfin</h3>
<p class="app-info-tagline">Ingyenes média szerver - filmek, sorozatok és zene streamelése</p>
</div>
</div>
<img class="app-screenshot" src="/assets/jellyfin-screenshot-1.webp" alt="Jellyfin képernyőkép" loading="lazy">
<div class="app-info-grid">
<div class="app-info-card">
<h3>Mire jó egy családnak?</h3>
<ul class="app-info-list"><li>Filmek, sorozatok és zenék streamelése bármilyen eszközre</li><li>Automatikus metaadat letöltés - borítók, leírások, értékelések</li><li>Élő TV és DVR funkció TV tunerrel</li><li>Több felhasználó külön profillal és szülői felügyelettel</li></ul>
</div>
<div class="app-info-card">
<h3>Első lépések</h3>
<ul class="app-info-list"><li>Nyisd meg a media.DOMAIN címet a böngészőben</li><li>Kövesd a beállítás varázslót - válaszd a magyar nyelvet</li><li>Hozd létre az admin fiókot</li></ul>
</div>
</div>
<p class="form-hint">Telepítés: pár kattintás a vezérlőpultból. A saját dobozodon a
<strong>media.otthonod.hu</strong> címen érnéd el. <span class="sample">minta</span></p>
</div>
</div>
<div class="app-panel" id="app-nextcloud" role="dialog" aria-label="Nextcloud">
<div class="app-panel-card">
<a class="app-panel-close" href="#" aria-label="Bezárás"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-x"/></svg></a>
<div class="app-info-hero">
<img class="app-info-logo" src="/assets/nextcloud-logo.svg" alt="">
<div class="app-info-hero-text">
<h3>Nextcloud</h3>
<p class="app-info-tagline">A saját Google Drive-od - fájlok, naptár, névjegyek egy helyen</p>
</div>
</div>
<img class="app-screenshot" src="/assets/nextcloud-screenshot-1.webp" alt="Nextcloud képernyőkép" loading="lazy">
<div class="app-info-grid">
<div class="app-info-card">
<h3>Mire jó egy családnak?</h3>
<ul class="app-info-list"><li>Fájlok szinkronizálása és megosztása eszközök között</li><li>Naptár és névjegyek szinkronizálás (CalDAV/CardDAV)</li><li>Dokumentumok közös szerkesztése (OnlyOffice integrációval)</li><li>Fotó és videó automatikus feltöltés telefonról</li></ul>
</div>
<div class="app-info-card">
<h3>Első lépések</h3>
<ul class="app-info-list"><li>Nyisd meg a cloud.DOMAIN címet a böngészőben</li><li>Jelentkezz be a telepítéskor megadott admin fiókkal</li><li>Telepítsd a Nextcloud asztali alkalmazást a számítógépedre</li></ul>
</div>
</div>
<p class="form-hint">Telepítés: pár kattintás a vezérlőpultból. A saját dobozodon a
<strong>cloud.otthonod.hu</strong> címen érnéd el. <span class="sample">minta</span></p>
</div>
</div>
<div class="app-panel" id="app-vaultwarden" role="dialog" aria-label="Vaultwarden">
<div class="app-panel-card">
<a class="app-panel-close" href="#" aria-label="Bezárás"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-x"/></svg></a>
<div class="app-info-hero">
<img class="app-info-logo" src="/assets/vaultwarden-logo.svg" alt="">
<div class="app-info-hero-text">
<h3>Vaultwarden</h3>
<p class="app-info-tagline">Jelszókezelő - Bitwarden kompatibilis, a saját szerveren</p>
</div>
</div>
<img class="app-screenshot" src="/assets/vaultwarden-screenshot-1.webp" alt="Vaultwarden képernyőkép" loading="lazy">
<div class="app-info-grid">
<div class="app-info-card">
<h3>Mire jó egy családnak?</h3>
<ul class="app-info-list"><li>Jelszavak biztonságos tárolása és automatikus kitöltése</li><li>Bitwarden kliensek teljes kompatibilitása (böngésző, mobil, asztali)</li><li>Jelszavak megosztása családtagokkal szervezeten belül</li><li>Kétfaktoros hitelesítés (TOTP) kódok tárolása</li></ul>
</div>
<div class="app-info-card">
<h3>Első lépések</h3>
<ul class="app-info-list"><li>Nyisd meg a vault.DOMAIN/admin címet, és lépj be az admin panel tokenjével (Beállítások → Automatikusan generált értékek)</li><li>A „Users&quot; fülön az „Invite User&quot; mezőben hívd meg a saját és a családtagok e-mail címét — a regisztráció alapból le van zárva, csak meghívott cím nyithat fiókot</li><li>Nyisd meg a vault.DOMAIN címet, válaszd a „Create account&quot; lehetőséget a meghívott címmel, és adj meg erős mesterjelszót</li></ul>
</div>
</div>
<p class="form-hint">Telepítés: pár kattintás a vezérlőpultból. A saját dobozodon a
<strong>vault.otthonod.hu</strong> címen érnéd el. <span class="sample">minta</span></p>
</div>
</div>
<footer class="m2-foot">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid · <span class="sample">mockup, nem éles oldal</span></p>
</footer>
</body>
</html>