Files
felhom.eu/website/en/index.html
T
admin 02be8ea7f0
gates / gates (push) Successful in 6m12s
website: the reviewer's findings - consent error, reply time, sitemap, voice, clip
A page-by-page review of the live site (1440px and 390px) found six defects and
two editorial questions. The operator answered three questions; the answers and
the evidence are in REPORT-review-2026-10-12.md.

Fixed:
- The contact form showed its consent error before any submit, on both pages:
  #privacyError sits outside any .form-group and the hide rule was scoped to
  .form-group. Scoped to the page. Checked: load (none) -> submit unticked
  (shown) -> tick (gone), with no message sent.
- The consent checkbox is the site's own control now: 24px box, keyboard focus
  ring, and a second <label for="privacy"> at 44x44 round it for touch.
- The contact page promised a reply within 24 hours while /feltetelek 1.1 §4
  promises no reply time. Now 1-2 days usually, and no promise during the test.
- sitemap.xml was missing /szolgaltatasok and /en/services: 18 -> 20 URLs.
- The pre-shell mobile-menu script still ran on 20 pages and logged
  "[mobile-menu] Missing elements" on every one. Removed.
- The sidebar's tester button was btn-outline while the hero's was btn-primary.
- The home page's "Mit tud a doboz ma?" was three bare links; each card now
  carries 2-3 of the services page's own items, word for word.
- A plain Facebook link in the footer of all 22 pages. No script, widget or
  pixel: the only external hosts any page refers to are still felhom.eu and
  stats.felhom.eu.

Voice (operator ruling: "I" everywhere a person speaks): contact, tester and FAQ
pages in both languages, and the home and services pages that repeat the same
promises. An inclusive "we" (you and I, talking) stays plural, and the legal
texts are untouched. Each FAQ answer exists twice (JSON-LD + visible) and gate 18
holds them equal - it caught the five answers whose markup split the sentence.

Hero clip rebuilt: Immich first, so the poster is a wall of real photographs;
the Jellyfin scene starts after the demo's library wall (eleven pieces of poster
art whose licence cannot be quoted from a first-party source); 1.3s of blank
screen cut from the OnlyOffice scene. The film that plays, Caminandes 3:
Llamigos, is CC BY per Blender's own video platform ("licence": {"id": 1,
"label": "Attribution"}) - NOT public domain as website/CHANGELOG.md said
yesterday. That sentence is corrected in place and the film is credited under
the hero caption.

New gate 24: sitemap.xml lists every public page once, with its twin's hreflang
pair, and lists nothing else. Decoy: site/sitemap-missing-page, the exact shape
the reviewer found by hand.

site.css ?v=30; hero clip and poster ?v=2.
2026-10-12 14:25:53 +02:00

