Files
felhom.eu/website/en/testing.html
T
admin 43b67283c3
gates / gates (push) Failing after 14m58s
website: the footer dash swept site-wide, and the primary CTA meets WCAG AA
Two operator decisions from STOP 3, both independent of the home-page switch,
which was NOT approved and has NOT happened. index.html still serves the old
design; only the footer line and the button change on it.

1. The footer em dash, on all 21 page files (12 HU + 8 EN + the preview).
   "(c) 2026 felhom.eu - Sajat felhod..." now uses the spaced en dash, which is
   the correct Hungarian gondolatjel. Done as one sweep because site_gates.py
   gate 3 requires every page in a language set to carry an IDENTICAL footer, so
   this could never have been a one-page edit. Gate green: all 14 still match.

   Scope, stated honestly: this clears the footer only. 300 em dashes remain in
   the BODIES of the other 19 pages (gyik 53, en/faq 53, adatkezeles 33,
   szolgaltatasok-nonpublic 27, testing 24, teszteles 23, index 17/19, ...). The
   preview page is the only page at zero. The rest is NEXT.md work, page by page.

2. R-930, the operator's choice of the three offered: white on --blue measures
   4.01:1, under WCAG AA's 4.5:1 for body text. .cta-button goes to 1.2rem/700,
   which is >=18.66px at >=700 weight, so WCAG counts it as LARGE text and the
   floor becomes 3:1 - which 4.01 clears without touching --blue. Darkening the
   token was rejected because --blue is shared with the hub and controller UIs.
   Horizontal padding trimmed 32->26px to protect the one-line rule for the
   longest label; verified in the browser at 390px, not assumed.
   .cta-button-secondary is unchanged: it already measures 7.17:1.

   This reaches the primary button on 16 pages, which is the point - the defect
   was never the home page's.

site.css?v= bumped to 12 on all 21 files. The pages sat at v=10 and the preview
at v=11; leaving them split would have served a returning visitor the old
stylesheet and the change would have looked like it did not deploy.

site_gates.py green.
2026-10-11 00:25:43 +02:00

