0b34be8449
gates / gates (push) Successful in 8m50s
Staged under /preview/m3/. Nothing live. 19 shell pages in total with the home.
Each page keeps its own <head> byte-for-byte apart from two additions (shell.css
and the no-js/js hook), so title, meta description, canonical, hreflang, Open Graph
and JSON-LD all survive the move untouched. The body loses the website's
<nav>/<footer> and the old hamburger script, and gains the shell.
PROVED, not assumed - a word-level diff of every page's visible text, live vs
shell, with the nav and footer removed from both:
* 18 of 18 pages: visible text IDENTICAL after the one allowed substitution
* adatkezeles and feltetelek: identical with NO substitution permitted at all.
The legal texts are reviewed documents; the frame changed, the words did not.
That check earned itself immediately. The first version of the page-header
transform rebuilt the block from its <h1> and first <p> and SILENTLY DROPPED the
rest: the "Fontos tudnivalok" / "Good to know" disclaimer banner on both apps
pages and the 404's English line - 168 words across three pages. Nothing looked
wrong on the page. The diff found it.
Em dashes: 318 replaced with the Hungarian gondolatjel across 16 pages (gyik and
en/faq 104 each). The FAQ pages' JSON-LD is swept with the SAME substitution, so
gate 17's equality with the visible answers still holds - it does, on both.
scripts/site_gates.py:
* SHELL now holds all 19 pages.
* is_en(): a page is English if it is a TWINS value OR lives under an en/
directory. Without the second half the dash-language, <html lang> and
no-Hungarian gates all judged preview/m3/en/* as Hungarian - 30 false fails.
* norm_block() also drops `is-open` and `aria-expanded`, because the shell
renders the nav group containing the active page open, exactly as the
controller does, and that legitimately differs per page.
The last change LOOSENS a check, so it was red-proofed BOTH ways: a one-character
difference in one menu label still convicts, and a state-only difference (the
active marker moving to another item) correctly does not.
One generator now owns the shell. The home page's content comes from m3.py and its
shell from the same function every other page uses, so the two cannot drift - which
they already had, and gate 3b caught it.
307 lines
18 KiB
HTML
307 lines
18 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="hu" class="no-js">
|
|
<head>
|
|
<script>document.documentElement.className=document.documentElement.className.replace('no-js','js');</script>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>A zárt teszt feltételei | Felhom.eu</title>
|
|
<meta name="description" content="Mit kapsz a Felhom.eu ingyenes zárt tesztjében, mit nem ígérünk, és hogyan tudsz bármikor kiszállni.">
|
|
<meta name="robots" content="index, follow">
|
|
<link rel="canonical" href="https://felhom.eu/feltetelek">
|
|
<link rel="alternate" hreflang="hu" href="https://felhom.eu/feltetelek">
|
|
<link rel="alternate" hreflang="x-default" href="https://felhom.eu/feltetelek">
|
|
|
|
<meta property="og:type" content="article">
|
|
<meta property="og:url" content="https://felhom.eu/feltetelek">
|
|
<meta property="og:title" content="A zárt teszt feltételei — Felhom.eu">
|
|
<meta property="og:description" content="Mit kapsz a Felhom.eu ingyenes zárt tesztjében, mit nem ígérünk, és hogyan tudsz bármikor kiszállni.">
|
|
<meta property="og:image" content="https://felhom.eu/assets/og-image.png">
|
|
<meta property="og:locale" content="hu_HU">
|
|
<meta property="og:site_name" content="Felhom.eu">
|
|
|
|
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
|
|
<link rel="stylesheet" href="/assets/site.css?v=19">
|
|
<link rel="stylesheet" href="/assets/shell.css?v=19">
|
|
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
|
|
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
|
|
</head>
|
|
<body class="shell page-feltetelek">
|
|
<header class="mobile-topbar">
|
|
<a href="/preview/m3/" class="mobile-topbar-logo"><img src="/assets/logo_notext_white.svg" alt="Felhom.eu"></a>
|
|
<button type="button" class="nav-burger" id="navBurger" aria-expanded="false" aria-controls="sidebar" aria-label="Menü">
|
|
<span class="hamburger-box"><span class="hamburger-line"></span><span class="hamburger-line"></span><span class="hamburger-line"></span></span>
|
|
</button>
|
|
</header>
|
|
<div class="nav-backdrop" id="navBackdrop" hidden></div>
|
|
<nav class="sidebar" id="sidebar">
|
|
<div class="sidebar-header">
|
|
<a href="/preview/m3/" class="sidebar-logo-link">
|
|
<img src="/assets/logo_notext_white.svg" alt="" class="sidebar-logo" aria-hidden="true">
|
|
<img src="/assets/logo-wordmark.png" alt="felhom.eu" class="sidebar-word">
|
|
</a>
|
|
</div>
|
|
<ul class="nav-links">
|
|
<li><a href="/preview/m3/"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-home"/></svg>Kezdőlap</a></li>
|
|
<li><a href="/preview/m3/#szolgaltatasok"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-rocket"/></svg>Szolgáltatások</a></li>
|
|
<li class="nav-group">
|
|
<button type="button" class="nav-group-toggle" aria-expanded="false" aria-controls="nav-group-apps"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-package"/></svg>Alkalmazások<svg class="ico nav-chevron" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-chevron-down"/></svg></button>
|
|
<ul id="nav-group-apps" class="nav-links nav-links-sub nav-links-nested">
|
|
<li><a href="/preview/m3/alkalmazasok">Minden alkalmazás</a></li>
|
|
<li><a href="/preview/m3/alkalmazasok#fajlkezeles-irodai">Fájlkezelés & Irodai</a></li>
|
|
<li><a href="/preview/m3/alkalmazasok#media-szorakozas">Média & Szórakozás</a></li>
|
|
<li><a href="/preview/m3/alkalmazasok#otthon-eletmod">Otthon & Életmód</a></li>
|
|
<li><a href="/preview/m3/alkalmazasok#produktivitas-tudaskezeles">Produktivitás & Tudáskezelés</a></li>
|
|
<li><a href="/preview/m3/alkalmazasok#rendszer-fejlesztes">Rendszer & Fejlesztés</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="/preview/m3/technologiak"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-layers"/></svg>Technológiák</a></li>
|
|
<li><a href="/preview/m3/biztonsagimentes"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-shield-check"/></svg>Biztonsági mentés</a></li>
|
|
</ul>
|
|
<div class="sidebar-bottom">
|
|
<a href="/preview/m3/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
|
|
<div class="nav-group-label">A Felhomról</div>
|
|
<ul class="nav-links nav-links-sub">
|
|
<li><a href="/preview/m3/#hogyan-mukodik">Hogyan működik</a></li>
|
|
<li><a href="/preview/m3/gyik">GYIK</a></li>
|
|
<li><a href="/preview/m3/kapcsolat">Kapcsolat</a></li>
|
|
</ul>
|
|
<div class="sidebar-footer">
|
|
<details class="lang-globe"><summary class="lang-globe-btn" aria-label="Nyelv" title="Nyelv"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-globe"/></svg></summary><ul class="lang-globe-menu"><li><a href="/preview/m3/feltetelek" lang="hu" hreflang="hu" class="lang-globe-item current" aria-current="true">Magyar</a></li><li><a href="#" lang="en" hreflang="en" class="lang-globe-item">English</a></li></ul></details>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
<main class="content">
|
|
|
|
|
|
<header class="page-header">
|
|
<div class="container">
|
|
<h1>A zárt teszt feltételei</h1>
|
|
<p>Rövid és őszinte: mit kapsz, mit nem ígérünk, és hogyan tudsz kiszállni.</p>
|
|
</div>
|
|
</header>
|
|
|
|
<section class="section">
|
|
<div class="container legal">
|
|
|
|
<p class="legal-version"><strong>Zárt teszt — 1.1 verzió, hatályos: 2026. október 10.</strong></p>
|
|
|
|
<h2>1. Ki vagyunk</h2>
|
|
<!-- source: operator ruling 2026-10-09 (no company yet) -->
|
|
<p>
|
|
A Felhomot <strong>Nagyfenyvesi Viktor</strong> magánszemélyként működteti. A Felhom ma még
|
|
<strong>nem cég</strong>. Elérhetőség: <a href="mailto:info@felhom.eu">info@felhom.eu</a>.
|
|
</p>
|
|
|
|
<h2>2. Mi ez</h2>
|
|
<p>
|
|
Ez egy <strong>ingyenes zárt teszt</strong> egy otthoni szerver szolgáltatásról. Néhány magyar
|
|
háztartással próbáljuk ki, hogy működik-e a gyakorlatban. Nem termék, amit megvettél — egy
|
|
teszt, amiben részt veszel.
|
|
</p>
|
|
|
|
<h2>3. Mit kapsz a teszt alatt</h2>
|
|
<!-- source: DRAFT-aszf.md §3, limited to the items the system does today -->
|
|
<ul>
|
|
<li>Egy <strong>otthoni szervert beállítunk</strong> nálad, és működőképes állapotba hozzuk.
|
|
<!-- source: documentation/architecture/01-topology-and-trust.md:182-183 --></li>
|
|
<li><strong>Alkalmazásokat telepítünk</strong> rá a katalógusunkból, a vezérlőpulton keresztül.
|
|
<!-- source: documentation/architecture/01-topology-and-trust.md:85 --></li>
|
|
<li>Az alkalmazások <strong>elérhetők lesznek az interneten</strong> is.
|
|
<!-- source: documentation/architecture/01-topology-and-trust.md:202-215 --></li>
|
|
<li><strong>Figyeljük a szervert.</strong> Ha baj van, szólunk.
|
|
<!-- source: documentation/architecture/05-hub-architecture.md:71-103, :308-318 --></li>
|
|
<li><strong>Mentés készül</strong> több szinten: a szerveren, és titkosítva egy távoli tárhelyen is.
|
|
A részleteket az <a href="/adatkezeles">Adatkezelési tájékoztató</a> 7. pontja írja le.
|
|
<!-- source: documentation/architecture/07-backup-architecture.md:373-379 --></li>
|
|
<li><strong>Frissítjük</strong> az alkalmazásokat és a rendszert, jellemzően éjszaka, egy általad
|
|
beállítható időablakban.
|
|
<!-- source: documentation/architecture/07-backup-architecture.md:420 --></li>
|
|
</ul>
|
|
|
|
<h2>4. A domain</h2>
|
|
<!-- source: operator ruling D1, 2026-10-10 (CONTEXT.md); documentation/architecture/01-topology-and-trust.md §7 -->
|
|
<p>
|
|
A szerveredet és az alkalmazásaidat a <strong>saját domainedről</strong> érjük el, nem egy
|
|
felhom.eu alatti névről. A vezérlőpultod <code>felhom.a-te-domained.hu</code>, minden alkalmazás
|
|
pedig egy saját aldomain.
|
|
</p>
|
|
<ul>
|
|
<li><strong>A domain a te nevedre szól.</strong> Nem a mi nevünkre vesszük meg — a tiéd.</li>
|
|
<li><strong>A díját a teszt alatt mi fizetjük, két évre.</strong></li>
|
|
<li><strong>Ha a teszt véget ér, vagy ha kiszállsz, a domain nálad marad</strong>, és onnantól
|
|
te fizeted tovább. Nem kérjük vissza, és nem visszük magunkkal.</li>
|
|
<li>A domain DNS-beállításait a teszt alatt mi kezeljük, egy olyan hozzáféréssel, ami
|
|
<strong>kizárólag ezt az egy domaint látja</strong>.</li>
|
|
</ul>
|
|
|
|
<h2>5. Mit nem ígérünk</h2>
|
|
<p>Ezt fontos elolvasni, mert egy teszt nem ugyanaz, mint egy kész szolgáltatás.</p>
|
|
<ul>
|
|
<li><strong>Nincs díj</strong> a teszt alatt — se tőled, se felénk. Árat nem ajánlunk és nem kérünk.</li>
|
|
<li><strong>Nem ígérünk rendelkezésre állást.</strong> A szerver leállhat, és előfordulhat, hogy nem
|
|
vesszük észre azonnal.</li>
|
|
<li><strong>Nem ígérünk válaszidőt.</strong> Igyekszünk gyorsan segíteni, de határidőt nem vállalunk.</li>
|
|
<li><strong>Nem garantáljuk, hogy minden fájl visszaállítható.</strong> Mentés készül, és teszteljük
|
|
is, de egy teszt alatt bármi elromolhat.</li>
|
|
</ul>
|
|
<p class="legal-callout">
|
|
<strong>Ezért kérünk valamit:</strong> amit nem veszíthetsz el, abból tarts meg egy saját
|
|
másolatot magadnál is. Ne a teszt legyen az egyetlen helye.
|
|
</p>
|
|
|
|
<h2>6. Hozzáférünk a szerveredhez</h2>
|
|
<p>
|
|
<strong>Rendszergazdai (root) hozzáférésünk van a szerverhez.</strong> Ez kell a frissítésekhez,
|
|
a mentés ellenőrzéséhez és a hibák javításához. Ezzel a szerveren lévő adatok elérhetők. Csak
|
|
üzemeltetésre és hibaelhárításra használjuk.
|
|
</p>
|
|
<!-- source: documentation/architecture/07-backup-architecture.md:49-52 -->
|
|
<p>
|
|
A veszélyes, adatvesztéssel járó műveletekhez a rendszerünk külön aláírást kér, és a szerver
|
|
maga kezdeményezi a kapcsolatot felénk.
|
|
</p>
|
|
<!-- source: documentation/architecture/01-topology-and-trust.md:97-105 (box-initiated control, signed jobs) -->
|
|
|
|
<h2>7. A mentésed kulcsa nálad van</h2>
|
|
<p>
|
|
A távoli mentésed titkosítva készül. A kulcsát egy <strong>helyreállító kód</strong> zárja, amit
|
|
csak te ismersz — nálunk nincs meg, és nem tudjuk pótolni. <strong>Ha elveszíted, a távoli
|
|
mentésed nem nyitható ki.</strong> Tedd el jól.
|
|
</p>
|
|
<!-- source: documentation/architecture/07-backup-architecture.md:67-83 -->
|
|
|
|
<h2>8. Az alkalmazások nem a mieink</h2>
|
|
<p>
|
|
A katalógusunkban mások által írt, nyílt forráskódú programok vannak. Ezeket nem mi adjuk el és
|
|
nem mi írtuk; mindegyikre a <strong>saját licencfeltételei</strong> vonatkoznak, és azok rád is
|
|
érvényesek.
|
|
</p>
|
|
<!-- source: DRAFT-aszf.md §5.4; documentation/backlog/OPEN-ITEMS.md (R-802 non-OSI licence list) -->
|
|
|
|
<h2>9. Az adataid a tieid</h2>
|
|
<p>
|
|
A szervereden lévő adatok és alkalmazások a tieid. Nem tartjuk vissza őket: a teszt után is
|
|
visszaállíthatók a helyreállító kódoddal.
|
|
</p>
|
|
<!-- source: documentation/architecture/01-topology-and-trust.md:300-302 ("Never hold data hostage") -->
|
|
|
|
<h2>10. Ha ki akarsz szállni</h2>
|
|
<p>
|
|
<strong>Bármikor abbahagyhatod</strong>, indoklás nélkül. Írj egy e-mailt az
|
|
<a href="mailto:info@felhom.eu">info@felhom.eu</a> címre, és leállítjuk.
|
|
</p>
|
|
<p>Ami ezután az adataiddal nálunk történik:</p>
|
|
<ul>
|
|
<li>a teljes szervermentésed a mentőszerverünkön a törléseddel <strong>törlődik</strong>;</li>
|
|
<li>ennek nálunk tárolt másolata <strong>legfeljebb 30 napon belül</strong> törlődik — ezt egy
|
|
naponta futó feladat végzi;
|
|
<!-- source: MEASURED 2026-10-09 on DooPlex: felhom-ep0-copy-gc.timer active, last run Fri 2026-10-09 08:00 CEST, Result=success, ExecMainStatus=0 --></li>
|
|
<li>a kiküldött értesítések naplója a törlésed után <strong>1 évig</strong> marad meg, aztán törlődik;</li>
|
|
<li>a visszaállítások és a szervertörlés naplóját <strong>megőrizzük</strong>, hogy utólag is
|
|
látható legyen, ki mit tett.</li>
|
|
</ul>
|
|
<p>A részletes lista az <a href="/adatkezeles">Adatkezelési tájékoztató</a> 6. és 7. pontjában van.</p>
|
|
|
|
<h2>11. Ha változnak a feltételek</h2>
|
|
<p>
|
|
Ezek a feltételek változhatnak. Ha lényeges változás lesz, a teszt résztvevőinek
|
|
<strong>előtte e-mailt küldünk</strong>, és a tetején lévő verziószámot megemeljük.
|
|
</p>
|
|
|
|
<h2>12. Kapcsolat</h2>
|
|
<p>
|
|
<a href="mailto:info@felhom.eu">info@felhom.eu</a> — adatkezelés:
|
|
<a href="/adatkezeles">Adatkezelési tájékoztató</a>.
|
|
</p>
|
|
|
|
</div>
|
|
</section>
|
|
<script>
|
|
(function() {
|
|
var hamburger = document.getElementById('hamburger');
|
|
var navLinks = document.querySelector('.nav-links');
|
|
var overlay = document.getElementById('mobileOverlay');
|
|
var body = document.body;
|
|
|
|
if (!hamburger || !navLinks || !overlay) {
|
|
console.warn('[mobile-menu] Missing elements:', {
|
|
hamburger: !!hamburger,
|
|
navLinks: !!navLinks,
|
|
overlay: !!overlay
|
|
});
|
|
return;
|
|
}
|
|
|
|
function openMenu() {
|
|
hamburger.classList.add('is-active');
|
|
navLinks.classList.add('is-open');
|
|
overlay.classList.add('is-visible');
|
|
body.classList.add('menu-open');
|
|
hamburger.setAttribute('aria-expanded', 'true');
|
|
hamburger.setAttribute('aria-label', 'Menü bezárása');
|
|
}
|
|
|
|
function closeMenu() {
|
|
hamburger.classList.remove('is-active');
|
|
navLinks.classList.remove('is-open');
|
|
overlay.classList.remove('is-visible');
|
|
body.classList.remove('menu-open');
|
|
hamburger.setAttribute('aria-expanded', 'false');
|
|
hamburger.setAttribute('aria-label', 'Menü megnyitása');
|
|
}
|
|
|
|
hamburger.addEventListener('click', function() {
|
|
if (navLinks.classList.contains('is-open')) {
|
|
closeMenu();
|
|
} else {
|
|
openMenu();
|
|
}
|
|
});
|
|
|
|
overlay.addEventListener('click', closeMenu);
|
|
|
|
navLinks.querySelectorAll('a').forEach(function(link) {
|
|
link.addEventListener('click', closeMenu);
|
|
});
|
|
|
|
document.addEventListener('keydown', function(e) {
|
|
if (e.key === 'Escape' && navLinks.classList.contains('is-open')) {
|
|
closeMenu();
|
|
}
|
|
});
|
|
|
|
window.addEventListener('resize', function() {
|
|
if (window.innerWidth > 900 && navLinks.classList.contains('is-open')) {
|
|
closeMenu();
|
|
}
|
|
});
|
|
})();
|
|
</script>
|
|
</main>
|
|
<script>
|
|
(function(){
|
|
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
|
|
if(!b||!s||!k)return;
|
|
function open(){s.classList.add('is-open');k.hidden=false;document.body.classList.add('nav-open');b.setAttribute('aria-expanded','true');}
|
|
function close(){s.classList.remove('is-open');k.hidden=true;document.body.classList.remove('nav-open');b.setAttribute('aria-expanded','false');}
|
|
b.addEventListener('click',function(){s.classList.contains('is-open')?close():open();});
|
|
k.addEventListener('click',close);
|
|
document.addEventListener('keydown',function(e){if(e.key==='Escape'&&s.classList.contains('is-open')){close();b.focus();}});
|
|
s.querySelectorAll('a').forEach(function(l){l.addEventListener('click',close);});
|
|
window.addEventListener('resize',function(){if(window.innerWidth>768)close();});
|
|
})();
|
|
document.addEventListener('click',function(e){
|
|
var btn=e.target.closest?e.target.closest('.nav-group-toggle'):null;
|
|
if(!btn)return;
|
|
var g=btn.closest('.nav-group');if(!g)return;
|
|
var willOpen=!g.classList.contains('is-open');
|
|
document.querySelectorAll('.nav-group.is-open').forEach(function(x){
|
|
x.classList.remove('is-open');
|
|
var t=x.querySelector('.nav-group-toggle');if(t)t.setAttribute('aria-expanded','false');
|
|
});
|
|
if(willOpen){g.classList.add('is-open');btn.setAttribute('aria-expanded','true');}
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|