333 lines
21 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" 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">
<meta name="description" content="A home server in your own home in Hungary: photos, documents, media. 58 apps to install, automatic backups on three levels, a dashboard in English or Hungarian. A closed test is starting now.">
<title>Felhom.eu — Your own cloud, your own rules | A home server service in Hungary</title>
<!-- SEO meta -->
<meta name="keywords" content="home server, own cloud, self-hosting, Google Drive alternative, iCloud alternative, privacy, open source, server installation, server management, Nextcloud, Immich, Hungary">
<meta name="author" content="Felhom.eu">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://felhom.eu/en/">
<link rel="alternate" hreflang="hu" href="https://felhom.eu/">
<link rel="alternate" hreflang="en" href="https://felhom.eu/en/">
<link rel="alternate" hreflang="x-default" href="https://felhom.eu/">
<!-- Open Graph (Facebook, LinkedIn) -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://felhom.eu/en/">
<meta property="og:title" content="Felhom.eu — Your own cloud, your own rules">
<meta property="og:description" content="A home server in your own home in Hungary: photos, documents, media — with automatic backups and a recovery code only you know. A closed test is starting now.">
<meta property="og:image" content="https://felhom.eu/assets/og-image-en.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="Felhom.eu — Your own cloud, your own rules. Closed test starting.">
<meta property="og:locale" content="en_GB">
<meta property="og:site_name" content="Felhom.eu">
<!-- Twitter/X Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Felhom.eu — Your own cloud, your own rules">
<meta name="twitter:description" content="A home server in your own home in Hungary: photos, documents, media — with automatic backups and a recovery code only you know.">
<meta name="twitter:image" content="https://felhom.eu/assets/og-image-en.png">
<!-- Structured Data (JSON-LD) -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Felhom.eu",
"description": "Professional home server installation and management in Hungary.",
"url": "https://felhom.eu",
"logo": "https://felhom.eu/assets/logo.png",
"email": "info@felhom.eu",
"areaServed": {
"@type": "Country",
"name": "Hungary"
},
"serviceType": ["Server installation", "Server management", "Self-hosting"],
"knowsLanguage": ["hu", "en"],
"sameAs": []
}
</script>
<link rel="preload" as="font" type="font/woff2" crossorigin href="/assets/fonts/pjs-latin.woff2">
<link rel="preload" as="font" type="font/woff2" crossorigin href="/assets/fonts/pjs-latin-ext.woff2">
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=30">
<link rel="stylesheet" href="/assets/shell.css?v=25">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="/assets/gallery.js?v=2"></script>
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
<body class="shell page-index">
<header class="mobile-topbar">
<a href="/en/" 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="Menu">
<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="/en/" 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="/en/" class="active"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-home"/></svg>Home</a></li>
<li><a href="/en/services"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-rocket"/></svg>Services</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>Applications<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="/en/apps">About the apps</a></li>
<li><a href="/en/apps#files">Files &amp; Office</a></li>
<li><a href="/en/apps#media">Media &amp; Entertainment</a></li>
<li><a href="/en/apps#home">Home &amp; Lifestyle</a></li>
<li><a href="/en/apps#productivity">Productivity &amp; Knowledge</a></li>
<li><a href="/en/apps#system">System &amp; Development</a></li>
</ul>
</li>
<li><a href="/en/technology"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-layers"/></svg>Technology</a></li>
<li><a href="/en/backups"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-shield-check"/></svg>Backups</a></li>
</ul>
<div class="sidebar-bottom">
<a href="/en/testing" class="btn btn-primary sidebar-cta">Apply as a tester →</a>
<div class="nav-group-label">About Felhom</div>
<ul class="nav-links nav-links-sub">
<li><a href="/en/#how-it-works">How it works</a></li>
<li><a href="/en/faq">FAQ</a></li>
<li><a href="/en/contact">Contact</a></li>
</ul>
<div class="sidebar-footer">
<details class="lang-globe"><summary class="lang-globe-btn" aria-label="Language" title="Language"><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="/" lang="hu" hreflang="hu" class="lang-globe-item">Magyar</a></li><li><a href="/en/" lang="en" hreflang="en" class="lang-globe-item current" aria-current="true">English</a></li></ul></details>
</div>
</div>
</nav>
<main class="content">
<section class="hero-row">
<div class="hero-copy">
<h1>Your own cloud,<br><span>your own rules</span></h1>
<span class="domain-badge">Home server service</span>
<p class="hero-lede">A small machine in your home: your photos, your documents, your films. A backup is made every night. I watch it, you use it.</p>
<a href="/en/testing" class="btn btn-primary btn-lg">Apply as a tester →</a>
</div>
<figure class="hero-shot">
<div class="hero-laptop">
<video class="hero-screen" poster="/assets/hero-poster.webp?v=2" muted loop playsinline preload="none" disablepictureinpicture aria-label="Apps running: Immich, Jellyfin, Tandoor, OnlyOffice, RomM, Paperless">
<source src="/assets/hero-clip.webm?v=2" type="video/webm">
<source src="/assets/hero-clip.mp4?v=2" type="video/mp4">
</video>
<img src="/assets/hero-laptop-frame.webp?v=1" width="1200" height="916" alt="" decoding="async">
</div>
<figcaption>Apps from the catalogue: Immich, Jellyfin, Tandoor, OnlyOffice, RomM, Paperless.<span class="hero-credit">The film on the screen: <a href="https://studio.blender.org/films/caminandes-3/" rel="noopener">Caminandes: Llamigos</a> © Blender Foundation, CC BY.</span></figcaption>
</figure>
</section>
<section class="shell-section" id="services">
<div class="sec-head">
<h2>What the box <span>does today</span></h2>
<p>Not a plan, not a promise — these work today on a live Felhom box</p>
</div>
<ul class="caps-teaser">
<li>
<a href="/en/services#every-day">What you use every day</a>
<ul>
<li>Photos, documents, media</li>
<li>Network shares</li>
<li>58 apps to install</li>
</ul>
</li>
<li>
<a href="/en/services#protection">What protects you in the background</a>
<ul>
<li>Automatic backups on three levels</li>
<li>A recovery code only you know</li>
<li>Restore when something goes wrong</li>
</ul>
</li>
<li>
<a href="/en/services#we-look-after">What I take care of</a>
<ul>
<li>Remote monitoring, automatic updates</li>
<li>Careful app updates</li>
</ul>
</li>
</ul>
<a href="/en/services" class="btn btn-outline">All services →</a>
</section>
<section class="shell-section" id="dashboard">
<div class="sec-head">
<h2>What the <span>Dashboard looks like</span></h2>
<p>Real pictures from a Felhom box — click one for the full size</p>
</div>
<div class="dash-grid">
<figure class="dash-shot">
<a href="/assets/dashboard-start-en.webp" data-gallery="dashboard"><img src="/assets/dashboard-start-en.webp" alt="The Dashboard's Launcher: tiles of the apps installed at home" width="1440" height="900" loading="lazy"></a>
<figcaption><strong>Launcher</strong> — every app you have, one click away.</figcaption>
</figure>
<figure class="dash-shot">
<a href="/assets/dashboard-apps-en.webp" data-gallery="dashboard"><img src="/assets/dashboard-apps-en.webp" alt="The Apps page: cards of installed and installable apps, with their status" width="1440" height="900" loading="lazy"></a>
<figcaption><strong>Apps</strong> — install in a few clicks, and see what runs and what is up to date.</figcaption>
</figure>
<figure class="dash-shot">
<a href="/assets/dashboard-app-en.webp" data-gallery="dashboard"><img src="/assets/dashboard-app-en.webp" alt="An app's own page: what it is for, pictures, and the first steps" width="1440" height="900" loading="lazy"></a>
<figcaption><strong>An app's page</strong> — what it is for, where your files go, and how to start.</figcaption>
</figure>
<figure class="dash-shot">
<a href="/assets/dashboard-backups-en.webp" data-gallery="dashboard"><img src="/assets/dashboard-backups-en.webp" alt="The backups page: each app's database backed up overnight, and checked" width="1440" height="900" loading="lazy"></a>
<figcaption><strong>Backups</strong> — every night each app's database is backed up and checked.</figcaption>
</figure>
</div>
</section>
<section class="shell-section" id="how-it-works">
<div class="sec-head">
<h2>How <span>it works</span></h2>
<p>From the first conversation to a working system.</p>
</div>
<div class="flow">
<div class="flow-step">
<h3>A first talk</h3>
<p>We talk about what you need: which apps, and how much storage.</p>
</div>
<div class="flow-step">
<h3>Choosing the hardware</h3>
<p>We help you find the machine with the best value for what you need.</p>
</div>
<div class="flow-step">
<h3>Installation</h3>
<p>We install and set up the apps, the backups and the monitoring.</p>
</div>
<div class="flow-step">
<h3>Handover</h3>
<p>We show you the system, help you bring over your existing data, and answer all your questions.</p>
</div>
<div class="flow-step">
<h3>Running it</h3>
<p>We watch the system, update it and check the backups. You just use it.</p>
</div>
</div>
</section>
<section class="shell-section" id="why">
<div class="sec-head">
<h2>Why <span>your own?</span></h2>
<p>The same convenience, on different terms.</p>
</div>
<div class="vs">
<div class="vs-head">
<div>With a cloud provider</div>
<div>On your own box</div>
</div>
<div class="vs-row">
<div>You pay every month for storage and premium features, and the prices only go up.</div>
<div><strong>The machine is yours, for good.</strong> No storage subscription that gets dearer every year: you pay for the electricity and, if you want it, for the management.</div>
</div>
<div class="vs-row">
<div>Your photos, documents and personal data sit on other people's servers, in other people's hands.</div>
<div><strong>Your data stays in your home</strong>, not on Google's or Microsoft's servers. It goes into the remote backup only encrypted.</div>
</div>
<div class="vs-row">
<div>The storage runs out, and when it is full you pay again.</div>
<div><strong>No 15 GB limit.</strong> Add space as your needs grow — terabytes, if you need them.</div>
</div>
<div class="vs-row">
<div>You do not decide which services you get, or when they are switched off.</div>
<div><strong>You decide which services you run.</strong> You are the boss, not the provider.</div>
</div>
</div>
<div class="band">
<div class="band-item">
<h3>What you can install</h3>
<p>58 apps — almost all of them open source</p>
<a href="/en/apps" class="btn btn-outline">See all applications →</a>
</div>
<div class="band-item">
<h3>What runs underneath</h3>
<p>Docker containers on a Proxmox base, three-level backups, an encrypted tunnel with no open port, a Dashboard in English or Hungarian. Matched to your needs, <strong>from the simplest to the most serious</strong>.</p>
<a href="/en/technology" class="btn btn-outline">More about the technology →</a>
</div>
</div>
</section>
<section class="shell-section" id="closed-test">
<div class="sec-head">
<h2>Closed <span>test</span></h2>
<p>We are starting to use the system for real with a few households in Hungary</p>
</div>
<div class="app-info-grid">
<div class="app-info-card">
<h3>Real use</h3>
<p>Not a demo: the box stays with you, and you put your real photos and documents on it. We help with the installation and the move, and then you use it every day.</p>
</div>
<div class="app-info-card">
<h3>Feedback</h3>
<p>In return we ask you to tell us what annoys you, what is unclear and what does not work. An "I couldn't find this button" is worth the most to us — it tells us what to fix.</p>
</div>
</div>
<div class="alerts-container">
<div class="alert-banner alert-banner-warning">
<span class="alert-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-triangle-alert"/></svg></span>
<span class="alert-message"><strong>Known limits, honestly.</strong> Honestly: the Dashboard has one shared household password today; there are no separate accounts for family members yet (each app can have its own users, though). Streaming to the TV (DLNA) is not there yet: for now the media library plays in the browser and in mobile apps. And because this is a test, expect to find bugs — that is the point.</span>
</div>
</div>
<div class="close-cta">
<p>If this interests you, write. <strong>It commits you to nothing</strong>, we just talk first.</p>
<a href="/en/testing" class="btn btn-primary btn-lg">Apply as a tester →</a>
<div class="who-mini">
<img src="/assets/operator-portrait-small.webp" alt="Viktor Nagyfenyvesi, who runs Felhom" width="160" height="200" loading="lazy">
<p><strong>I am Viktor Nagyfenyvesi</strong>, and I am the one behind Felhom. If you write, I answer. <a href="/en/contact#ki-all-mogotte">More about me →</a></p>
</div>
</div>
</section>
<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> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</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');}
});
(function(){
var v=document.querySelector('.hero-screen');
if(!v||!v.play)return;
if(window.matchMedia&&window.matchMedia('(prefers-reduced-motion: reduce)').matches)return;
var go=function(){var p=v.play();if(p&&p['catch'])p['catch'](function(){});};
if(!window.IntersectionObserver){go();return;}
new IntersectionObserver(function(es){
es.forEach(function(e){if(e.isIntersecting){go();}else{v.pause();}});
},{threshold:0.2}).observe(v);
})();
</script>
</body>
</html>