292 lines
17 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>Looking for testers — a home server, free during the test | Felhom.eu</title>
<meta name="description" content="We are looking for households in Hungary to try our home server. No fee during the test, we do the setup, and we pay for the domain for two years. Up to 5 households.">
<meta name="keywords" content="home server test, tester wanted, own cloud, NAS for home, closed test, self-hosting Hungary">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://felhom.eu/en/testing">
<link rel="alternate" hreflang="hu" href="https://felhom.eu/teszteles">
<link rel="alternate" hreflang="en" href="https://felhom.eu/en/testing">
<link rel="alternate" hreflang="x-default" href="https://felhom.eu/teszteles">
<meta property="og:type" content="article">
<meta property="og:url" content="https://felhom.eu/en/testing">
<meta property="og:title" content="Looking for testers — your own cloud at home, free during the test">
<meta property="og:description" content="Your photos and documents on your own machine, at home. We do the setup and pay for the domain for two years. Up to 5 households.">
<meta property="og:image" content="https://felhom.eu/assets/og-image.png">
<meta property="og:locale" content="en_GB">
<meta property="og:site_name" content="Felhom.eu">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Looking for testers — your own cloud at home">
<meta name="twitter:description" content="No fee during the test. We do the setup and pay for the domain for two years.">
<meta name="twitter:image" content="https://felhom.eu/assets/og-image.png">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Looking for testers for the Felhom closed test",
"description": "What you need, what you get, what we ask for, and how to apply to the Felhom closed test.",
"author": {"@type": "Organization", "name": "Felhom.eu"},
"publisher": {"@type": "Organization", "name": "Felhom.eu", "logo": {"@type": "ImageObject", "url": "https://felhom.eu/assets/logo.png"}},
"mainEntityOfPage": "https://felhom.eu/en/testing"
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=12">
<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="page-teszteles">
<nav>
<div class="container">
<a href="/en/" class="logo">
<img class="logo-mark" src="/assets/logo-mark.svg" alt="" aria-hidden="true">
<img class="logo-word" src="/assets/logo-wordmark.png" alt="felhom.eu">
</a>
<ul class="nav-links">
<li><a href="/en/#services">Services</a></li>
<li><a href="/en/apps">Apps</a></li>
<li><a href="/en/technology">Technology</a></li>
<li><a href="/en/backups">Backups</a></li>
<li><a href="/en/faq">FAQ</a></li>
<li><a href="/en/contact">Contact</a></li>
<li class="lang-globe-li"><details class="lang-globe"><summary class="lang-globe-btn" aria-label="Language" title="Language"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-globe"/></svg></summary><ul class="lang-globe-menu"><li><a href="/teszteles" lang="hu" hreflang="hu" class="lang-globe-item">Magyar</a></li><li><a href="/en/testing" lang="en" hreflang="en" class="lang-globe-item current" aria-current="true">English</a></li></ul></details></li>
</ul>
<button class="hamburger" id="hamburger" aria-label="Open menu" aria-expanded="false">
<span class="hamburger-box">
<span class="hamburger-line"></span>
<span class="hamburger-line"></span>
<span class="hamburger-line"></span>
</span>
</button>
</div>
</nav>
<div class="mobile-overlay" id="mobileOverlay"></div>
<main>
<section class="page-header">
<div class="container">
<h1>Become a <span>tester</span></h1>
<p>We are starting to run the system for real in a few households. There is no fee during the test, we do the setup, and we pay for the domain. In return we ask you to tell us what does not work.</p>
</div>
</section>
<!-- Hungary only -->
<section class="content-section">
<div class="container">
<div class="info-card">
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-map"/></svg> The closed test is for households in Hungary</h3>
<p>We set the server up in person and support it in Hungarian, so the closed test is open to households in Hungary only. This page describes the same offer as the <a href="/teszteles">Hungarian tester page</a>; the legal texts exist in Hungarian only.</p>
</div>
</div>
</section>
<!-- Who it is for -->
<section class="content-section alt-bg">
<div class="container">
<div class="section-header">
<h2>Who it is <span>for</span></h2>
<p>We are not looking for IT people — we are looking for families who will really use it</p>
</div>
<div class="info-card">
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-home"/></svg> A household that wants its data back at home</h3>
<p>If your photos, your scanned paperwork and your films live with a foreign provider today, and you would rather keep them at home on your own machine — we are looking for you.</p>
<p><strong>No IT knowledge is needed.</strong> We set the server up at your home and we operate it. You use it from the browser, like any other site.</p>
<div class="highlight-box">
<p>What you do need is <strong>patience</strong>. This is a test, not a finished product. You will find faults — that is the point of it.</p>
</div>
</div>
</div>
</section>
<!-- What you need -->
<section class="content-section">
<div class="container">
<div class="section-header">
<h2>What you <span>need</span></h2>
<p>Three things — and we pay for the third</p>
</div>
<div class="info-card">
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-cpu"/></svg> 1. A machine that can stay on</h3>
<!-- source: website/en/faq.html — same answers as the Hungarian FAQ -->
<p>The server sits in your home and runs all the time, so it has to be quiet and economical. From the FAQ: most households are well served by a mini PC (for example an Intel N100 with 16-32 GB of RAM) — quiet, economical at 15-35 W, and small enough for the shelf next to the router.</p>
<p>An older machine can work too: a former desktop PC can make a good server. During the first conversation we check whether the machine you have is up to the job (enough RAM, storage and reliability). Power draw and noise matter — an old gaming PC works, but it costs considerably more per month than a modern mini PC.</p>
<p>If you have no machine, that is not a blocker — we work out what suits you during the first conversation. More detailed configurations are on the <a href="/en/technology">Technology</a> page.</p>
</div>
<div class="info-card">
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-radio-tower"/></svg> 2. Home internet</h3>
<!-- source: website/en/faq.html — „What internet connection do I need?" -->
<p>For use at home, any connection is enough, because the apps run on your own local network rather than over the internet. If you also want to reach your server from elsewhere — from work, or on holiday — then upload speed is what counts: at least 10 Mbps is recommended, and more is better.</p>
</div>
<div class="info-card">
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-globe"/></svg> 3. A domain — which we pay for</h3>
<!-- source: operator ruling D1, 2026-10-10 (CONTEXT.md); documentation/architecture/01-topology-and-trust.md §7 -->
<p>Your server and your apps are reached through <strong>your own domain</strong> — never a name under felhom.eu. Your dashboard becomes <code>felhom.your-domain.hu</code>, and every app gets its own subdomain.</p>
<div class="highlight-box">
<p><strong>The domain is registered in your name, and we pay the fee for two years during the test.</strong> So the domain is yours: when the test ends, or if you leave, <strong>you keep the domain</strong> and carry on paying for it yourself. We do not ask for it back and we do not take it with us.</p>
</div>
<p>We manage the domain's DNS settings during the test with an access token that <strong>can see that one domain only</strong> — it reaches nothing else.</p>
</div>
</div>
</section>
<!-- What you get -->
<section class="content-section alt-bg">
<div class="container">
<div class="section-header">
<h2>What you <span>get</span></h2>
<p>The same list as section 3 of the test terms — no more and no less</p>
</div>
<div class="info-card">
<!-- source: documentation/legal/feltetelek-1.0.md §3 (same promises, no new ones) -->
<ul>
<li>We <strong>set up a home server</strong> at your home and bring it into working order.</li>
<li>We <strong>install apps</strong> on it from our catalogue, through the dashboard.</li>
<li>The apps are <strong>reachable over the internet</strong> as well.</li>
<li>We <strong>watch the server.</strong> If something is wrong, we tell you.</li>
<li><strong>Backups are made</strong> at several levels: on the box, and encrypted on remote storage.</li>
<li>We <strong>update</strong> the apps and the system, usually at night, in a window you choose.</li>
<li>And as above: <strong>we pay for the domain for two years.</strong></li>
</ul>
<p>What we do <strong>not</strong> promise — we commit to no availability and no response time — is in section 5 of the <a href="/feltetelek">test terms (Hungarian)</a>. It is worth reading before you apply.</p>
</div>
</div>
</section>
<!-- What we ask for -->
<section class="content-section">
<div class="container">
<div class="section-header">
<h2>What we <span>ask for</span></h2>
<p>Not money — neither from you nor to us</p>
</div>
<div class="info-card">
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-message-square"/></svg> Tell us what is wrong</h3>
<p>This is the only thing we ask in return. What is annoying, what is unclear, what does not work. A "I could not find that button" is worth the most to us — that is how we learn what to fix.</p>
<h3 style="margin-top: 24px;"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-shield-check"/></svg> Keep a copy of your own</h3>
<!-- source: documentation/legal/feltetelek-1.0.md §4 -->
<p>From the test terms: <strong>whatever you cannot afford to lose, keep a copy of it yourself as well. Do not let the test be its only home.</strong> Backups are made and we test them, but during a test anything can break.</p>
</div>
</div>
</section>
<!-- How many places -->
<section class="content-section alt-bg">
<div class="container">
<div class="section-header">
<h2>How many <span>places</span></h2>
</div>
<div class="info-card">
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-users"/></svg> Up to 5 households</h3>
<!-- source: operator ruling D2, 2026-10-10 (CONTEXT.md) -->
<p>The closed test runs with <strong>up to 5 households</strong>. The number is small because one person operates the system, and we want time for every tester. The test is <strong>just starting</strong>, so <strong>all 5 places are open</strong>.</p>
<p>If it fills up, we will say so — and tell you when a place opens again.</p>
</div>
</div>
</section>
<!-- Apply -->
<section class="cta-section">
<div class="container">
<h2>Interested? <span>Apply</span></h2>
<p>Send us a message — it <strong>commits you to nothing</strong>, we just talk first. We go through whether you have a suitable machine, and what you would use it for.</p>
<a href="/en/contact?tema=zart-teszt" class="cta-button">Apply as a tester →</a>
</div>
</section>
<!-- Worth reading -->
<section class="content-section">
<div class="container">
<div class="section-header">
<h2>Worth <span>reading</span></h2>
</div>
<div class="info-card">
<ul>
<li><a href="/feltetelek">The closed test terms (Hungarian)</a> — what you get, what we do not promise, and how to leave.</li>
<li><a href="/adatkezeles">Privacy notice (Hungarian)</a> — what data we handle, for how long, and why.</li>
<li><a href="/en/faq">FAQ</a> — the most common questions, from the machine to the backups.</li>
</ul>
</div>
</div>
</section>
</main>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
<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', 'Close menu');
}
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', 'Open menu');
}
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>
</body>
</html>