website: the reviewer's findings - consent error, reply time, sitemap, voice, clip
gates / gates (push) Successful in 6m12s

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.
This commit is contained in:
2026-10-12 14:25:49 +02:00
parent 1b45bb4d9b
commit 02be8ea7f0
31 changed files with 556 additions and 1529 deletions
+22
View File
@@ -14,6 +14,28 @@
- **The Cloudflare token recipe is in the install runbook** (S31): two permissions, one zone, nothing else.
- **What remains of the sheet, in order:** the four DooPlex changes (I ask you in chat before each), one hub release (you present for the deploy), one box release, Glance behind the family gate, the capability map, the notification-settings design, and last the six hub readers.
## Monday 2026-10-12 (review round): a page-by-page review, and its findings fixed
- **The contact form showed its red warning before anyone pressed anything** — on both contact
pages, from the moment the page opened. Fixed; the warning now waits for a send attempt.
- **The contact page promised an answer within 24 hours** while the test terms promise no reply
time at all. It now says 1–2 days usually, and that no reply time is promised during the test.
- **You speak in the first person now, everywhere a person speaks** (your answer): the contact,
tester and FAQ pages, and the home and services pages that repeat their promises, in both
languages. The legal texts are untouched, and „we” stays where it means you and me together.
- **The home page's „Mit tud a doboz ma?” has its content back**: three cards, each with 2–3 of the
services page's own points.
- **The two services pages were missing from the sitemap** — Google was never told they exist.
Added, and a new check now refuses any push that leaves a public page out of it.
- **The laptop clip was rebuilt**: your photos are the first scene, so the still a visitor sees
before it loads is a wall of real photographs. The film inside it is credited (Creative Commons,
attribution required — yesterday's note calling it public domain was wrong), and the demo
library's poster wall is cut.
- Also: a dead script that logged a warning on every inner page is gone, the tester button in the
menu is the proper blue, and the footer has a plain Facebook link (no script, nothing loaded).
- **Still waiting on someone else:** the server still sends everything uncompressed (R-931). That is
a change in the manifests repository, not here.
## Monday 2026-10-12 (night): the laptop on the home page is playing
- **Six apps, filmed by you, now run on the laptop's screen** on <https://felhom.eu> and the English
+45 -1
View File
@@ -37,6 +37,10 @@ Gates (all must pass; non-zero exit on any failure):
The sidebar's five category links pointed at #fajlkezeles-irodai and friends while
the page's ids are #fajlkezeles and friends: 100 dead links across 20 pages, live,
found by the operator clicking one
24. sitemap — sitemap.xml lists every public page once, with its twin's hreflang pair, and lists
nothing else. /szolgaltatasok and /en/services existed, were linked from the home
page and answered 200 for a day without being in it: nothing here was checking
(operator's reviewer, 2026-10-12)
22. shell leak — MEDIA-AWARE: no declaration in site.css reaches a shell page on a selector that
shell.css also styles. site.css loads FIRST, so a property shell.css never sets
survives — „later wins” is per PROPERTY, not per rule. Earned live 2026-10-11:
@@ -800,8 +804,48 @@ for _p in PAGES:
if not _anchor_bad:
print(" anchors: %d in-site #fragment(s), every one resolves" % _anchor_n)
# ---------------------------------------------------------------------------------------------
# gate 24 (2026-10-12): the sitemap lists every public page, and only public pages.
# A page can be live, linked and indexable while Google never hears of it - which is exactly what
# /szolgaltatasok and /en/services were for a day. The sitemap is a hand-maintained file next to a
# generated site, so it drifts silently; this is the check that was missing.
# The legal pages have no twin (R-813) but ARE public, so they are listed here by name.
_LEGAL_URLS = {"/adatkezeles", "/feltetelek"}
_SITEMAP = os.path.join(W, "sitemap.xml")
if not os.path.exists(_SITEMAP):
fail("sitemap.xml is missing — every public page is invisible to search engines")
else:
_sm = io.open(_SITEMAP, encoding="utf-8-sig").read()
_locs = [re.sub(r"^https?://felhom\.eu", "", u) for u in re.findall(r"<loc>([^<]+)</loc>", _sm)]
_want = set(URL.values()) | _LEGAL_URLS
_have = set(_locs)
for _u in sorted(_want - _have):
fail("sitemap.xml: %s is a public page and is NOT listed — search engines are told the site "
"has no such page" % _u)
for _u in sorted(_have - _want):
fail("sitemap.xml: %s is listed but is not a public page of this site (NO_TWIN pages and the "
"404 are deliberately not indexed)" % _u)
for _u in sorted(_u for _u in _locs if _locs.count(_u) > 1):
fail("sitemap.xml: %s is listed more than once" % _u)
# every twin pair carries BOTH alternates, in the same <url> block, on both of its entries
_blocks = dict()
for _b in re.findall(r"<url>(.*?)</url>", _sm, re.S):
_m = re.search(r"<loc>([^<]+)</loc>", _b)
if _m:
_blocks[re.sub(r"^https?://felhom\.eu", "", _m.group(1))] = _b
for _hu, _en in TWINS.items():
_hu_url, _en_url = URL[_hu], URL[_en]
for _u in (_hu_url, _en_url):
_b = _blocks.get(_u, "")
for _lang, _target in (("hu", _hu_url), ("en", _en_url)):
if 'hreflang="%s" href="https://felhom.eu%s"' % (_lang, _target) not in _b:
fail('sitemap.xml: the entry for %s does not name its %s twin '
'(hreflang="%s" -> %s)' % (_u, _lang, _lang, _target))
if not [f for f in fails if "sitemap.xml" in f]:
print(" sitemap: %d URL(s), every public page once, every twin pair cross-named" % len(_locs))
if fails:
print("\nSITE GATES FAILED: %d problem(s)" % len(fails))
sys.exit(1)
print("site gates OK — BOM, emoji=0, nav/footer per language, analytics, no CDN, no legacy tokens, no <style>, "
"cache-busted assets, twins + hreflang + globe, lang, same apps, no Hungarian in English, FAQ JSON-LD, clean tail, dashboard pictures per language, one picture viewer, no shell CSS leak, live anchors")
"cache-busted assets, twins + hreflang + globe, lang, same apps, no Hungarian in English, FAQ JSON-LD, clean tail, dashboard pictures per language, one picture viewer, no shell CSS leak, live anchors, complete sitemap")
+7
View File
@@ -674,6 +674,13 @@ decoy("site/bare-element-rule-reaches-shell", "site_gates.py",
replace_bytes(os.path.join(_WEB, "assets", "site.css"),
[("body:not(.shell) nav {\n position: fixed;", "nav {\n position: fixed;")]),
must="is a bare element rule that also matches the shell's own <nav>")
# 5. THE SITEMAP GAP that nothing was watching: /szolgaltatasok and /en/services shipped, were linked
# from the home page and answered 200, while sitemap.xml still listed 18 URLs. Taking the services
# entry back out is exactly the shape the reviewer found by hand on 2026-10-12.
decoy("site/sitemap-missing-page", "site_gates.py",
replace_bytes(os.path.join(_WEB, "sitemap.xml"),
[(" <url>\n <loc>https://felhom.eu/szolgaltatasok</loc>\n", " <url>\n <loc>https://felhom.eu/REMOVED</loc>\n")]),
must="/szolgaltatasok is a public page and is NOT listed")
decoy("site/footer-outside-main", "site_gates.py",
replace_bytes(os.path.join(_WEB, "gyik.html"),
[(" <footer>\n", " </main>\n <footer>\n"),
+3 -64
View File
@@ -9,7 +9,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -47,7 +47,7 @@
<li><a href="/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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -76,72 +76,11 @@
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
<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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+70 -3
View File
@@ -1,4 +1,69 @@
## 2026-10-12 (night) — the headings are two-tone again, and the home page has rules between its sections
## 2026-10-12 (review round) — the reviewer's findings, fixed
A page-by-page review of the live site (Playwright, 1440 px and 390 px) found six real defects and
two editorial questions. The operator answered three questions first; the answers are in
`REPORT-review-2026-10-12.md`.
**Fixed**
- **The contact form showed its consent error before anyone pressed anything** (both languages).
`#privacyError` sits OUTSIDE any `.form-group`, and the rule that hides error messages was scoped
to `.form-group`, so it never reached it — it was on screen from the first paint. Scoped to the
page instead. Checked: load (no error) — submit unticked (error) — tick (error gone).
- **The consent checkbox was the browser's own 18 px control.** It is the site's now: a 24 px box in
the design system's border and blue, a keyboard focus ring, and a second `<label for="privacy">`
wrapped round it at 44×44 px (pulled back with negative margins, so the layout does not move) —
a label toggles the control it names, so the whole square is tappable.
- **The contact page promised more than the terms allow.** It said „24 órán belül válaszolunk” while
`/feltetelek` 1.1 §4 says „Nem ígérünk válaszidőt”. Now: „Általában 1–2 napon belül válaszolok. A
zárt teszt alatt válaszidőt nem vállalok — ez a teszt feltételeiben is így áll.”
- **The services pages were missing from `sitemap.xml`.** `/szolgaltatasok` and `/en/services` added
with their hreflang pair; 18 URLs — 20.
- **A pre-shell mobile-menu script still ran on every inner page**, logging
`[mobile-menu] Missing elements` to the console. Removed from all 20 pages (the home pages never
had it). Its elements (`#hamburger`, `#mobileOverlay`) stopped existing with the M3 switch.
- **The sidebar's tester button looked second-class** — it was `btn-outline` while the hero's was
`btn-primary`. Both are primary now (that blue passes AA since R-930).
- **The home page's biggest section said nothing.** „Mit tud a doboz ma?” was three bare links; each
card now carries 2–3 of the services page's own item names, word for word, with the
„Minden szolgáltatás →” link kept under them.
- **A plain `Facebook` link in the footer** (all 22 pages, both languages), pointing at the Page. No
script, widget, pixel or embed — the privacy notice says the site loads nothing from anywhere
else, and that stays true.
**The voice** (operator ruling: *„‚I’ everywhere a person speaks”*)
- The contact, tester and FAQ pages in both languages now speak in the first person singular, which
is what the „Ki áll mögötte” bio already did and what is true: one person runs Felhom. The home
and services pages follow, so no sentence contradicts another.
- **An inclusive „we” stays plural** („Megbeszéljük”, „átbeszéljük”, „egyeztetjük” — you and I,
talking), and **the legal texts are untouched**, so `/adatkezeles` and `/feltetelek` are still
byte-for-byte what they were.
- Every FAQ answer exists twice (the FAQPage JSON-LD and the visible text) and gate 18 holds the two
equal, so each change was made to both copies — five answers carry `<strong>` inside the sentence
and the gate caught exactly those five when the first pass missed them.
- **„Miben segíthetünk?” is „Miben segíthetek?”**, and its list is what the closed test actually
offers (operator ruling): app installation, backup set-up, questions about the test. Server
consulting, maintaining someone else's server and remote-access set-up are gone.
**The hero clip, rebuilt**
- **Immich is the first scene**, so the poster — the still every blocked or paused video shows — is
a wall of real photographs rather than a cartoon llama.
- **The Jellyfin scene starts one second in**, after the demo's library wall. That removes eleven
pieces of film poster art whose licences cannot be quoted from a first-party source, and the
„Stable Demo” branding with them.
- **The film that does play is credited.** On Blender's own video platform *Caminandes 3: Llamigos*
carries `"licence": {"id": 1, "label": "Attribution"}` — CC BY, which **requires** attribution and
is **not** public domain, as this file wrongly said yesterday. The caption now reads
„A film a képernyőn: Caminandes: Llamigos © Blender Foundation, CC BY”, linked to the film's page.
- **1.3 s of blank screen is gone from the OnlyOffice scene** (a loading page, then an empty
spreadsheet before the data arrived): the scene is 0–3.30 s plus 4.60 s–end, cut on the frame.
- 34.3 s now: mp4 1 084 KB, webm 1 185 KB, poster 69 KB.
`site.css` — `?v=30` on all 22 pages; the clip and poster are `?v=2`.
## 2026-10-12 (night) — the headings are two-tone again, and the home page has rules between its sections
Both from the operator, 2026-10-12: the white/blue heading split was lost in the M3 switch and
should come back everywhere (*„on the apps page too, the categories should be white/blue”*), and the
@@ -28,8 +93,10 @@ home page's sections were hard to tell apart.
The operator recorded the six scenes himself and ruled on their length: *„use the full length for
all of them, they had been cut as I liked them”*. Jellyfin, Paperless and RomM were filmed on those
projects' own public demo sites, so nothing in the clip is anyone's private library; the films in
the Jellyfin scene are public-domain prints.
projects' own public demo sites, so nothing in the clip is anyone's private library; ~~the films in
the Jellyfin scene are public-domain prints~~ — **that sentence was wrong, see the entry above
for 2026-10-12 (review round): the film that plays is CC BY, which is not public domain, and it is
credited on the page now.**
- **`website/assets/hero-clip.mp4` (1 134 KB) + `hero-clip.webm` (1 295 KB) + `hero-poster.webp`
(53 KB)** — Jellyfin, Tandoor, OnlyOffice, Immich, RomM, Paperless, in that order, 0.6s
+3 -64
View File
@@ -22,7 +22,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -60,7 +60,7 @@
<li><a href="/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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -364,71 +364,10 @@
</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>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
+3 -64
View File
@@ -46,7 +46,7 @@
<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=28">
<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>
@@ -85,7 +85,7 @@
<li><a href="/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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -1291,72 +1291,11 @@
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
<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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 69 KiB

+67 -12
View File
@@ -658,13 +658,16 @@ body:not(.shell) .mobile-overlay.is-visible { opacity: 1; }
border-color: var(--crit);
}
.page-kapcsolat .form-group .error-message {
/* The consent error sits OUTSIDE any .form-group (it belongs to the whole checkbox row),
so a hide rule scoped to .form-group never reached it and it was on screen from the first
paint - the reviewer saw it on the live page, 2026-10-12. Scoped to the page instead. */
.page-kapcsolat .error-message {
color: var(--crit);
font-size: 0.8rem;
margin-top: 6px;
display: none;
}
.page-kapcsolat .form-group .error-message.visible {
.page-kapcsolat .error-message.visible {
display: block;
}
.page-kapcsolat .form-group select {
@@ -928,14 +931,42 @@ body:not(.shell) .mobile-overlay.is-visible { opacity: 1; }
gap: 12px;
margin-bottom: 24px;
}
/* The consent box was the browser's own 18px control. It is now the site's: a 24px box that
takes the design system's border and blue, a focus ring that is visible from the keyboard,
and - because a 24px box is below every touch guideline - a second <label for="privacy">
wrapped round it, 44x44, pulled back into place with negative margins so the layout does not
move. A label toggles the control it names, so the whole 44px square is tappable; the text
label beside it still works too. */
.page-kapcsolat .cb-hit {
display: inline-flex; align-items: center; justify-content: center;
width: 44px; height: 44px; margin: -10px -10px -10px -10px;
flex-shrink: 0; cursor: pointer;
}
.page-kapcsolat .checkbox-group input[type="checkbox"] {
width: 18px;
height: 18px;
margin-top: 2px;
accent-color: var(--blue);
appearance: none; -webkit-appearance: none;
width: 24px;
height: 24px;
margin: 0;
border: 1px solid var(--line);
border-radius: var(--radius);
background: var(--bg-1);
flex-shrink: 0;
cursor: pointer;
}
.page-kapcsolat .checkbox-group input[type="checkbox"]:hover {
border-color: var(--blue);
}
.page-kapcsolat .checkbox-group input[type="checkbox"]:checked {
background-color: var(--blue);
border-color: var(--blue);
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M3 8.5l3.2 3.2L13 5'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: center;
}
.page-kapcsolat .checkbox-group input[type="checkbox"]:focus-visible {
outline: 2px solid var(--blue-bright);
outline-offset: 2px;
}
.page-kapcsolat .checkbox-group label {
font-size: 0.85rem;
color: var(--text-2);
@@ -2537,17 +2568,35 @@ html::-webkit-scrollbar-corner, .shell ::-webkit-scrollbar-corner { background:
}
/* --- the home's pointer to /szolgaltatasok: the three group names, nothing invented --- */
/* The teaser was three bare links: the home page's biggest section said nothing
about what the box does (operator's reviewer, 2026-10-12). Each card now names
the service page's own items under its title - the card is the box, the link is
the title inside it, so the points sit in the same frame. */
.shell .caps-teaser {
list-style: none; display: grid; grid-template-columns: repeat(3, 1fr);
gap: 14px; margin-bottom: 1.5rem;
}
.shell .caps-teaser a {
display: block; padding: .85rem 1rem; border: 1px solid var(--line);
border-radius: var(--radius); color: var(--text-1); text-decoration: none;
font-weight: 600; font-size: .95rem; line-height: 1.35;
transition: border-color .2s ease, color .2s ease;
.shell .caps-teaser > li {
padding: .85rem 1rem; border: 1px solid var(--line);
border-radius: var(--radius);
transition: border-color .2s ease;
}
.shell .caps-teaser > li:hover { border-color: var(--blue); }
.shell .caps-teaser a {
display: block; color: var(--text-1); text-decoration: none;
font-weight: 600; font-size: .95rem; line-height: 1.35;
transition: color .2s ease;
}
.shell .caps-teaser a:hover { color: var(--blue-bright); }
.shell .caps-teaser ul { list-style: none; margin: .5rem 0 0; padding: 0; }
.shell .caps-teaser ul li {
position: relative; padding-left: .9rem;
color: var(--text-2); font-size: .88rem; line-height: 1.55;
}
.shell .caps-teaser ul li::before {
content: ""; position: absolute; left: 0; top: .62em;
width: 5px; height: 5px; border-radius: var(--radius); background: var(--blue);
}
.shell .caps-teaser a:hover { border-color: var(--blue); color: var(--blue-bright); }
@media (max-width: 760px) {
.shell .caps-teaser { grid-template-columns: 1fr; gap: 10px; }
}
@@ -2580,6 +2629,12 @@ html::-webkit-scrollbar-corner, .shell ::-webkit-scrollbar-corner { background:
margin-top: .4rem; text-align: center;
font-size: .85rem; color: var(--text-2);
}
/* CC BY asks for the title, the author and the licence where it is reasonable to
give them, so the one film that plays inside the clip is credited under the
caption rather than in a file nobody opens. */
.hero-credit { display: block; margin-top: .15rem; font-size: .78rem; color: var(--text-3); }
.hero-credit a { color: inherit; text-decoration: underline; }
.hero-credit a:hover { color: var(--blue-bright); }
@media (max-width: 900px) {
.hero-laptop { max-width: 520px; }
}
+3 -64
View File
@@ -40,7 +40,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -78,7 +78,7 @@
<li><a href="/biztonsagimentes" class="active"><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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -283,72 +283,11 @@
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
<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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+3 -64
View File
@@ -46,7 +46,7 @@
<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=28">
<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>
@@ -85,7 +85,7 @@
<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-outline sidebar-cta">Apply as a tester →</a>
<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>
@@ -1291,72 +1291,11 @@
<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>
<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 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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+3 -64
View File
@@ -40,7 +40,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -78,7 +78,7 @@
<li><a href="/en/backups" class="active"><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-outline sidebar-cta">Apply as a tester →</a>
<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>
@@ -283,72 +283,11 @@
<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>
<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 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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+12 -75
View File
@@ -29,7 +29,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -67,7 +67,7 @@
<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-outline sidebar-cta">Apply as a tester →</a>
<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>
@@ -81,9 +81,9 @@
</nav>
<main class="content">
<div class="page-header">
<h1>Write to <span>us!</span></h1>
<h1>Write to <span>me!</span></h1>
</div>
<p class="page-lede">A question, or want to talk about what you need? Fill in the form and we will answer soon. We answer in English or Hungarian.</p>
<p class="page-lede">A question, or want to talk about what you need? Fill in the form and I will answer soon. I answer in English or Hungarian.</p>
<section class="content-section" style="padding-top: 0;">
<div class="container">
<div class="contact-layout">
@@ -143,7 +143,7 @@
</div>
<div class="checkbox-group">
<input type="checkbox" id="privacy" name="privacy" required>
<label class="cb-hit" for="privacy"><input type="checkbox" id="privacy" name="privacy" required></label>
<label for="privacy">
I have read the <a href="/adatkezeles" target="_blank" rel="noopener">privacy notice (in Hungarian)</a> and agree that my name, e-mail address, message and attached files are used to answer my enquiry. The message is carried by mail-sending and mailbox providers. I can withdraw this consent at any time at info@felhom.eu.
</label>
@@ -160,7 +160,7 @@
<!-- Sidebar -->
<div class="contact-sidebar">
<div class="sidebar-card">
<h3><span class="icon"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-mail"/></svg></span> E-mail us directly</h3>
<h3><span class="icon"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-mail"/></svg></span> E-mail me directly</h3>
<p>If you would rather send an e-mail:</p>
<a href="mailto:info@felhom.eu" class="direct-email">
<svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-mail"/></svg> info@felhom.eu
@@ -169,18 +169,16 @@
<div class="sidebar-card">
<h3><span class="icon"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-clock"/></svg></span> Reply time</h3>
<p>We usually answer <strong style="color: var(--blue-bright);">within 24 hours</strong> on working days.</p>
<p>If a support question is urgent, say so in the subject.</p>
<p>I usually answer <strong style="color: var(--blue-bright);">within 1–2 days</strong>.</p>
<p>I do not promise a reply time during the closed test – the test terms say the same.</p>
</div>
<div class="sidebar-card">
<h3><span class="icon"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-lightbulb"/></svg></span> How can we help?</h3>
<h3><span class="icon"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-lightbulb"/></svg></span> How can I help?</h3>
<ul class="sidebar-list">
<li><span class="li-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-monitor"/></svg></span> Advice on a server set-up</li>
<li><span class="li-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-package"/></svg></span> Installing and setting up apps</li>
<li><span class="li-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-lock"/></svg></span> Setting up backups</li>
<li><span class="li-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-globe"/></svg></span> Setting up remote access</li>
<li><span class="li-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-wrench"/></svg></span> Maintaining an existing server</li>
<li><span class="li-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-monitor"/></svg></span> Questions about the closed test</li>
</ul>
</div>
</div>
@@ -206,7 +204,7 @@
<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>
<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>
@@ -521,7 +519,7 @@
throw new Error(`Server error: ${response.status}`);
}
showStatus('Your message has been sent. We will answer soon.', 'success');
showStatus('Your message has been sent. I will answer soon.', 'success');
form.reset();
attachedFiles = [];
renderFileList();
@@ -571,67 +569,6 @@
})();
</script>
<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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+3 -64
View File
@@ -27,7 +27,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -65,7 +65,7 @@
<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-outline sidebar-cta">Apply as a tester →</a>
<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>
@@ -116,72 +116,11 @@
<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>
<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 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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+65 -126
View File
@@ -5,7 +5,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FAQ — frequently asked questions about the home server service | Felhom.eu</title>
<meta name="description" content="Answers to the most common questions: hardware, installation, apps, security, backups, costs. Everything worth knowing about our home server service in Hungary.">
<meta name="description" content="Answers to the most common questions: hardware, installation, apps, security, backups, costs. Everything worth knowing about the home server service in Hungary.">
<meta name="keywords" content="FAQ, frequently asked questions, home server questions, self-hosting FAQ, server costs, server security">
<meta name="robots" content="index, follow">
@@ -37,7 +37,7 @@
"name": "What is Felhom.eu, and what exactly do you do?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Felhom.eu is a service for households in Hungary that helps install and run a home server. We offer turnkey set-ups: we choose the hardware, set up the software, take care of the backups, and keep an eye on the system all the time. The aim is simple: instead of the big cloud providers (Google, Microsoft, Apple), you keep your data on a server in your own home – without having to be an expert yourself."
"text": "Felhom.eu is a service for households in Hungary that helps install and run a home server. I offer turnkey set-ups: I choose the hardware, set up the software, take care of the backups, and keep an eye on the system all the time. The aim is simple: instead of the big cloud providers (Google, Microsoft, Apple), you keep your data on a server in your own home – without having to be an expert yourself."
}
},
{
@@ -53,7 +53,7 @@
"name": "Do I need any technical knowledge?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. We do the whole installation and set-up. Your part is to use the apps – in a browser or on your phone, just like a Google or Apple service. After the installation we walk you through it in a short session, so you can use the system with confidence."
"text": "No. I do the whole installation and set-up. Your part is to use the apps – in a browser or on your phone, just like a Google or Apple service. After the installation I walk you through it in a short session, so you can use the system with confidence."
}
},
{
@@ -61,7 +61,7 @@
"name": "How is Felhom.eu different from a Synology or QNAP NAS?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Synology and QNAP make NAS (network storage) devices built mainly for storing files, with their own closed software. We offer an open, Docker-based system instead, where the catalog's apps install in a few clicks – from a photo manager to a media server to a password manager. A NAS offers a limited choice of apps and depends on the maker's software updates. With us you choose from 58 apps, and if something is missing, we look at whether it can be added."
"text": "Synology and QNAP make NAS (network storage) devices built mainly for storing files, with their own closed software. I offer an open, Docker-based system instead, where the catalog's apps install in a few clicks – from a photo manager to a media server to a password manager. A NAS offers a limited choice of apps and depends on the maker's software updates. With Felhom you choose from 58 apps, and if something is missing, I look at whether it can be added."
}
},
{
@@ -69,7 +69,7 @@
"name": "What does the process look like, from start to finish?",
"acceptedAnswer": {
"@type": "Answer",
"text": "1. A first talk – We talk about what you need: which apps you would use, how much storage you want, and what your budget is. 2. Choosing the hardware – We help you find the right machine for your needs and your budget. 3. Installation and set-up – We install the operating system, the container engine and the apps, and set up the backups and the monitoring. 4. Handover and training – We show you how to use the system and answer all your questions. 5. Ongoing care – We watch the backups, maintain the system, and help if anything goes wrong."
"text": "1. A first talk – We talk about what you need: which apps you would use, how much storage you want, and what your budget is. 2. Choosing the hardware – I help you find the right machine for your needs and your budget. 3. Installation and set-up – I install the operating system, the container engine and the apps, and set up the backups and the monitoring. 4. Handover and training – I show you how to use the system and answer all your questions. 5. Ongoing care – I watch the backups, maintain the system, and help if anything goes wrong."
}
},
{
@@ -85,7 +85,7 @@
"name": "Can I use an old machine I already have?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Often, yes! An older desktop PC can make an excellent server. In our first talk we check whether your machine suits what you plan (enough RAM, storage, reliability). Power use and noise matter – an old gaming PC will work, but each month it uses far more power than a modern mini PC."
"text": "Often, yes! An older desktop PC can make an excellent server. In our first talk I check whether your machine suits what you plan (enough RAM, storage, reliability). Power use and noise matter – an old gaming PC will work, but each month it uses far more power than a modern mini PC."
}
},
{
@@ -93,7 +93,7 @@
"name": "Where should the server go?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Anywhere with a power socket and a network cable (Ethernet). A cupboard, a shelf or the spot next to the router is best. Mini PCs are so compact and quiet that they fit on a living-room shelf. It can work over Wi-Fi, but for reliability and speed we always recommend a cable."
"text": "Anywhere with a power socket and a network cable (Ethernet). A cupboard, a shelf or the spot next to the router is best. Mini PCs are so compact and quiet that they fit on a living-room shelf. It can work over Wi-Fi, but for reliability and speed I always recommend a cable."
}
},
{
@@ -117,7 +117,7 @@
"name": "What happens if the power goes off?",
"acceptedAnswer": {
"@type": "Answer",
"text": "During the installation we set the server's BIOS (where the option exists) to switch on by itself after a power cut. The operating system and all the apps then start on their own too. This setting is a standard part of every installation we do. After a power cut the box recovers by itself – we have tried this with a real power cut. If reliability is critical, we can also suggest an uninterruptible power supply (UPS) to bridge a few minutes without power."
"text": "During the installation I set the server's BIOS (where the option exists) to switch on by itself after a power cut. The operating system and all the apps then start on their own too. This setting is a standard part of every installation I do. After a power cut the box recovers by itself – I have tried this with a real power cut. If reliability is critical, I can also suggest an uninterruptible power supply (UPS) to bridge a few minutes without power."
}
},
{
@@ -133,7 +133,7 @@
"name": "Which apps can I run?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We offer 58 apps – the full list is on the Apps page. A few examples: Immich – a Google Photos alternative that backs up photos and videos automatically. Jellyfin/Plex – your own Netflix for films and series. Nextcloud – store and share files (instead of Google Drive). Vaultwarden – a password manager for the whole family. Paperless-ngx – scan documents and make them searchable. If something is not on the list, ask – we will look at whether it can join the catalog."
"text": "I offer 58 apps – the full list is on the Apps page. A few examples: Immich – a Google Photos alternative that backs up photos and videos automatically. Jellyfin/Plex – your own Netflix for films and series. Nextcloud – store and share files (instead of Google Drive). Vaultwarden – a password manager for the whole family. Paperless-ngx – scan documents and make them searchable. If something is not on the list, ask – I will look at whether it can join the catalog."
}
},
{
@@ -141,7 +141,7 @@
"name": "Can I add new apps later?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, any time! Any app installs from the Dashboard in a few clicks. If you get stuck, tell us and we will help you set it up."
"text": "Yes, any time! Any app installs from the Dashboard in a few clicks. If you get stuck, tell me and I will help you set it up."
}
},
{
@@ -165,7 +165,7 @@
"name": "Can I bring over my existing data (Google Photos, iCloud, Dropbox)?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes! Most services let you export your data. With Google Takeout you can download all your photos, documents and calendar, and Immich, Nextcloud and others can import them. We help with the move. How long it takes depends on how much data there is – moving a few hundred GB of photos can take a day or two, but afterwards the system works just the way you are used to from the cloud service."
"text": "Yes! Most services let you export your data. With Google Takeout you can download all your photos, documents and calendar, and Immich, Nextcloud and others can import them. I help with the move. How long it takes depends on how much data there is – moving a few hundred GB of photos can take a day or two, but afterwards the system works just the way you are used to from the cloud service."
}
},
{
@@ -181,7 +181,7 @@
"name": "How safe is a home server?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The systems we install get several layers of protection: automatic HTTPS encryption, regular security updates, a sign-in for every app, and a family gate in front of some apps. Your server is inside your home – we open no port there, and from outside it is reached only through an encrypted tunnel. Most home servers do not face targeted attacks; what they meet is automated scripts trying their luck. The right configuration protects very well against those."
"text": "The systems I install get several layers of protection: automatic HTTPS encryption, regular security updates, a sign-in for every app, and a family gate in front of some apps. Your server is inside your home – I open no port there, and from outside it is reached only through an encrypted tunnel. Most home servers do not face targeted attacks; what they meet is automated scripts trying their luck. The right configuration protects very well against those."
}
},
{
@@ -189,7 +189,7 @@
"name": "Can you get at my data?",
"acceptedAnswer": {
"@type": "Answer",
"text": "That is an important, fair question, and we answer it honestly. For support and maintenance we normally have remote access to your server – as any IT provider has to the systems it manages. We need it to check backups, install updates and fix faults. The key to your remote backup, though, only you know: the recovery code appears once, on your screen, and we keep no copy of it. So we cannot read the remote backup either. Important: unlike the big cloud providers, we do no algorithmic analysis of your data and no profiling for advertising, and your data leaves your home only encrypted (the remote backup)."
"text": "That is an important, fair question, and I answer it honestly. For support and maintenance I normally have remote access to your server – as any IT provider has to the systems it manages. I need it to check backups, install updates and fix faults. The key to your remote backup, though, only you know: the recovery code appears once, on your screen, and I keep no copy of it. So I cannot read the remote backup either. Important: unlike the big cloud providers, Felhom does no algorithmic analysis of your data and no profiling for advertising, and your data leaves your home only encrypted (the remote backup)."
}
},
{
@@ -205,7 +205,7 @@
"name": "Is this all right under the GDPR?",
"acceptedAnswer": {
"@type": "Answer",
"text": "For personal use at home the GDPR does not apply directly (under the \"household exemption\"). Your data lives at home, on your own box. The box encrypts the backup copies before they leave your home; they are stored at Hetzner in the EU (in Germany), and the storage provider cannot read them. Remote access goes through Cloudflare's network, so Cloudflare could technically see that traffic. If you use it as a small business, our privacy notice says who handles what, and where. We are not lawyers, of course: for a specific legal question, ask a professional."
"text": "For personal use at home the GDPR does not apply directly (under the \"household exemption\"). Your data lives at home, on your own box. The box encrypts the backup copies before they leave your home; they are stored at Hetzner in the EU (in Germany), and the storage provider cannot read them. Remote access goes through Cloudflare's network, so Cloudflare could technically see that traffic. If you use it as a small business, the privacy notice says who handles what, and where. I am not a lawyer, of course: for a specific legal question, ask a professional."
}
},
{
@@ -213,7 +213,7 @@
"name": "How are backups done?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We follow the 3-2-1 backup rule: 3 copies of the data, on 2 different kinds of storage, 1 of them far away. It is an industry standard the largest companies use too. On the box this means three levels: a backup on the box, a second copy on a second drive, and an encrypted copy on remote storage. The backups run automatically, at night. Databases and files are backed up incrementally – only the changes are saved, which saves space and time. The details are on the Backups page."
"text": "I follow the 3-2-1 backup rule: 3 copies of the data, on 2 different kinds of storage, 1 of them far away. It is an industry standard the largest companies use too. On the box this means three levels: a backup on the box, a second copy on a second drive, and an encrypted copy on remote storage. The backups run automatically, at night. Databases and files are backed up incrementally – only the changes are saved, which saves space and time. The details are on the Backups page."
}
},
{
@@ -229,7 +229,7 @@
"name": "How do I know the backups really work?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We run a central monitoring system that checks every day whether the backups ran successfully. If there is any problem – a failed backup, low storage, or the server not answering – we are notified at once, and so are you when it matters. This is not a \"set it up and hope it works\" arrangement – we watch it actively, and we also run restore tests from time to time."
"text": "I run a central monitoring system that checks every day whether the backups ran successfully. If there is any problem – a failed backup, low storage, or the server not answering – I am notified at once, and so are you when it matters. This is not a \"set it up and hope it works\" arrangement – I watch it actively, and I also run restore tests from time to time."
}
},
{
@@ -237,7 +237,7 @@
"name": "What is an \"off-site backup\"?",
"acceptedAnswer": {
"@type": "Answer",
"text": "An off-site (remote) backup means a copy of your data also exists in a physically different place. On a Felhom box that is storage we provide, where the copy goes encrypted. If disaster struck at home (fire, theft, flood), the remote copy would still be there. The off-site backup is always encrypted – nobody at the remote place can read your data, even if they can reach the files."
"text": "An off-site (remote) backup means a copy of your data also exists in a physically different place. On a Felhom box that is storage I provide, where the copy goes encrypted. If disaster struck at home (fire, theft, flood), the remote copy would still be there. The off-site backup is always encrypted – nobody at the remote place can read your data, even if they can reach the files."
}
},
{
@@ -245,7 +245,7 @@
"name": "What happens after the installation? Am I left on my own?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No! Felhom.eu is not an \"install and leave\" service. We keep running it for you: monitoring, software updates, backup checks, and support whenever you have a question or a problem."
"text": "No! Felhom.eu is not an \"install and leave\" service. I keep running it for you: monitoring, software updates, backup checks, and support whenever you have a question or a problem."
}
},
{
@@ -253,7 +253,7 @@
"name": "How are software updates done?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The apps run in containers, which makes updating easier. We follow new versions, and a new version reaches you only after we have tried it. The box's system gets its security updates by itself. Before every app update a fresh backup is made, and if the new version does not start properly, the box puts the previous one back by itself, with your data."
"text": "The apps run in containers, which makes updating easier. I follow new versions, and a new version reaches you only after I have tried it. The box's system gets its security updates by itself. Before every app update a fresh backup is made, and if the new version does not start properly, the box puts the previous one back by itself, with your data."
}
},
{
@@ -261,7 +261,7 @@
"name": "How do I ask for help if something does not work?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Just e-mail support@felhom.eu. We can solve most problems remotely, without you having to do anything. For bigger hardware issues we also help in person."
"text": "Just e-mail support@felhom.eu. I can solve most problems remotely, without you having to do anything. For bigger hardware issues I also help in person."
}
},
{
@@ -285,7 +285,7 @@
"name": "What if I move house?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Your server is a compact box – unplug it, take it to your new home, plug it in, and everything carries on. If your internet provider changes, the remote access set-up may need updating – we help with that."
"text": "Your server is a compact box – unplug it, take it to your new home, plug it in, and everything carries on. If your internet provider changes, the remote access set-up may need updating – I help with that."
}
},
{
@@ -293,7 +293,7 @@
"name": "How much does it all cost?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The cost has two parts: One-off costs: the hardware (80,000–400,000+ Ft, depending on the set-up) and the installation fee. You buy the hardware – it is yours, for good. A monthly management fee: for monitoring, support, updates and backup supervision. It depends on the package you choose. We give an exact quote after our first talk – needs vary a lot. Write to us and we will make you a personal offer!"
"text": "The cost has two parts: One-off costs: the hardware (80,000–400,000+ Ft, depending on the set-up) and the installation fee. You buy the hardware – it is yours, for good. A monthly management fee: for monitoring, support, updates and backup supervision. It depends on the package you choose. I give an exact quote after our first talk – needs vary a lot. Write to me and I will make you a personal offer!"
}
},
{
@@ -309,7 +309,7 @@
"name": "Are there hidden costs?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. The costs are: hardware (one-off), installation (one-off), monthly management (optional), and electricity (a few thousand forints a month). The apps are free to use, and almost all of them are open source – there is no licence fee for the apps. (A few have paid extras, such as Plex Pass; those are optional.) The remote backup's storage has a monthly cost that depends on how much data is backed up – we state it in the offer up front."
"text": "No. The costs are: hardware (one-off), installation (one-off), monthly management (optional), and electricity (a few thousand forints a month). The apps are free to use, and almost all of them are open source – there is no licence fee for the apps. (A few have paid extras, such as Plex Pass; those are optional.) The remote backup's storage has a monthly cost that depends on how much data is backed up – I state it in the offer up front."
}
},
{
@@ -341,7 +341,7 @@
"name": "Can I use my own domain name?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes! If you have your own domain name (for example myserver.hu), we can make your apps reachable through it (for example photos.myserver.hu, films.myserver.hu). If you do not have one, we help you get one – it costs a few thousand forints a year."
"text": "Yes! If you have your own domain name (for example myserver.hu), I can make your apps reachable through it (for example photos.myserver.hu, films.myserver.hu). If you do not have one, I help you get one – it costs a few thousand forints a year."
}
},
{
@@ -357,7 +357,7 @@
"name": "Can I use a VPN to reach the server?",
"acceptedAnswer": {
"@type": "Answer",
"text": "You do not need one: by default the box is reached from anywhere through an encrypted tunnel, over HTTPS, with no extra app. We do not set up household VPN access on the box today (where your phone or laptop connects as if it were at home). If you need that, ask us."
"text": "You do not need one: by default the box is reached from anywhere through an encrypted tunnel, over HTTPS, with no extra app. I do not set up household VPN access on the box today (where your phone or laptop connects as if it were at home). If you need that, ask me."
}
}
]
@@ -366,7 +366,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -404,7 +404,7 @@
<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-outline sidebar-cta">Apply as a tester →</a>
<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>
@@ -420,7 +420,7 @@
<div class="page-header">
<h1>Frequently asked <span>questions</span></h1>
</div>
<p class="page-lede">Everything worth knowing about our home server service – in one place, in plain words.</p>
<p class="page-lede">Everything worth knowing about the home server service – in one place, in plain words.</p>
<section class="content-section" style="padding-top: 0;">
@@ -454,7 +454,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Felhom.eu is a service for households in Hungary that helps install and run a home server. We offer turnkey set-ups: we choose the hardware, set up the software, take care of the backups, and keep an eye on the system all the time.</p>
<p>Felhom.eu is a service for households in Hungary that helps install and run a home server. I offer turnkey set-ups: I choose the hardware, set up the software, take care of the backups, and keep an eye on the system all the time.</p>
<p>The aim is simple: instead of the big cloud providers (Google, Microsoft, Apple), you keep your data on a server in your own home – without having to be an expert yourself.</p>
</div></div>
</div>
@@ -479,8 +479,8 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p><strong>No.</strong> We do the whole installation and set-up. Your part is to use the apps – in a browser or on your phone, just like a Google or Apple service.</p>
<p>After the installation we walk you through it in a short session, so you can use the system with confidence.</p>
<p><strong>No.</strong> I do the whole installation and set-up. Your part is to use the apps – in a browser or on your phone, just like a Google or Apple service.</p>
<p>After the installation I walk you through it in a short session, so you can use the system with confidence.</p>
</div></div>
</div>
@@ -490,8 +490,8 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Synology and QNAP make NAS (network storage) devices built mainly for storing files, with their own closed software. We offer an open, Docker-based system instead, where the catalog's apps install in a few clicks – from a photo manager to a media server to a password manager.</p>
<p>A NAS offers a limited choice of apps and depends on the maker's software updates. With us you choose from 58 apps, and if something is missing, we look at whether it can be added.</p>
<p>Synology and QNAP make NAS (network storage) devices built mainly for storing files, with their own closed software. I offer an open, Docker-based system instead, where the catalog's apps install in a few clicks – from a photo manager to a media server to a password manager.</p>
<p>A NAS offers a limited choice of apps and depends on the maker's software updates. With Felhom you choose from 58 apps, and if something is missing, I look at whether it can be added.</p>
</div></div>
</div>
@@ -502,10 +502,10 @@
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p><strong>1. A first talk</strong> – We talk about what you need: which apps you would use, how much storage you want, and what your budget is.</p>
<p><strong>2. Choosing the hardware</strong> – We help you find the right machine for your needs and your budget.</p>
<p><strong>3. Installation and set-up</strong> – We install the operating system, the container engine and the apps, and set up the backups and the monitoring.</p>
<p><strong>4. Handover and training</strong> – We show you how to use the system and answer all your questions.</p>
<p><strong>5. Ongoing care</strong> – We watch the backups, maintain the system, and help if anything goes wrong.</p>
<p><strong>2. Choosing the hardware</strong> – I help you find the right machine for your needs and your budget.</p>
<p><strong>3. Installation and set-up</strong> – I install the operating system, the container engine and the apps, and set up the backups and the monitoring.</p>
<p><strong>4. Handover and training</strong> – I show you how to use the system and answer all your questions.</p>
<p><strong>5. Ongoing care</strong> – I watch the backups, maintain the system, and help if anything goes wrong.</p>
</div></div>
</div>
</div>
@@ -534,7 +534,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Often, yes! An older desktop PC can make an excellent server. In our first talk we check whether your machine suits what you plan (enough RAM, storage, reliability).</p>
<p>Often, yes! An older desktop PC can make an excellent server. In our first talk I check whether your machine suits what you plan (enough RAM, storage, reliability).</p>
<p><strong>Power use</strong> and <strong>noise</strong> matter – an old gaming PC will work, but each month it uses far more power than a modern mini PC.</p>
</div></div>
</div>
@@ -546,7 +546,7 @@
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Anywhere with a <strong>power socket</strong> and a <strong>network cable</strong> (Ethernet). A cupboard, a shelf or the spot next to the router is best. Mini PCs are so compact and quiet that they fit on a living-room shelf.</p>
<p>It can work over Wi-Fi, but for reliability and speed we always recommend a cable.</p>
<p>It can work over Wi-Fi, but for reliability and speed I always recommend a cable.</p>
</div></div>
</div>
@@ -577,8 +577,8 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>During the installation we set the server's BIOS (where the option exists) to switch on by itself after a power cut. The operating system and all the apps then start on their own too. This setting is a standard part of every installation we do.</p>
<p>After a power cut the box recovers by itself – we have tried this with a real power cut. If reliability is critical, we can also suggest an uninterruptible power supply (UPS) to bridge a few minutes without power.</p>
<p>During the installation I set the server's BIOS (where the option exists) to switch on by itself after a power cut. The operating system and all the apps then start on their own too. This setting is a standard part of every installation I do.</p>
<p>After a power cut the box recovers by itself – I have tried this with a real power cut. If reliability is critical, I can also suggest an uninterruptible power supply (UPS) to bridge a few minutes without power.</p>
</div></div>
</div>
@@ -607,9 +607,9 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>We offer <strong>58 apps</strong> – the full list is on the <a href="/en/apps">Apps</a> page. A few examples:</p>
<p>I offer <strong>58 apps</strong> – the full list is on the <a href="/en/apps">Apps</a> page. A few examples:</p>
<p><strong>Immich</strong> – a Google Photos alternative that backs up photos and videos automatically. <strong>Jellyfin/Plex</strong> – your own Netflix for films and series. <strong>Nextcloud</strong> – store and share files (instead of Google Drive). <strong>Vaultwarden</strong> – a password manager for the whole family. <strong>Paperless-ngx</strong> – scan documents and make them searchable.</p>
<p>If something is not on the list, ask – we will look at whether it can join the catalog.</p>
<p>If something is not on the list, ask – I will look at whether it can join the catalog.</p>
</div></div>
</div>
@@ -619,7 +619,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p><strong>Yes, any time!</strong> Any app installs from the Dashboard in a few clicks. If you get stuck, tell us and we will help you set it up.</p>
<p><strong>Yes, any time!</strong> Any app installs from the Dashboard in a few clicks. If you get stuck, tell me and I will help you set it up.</p>
</div></div>
</div>
@@ -649,7 +649,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Yes! Most services let you export your data. With Google Takeout you can download all your photos, documents and calendar, and Immich, Nextcloud and others can import them. We help with the move.</p>
<p>Yes! Most services let you export your data. With Google Takeout you can download all your photos, documents and calendar, and Immich, Nextcloud and others can import them. I help with the move.</p>
<p>How long it takes depends on how much data there is – moving a few hundred GB of photos can take a day or two, but afterwards the system works just the way you are used to from the cloud service.</p>
</div></div>
</div>
@@ -678,7 +678,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>The systems we install get several layers of protection: automatic HTTPS encryption, regular security updates, a sign-in for every app, and a family gate in front of some apps. Your server is inside your home – we open no port there, and from outside it is reached only through an encrypted tunnel.</p>
<p>The systems I install get several layers of protection: automatic HTTPS encryption, regular security updates, a sign-in for every app, and a family gate in front of some apps. Your server is inside your home – I open no port there, and from outside it is reached only through an encrypted tunnel.</p>
<p>Most home servers do not face targeted attacks; what they meet is automated scripts trying their luck. The right configuration protects very well against those.</p>
</div></div>
</div>
@@ -689,10 +689,10 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>That is an important, fair question, and we answer it honestly.</p>
<p>For support and maintenance we normally have remote access to your server – as any IT provider has to the systems it manages. We need it to check backups, install updates and fix faults.</p>
<p>The key to your remote backup, though, <strong>only you know</strong>: the recovery code appears once, on your screen, and we keep no copy of it. So we cannot read the remote backup either.</p>
<p>Important: unlike the big cloud providers, we do <strong>no algorithmic analysis of your data</strong> and no profiling for advertising, and your data leaves your home only encrypted (the remote backup).</p>
<p>That is an important, fair question, and I answer it honestly.</p>
<p>For support and maintenance I normally have remote access to your server – as any IT provider has to the systems it manages. I need it to check backups, install updates and fix faults.</p>
<p>The key to your remote backup, though, <strong>only you know</strong>: the recovery code appears once, on your screen, and I keep no copy of it. So I cannot read the remote backup either.</p>
<p>Important: unlike the big cloud providers, Felhom does <strong>no algorithmic analysis of your data</strong> and no profiling for advertising, and your data leaves your home only encrypted (the remote backup).</p>
</div></div>
</div>
@@ -713,7 +713,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>For personal use at home the GDPR does not apply directly (under the "household exemption"). Your data lives at home, on your own box. The box encrypts the backup copies before they leave your home; they are stored at Hetzner in the EU (in Germany), and the storage provider cannot read them. Remote access goes through Cloudflare's network, so Cloudflare could technically see that traffic. If you use it as a small business, our privacy notice says who handles what, and where. We are not lawyers, of course: for a specific legal question, ask a professional.</p>
<p>For personal use at home the GDPR does not apply directly (under the "household exemption"). Your data lives at home, on your own box. The box encrypts the backup copies before they leave your home; they are stored at Hetzner in the EU (in Germany), and the storage provider cannot read them. Remote access goes through Cloudflare's network, so Cloudflare could technically see that traffic. If you use it as a small business, the privacy notice says who handles what, and where. I am not a lawyer, of course: for a specific legal question, ask a professional.</p>
</div></div>
</div>
</div>
@@ -731,7 +731,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>We follow the <strong>3-2-1 backup rule</strong>: 3 copies of the data, on 2 different kinds of storage, 1 of them far away. It is an industry standard the largest companies use too. On the box this means three levels: a backup on the box, a second copy on a second drive, and an encrypted copy on remote storage.</p>
<p>I follow the <strong>3-2-1 backup rule</strong>: 3 copies of the data, on 2 different kinds of storage, 1 of them far away. It is an industry standard the largest companies use too. On the box this means three levels: a backup on the box, a second copy on a second drive, and an encrypted copy on remote storage.</p>
<p>The backups run <strong>automatically</strong>, at night. Databases and files are backed up incrementally – only the changes are saved, which saves space and time. The details are on the <a href="/en/backups">Backups</a> page.</p>
</div></div>
</div>
@@ -752,8 +752,8 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>We run a central monitoring system that checks <strong>every day</strong> whether the backups ran successfully. If there is any problem – a failed backup, low storage, or the server not answering – we are notified at once, and so are you when it matters.</p>
<p>This is not a "set it up and hope it works" arrangement – we watch it actively, and we also run restore tests from time to time.</p>
<p>I run a central monitoring system that checks <strong>every day</strong> whether the backups ran successfully. If there is any problem – a failed backup, low storage, or the server not answering – I am notified at once, and so are you when it matters.</p>
<p>This is not a "set it up and hope it works" arrangement – I watch it actively, and I also run restore tests from time to time.</p>
</div></div>
</div>
@@ -763,7 +763,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>An off-site (remote) backup means a copy of your data also exists in a physically different place. On a Felhom box that is storage we provide, where the copy goes encrypted. If disaster struck at home (fire, theft, flood), the remote copy would still be there.</p>
<p>An off-site (remote) backup means a copy of your data also exists in a physically different place. On a Felhom box that is storage I provide, where the copy goes encrypted. If disaster struck at home (fire, theft, flood), the remote copy would still be there.</p>
<p>The off-site backup is always <strong>encrypted</strong> – nobody at the remote place can read your data, even if they can reach the files.</p>
</div></div>
</div>
@@ -782,7 +782,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p><strong>No!</strong> Felhom.eu is not an "install and leave" service. We keep running it for you: monitoring, software updates, backup checks, and support whenever you have a question or a problem.</p>
<p><strong>No!</strong> Felhom.eu is not an "install and leave" service. I keep running it for you: monitoring, software updates, backup checks, and support whenever you have a question or a problem.</p>
</div></div>
</div>
@@ -792,7 +792,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>The apps run in containers, which makes updating easier. We follow new versions, and a new version reaches you only after we have tried it. The box's system gets its security updates by itself.</p>
<p>The apps run in containers, which makes updating easier. I follow new versions, and a new version reaches you only after I have tried it. The box's system gets its security updates by itself.</p>
<p>Before every app update a fresh backup is made, and if the new version does not start properly, the box puts the previous one back by itself, with your data.</p>
</div></div>
</div>
@@ -803,7 +803,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Just e-mail <strong>support@felhom.eu</strong>. We can solve most problems remotely, without you having to do anything. For bigger hardware issues we also help in person.</p>
<p>Just e-mail <strong>support@felhom.eu</strong>. I can solve most problems remotely, without you having to do anything. For bigger hardware issues I also help in person.</p>
</div></div>
</div>
@@ -835,7 +835,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Your server is a compact box – unplug it, take it to your new home, plug it in, and everything carries on. If your internet provider changes, the remote access set-up may need updating – we help with that.</p>
<p>Your server is a compact box – unplug it, take it to your new home, plug it in, and everything carries on. If your internet provider changes, the remote access set-up may need updating – I help with that.</p>
</div></div>
</div>
</div>
@@ -856,7 +856,7 @@
<p>The cost has two parts:</p>
<p><strong>One-off costs:</strong> the hardware (80,000–400,000+ Ft, depending on the set-up) and the installation fee. You buy the hardware – it is yours, for good.</p>
<p><strong>A monthly management fee:</strong> for monitoring, support, updates and backup supervision. It depends on the package you choose.</p>
<p>We give an exact quote after our first talk – needs vary a lot. Write to us and we will make you a personal offer!</p>
<p>I give an exact quote after our first talk – needs vary a lot. Write to me and I will make you a personal offer!</p>
</div></div>
</div>
@@ -878,7 +878,7 @@
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>No. The costs are: hardware (one-off), installation (one-off), monthly management (optional), and electricity (a few thousand forints a month). The apps are free to use, and almost all of them are <strong>open source</strong> – there is no licence fee for the apps. (A few have paid extras, such as Plex Pass; those are optional.)</p>
<p>The remote backup's storage has a monthly cost that depends on how much data is backed up – we state it in the offer up front.</p>
<p>The remote backup's storage has a monthly cost that depends on how much data is backed up – I state it in the offer up front.</p>
</div></div>
</div>
</div>
@@ -930,7 +930,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Yes! If you have your own domain name (for example <em>myserver.hu</em>), we can make your apps reachable through it (for example <em>photos.myserver.hu</em>, <em>films.myserver.hu</em>). If you do not have one, we help you get one – it costs a few thousand forints a year.</p>
<p>Yes! If you have your own domain name (for example <em>myserver.hu</em>), I can make your apps reachable through it (for example <em>photos.myserver.hu</em>, <em>films.myserver.hu</em>). If you do not have one, I help you get one – it costs a few thousand forints a year.</p>
</div></div>
</div>
@@ -951,7 +951,7 @@
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>You do not need one: by default the box is reached from anywhere through an encrypted tunnel, over HTTPS, with no extra app.</p>
<p>We do not set up household VPN access on the box today (where your phone or laptop connects as if it were at home). If you need that, ask us.</p>
<p>I do not set up household VPN access on the box today (where your phone or laptop connects as if it were at home). If you need that, ask me.</p>
</div></div>
</div>
</div>
@@ -962,14 +962,14 @@
<section class="cta-section alt-bg">
<div class="container">
<h2>Didn't find <span>your answer?</span></h2>
<p>Just write to us – we are happy to answer any question.</p>
<p>Just write to me – I am happy to answer any question.</p>
<a href="/en/contact" class="cta-button">Get in touch →</a>
</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></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>
@@ -1004,67 +1004,6 @@
}
</script>
<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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+31 -11
View File
@@ -57,7 +57,7 @@
<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=28">
<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>
@@ -96,7 +96,7 @@
<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-outline sidebar-cta">Apply as a tester →</a>
<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>
@@ -113,18 +113,18 @@
<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. We watch it, you use it.</p>
<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=1" muted loop playsinline preload="none" disablepictureinpicture aria-label="Apps running: Jellyfin, Tandoor, OnlyOffice, Immich, RomM, Paperless">
<source src="/assets/hero-clip.webm?v=1" type="video/webm">
<source src="/assets/hero-clip.mp4?v=1" type="video/mp4">
<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: Jellyfin, Tandoor, OnlyOffice, Immich, RomM, Paperless.</figcaption>
<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>
@@ -134,9 +134,29 @@
<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></li>
<li><a href="/en/services#protection">What protects you in the background</a></li>
<li><a href="/en/services#we-look-after">What we take care of</a></li>
<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>
@@ -270,7 +290,7 @@
<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>
<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>
+7 -68
View File
@@ -40,7 +40,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -78,7 +78,7 @@
<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-outline sidebar-cta">Apply as a tester →</a>
<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>
@@ -128,7 +128,7 @@
</li>
<li class="caps-item">
<h4><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-lock"/></svg> A recovery code only you know</h4>
<p>The key to your remote backup's encryption is a recovery code that appears exactly once — on your screen. We do not know it and cannot recreate it. That also means that without the code, we cannot read the remote backup either: keep it somewhere safe.</p>
<p>The key to your remote backup's encryption is a recovery code that appears exactly once — on your screen. I do not know it and cannot recreate it. That also means that without the code, I cannot read the remote backup either: keep it somewhere safe.</p>
</li>
<li class="caps-item">
<h4><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-rotate-cw"/></svg> Restore when something goes wrong</h4>
@@ -141,15 +141,15 @@
</ul>
</div>
<div class="caps-group" id="we-look-after">
<h3>What we <span>take care of</span></h3>
<h3>What I <span>take care of</span></h3>
<ul class="caps-list">
<li class="caps-item">
<h4><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-stethoscope"/></svg> Remote monitoring, automatic updates</h4>
<p>We watch how the box is doing. The Dashboard updates itself to the latest release, and the box's system gets its security updates too — you do not have to do anything. If something breaks, we see it.</p>
<p>I watch how the box is doing. The Dashboard updates itself to the latest release, and the box's system gets its security updates too — you do not have to do anything. If something breaks, I see it.</p>
</li>
<li class="caps-item">
<h4><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-rotate-cw"/></svg> Careful app updates</h4>
<p>A new version of an app reaches you only after we have tried it. Before the update the box makes a fresh backup, and if the new version does not start properly, the box puts the previous one back by itself, with your data.</p>
<p>A new version of an app reaches you only after I have tried it. Before the update the box makes a fresh backup, and if the new version does not start properly, the box puts the previous one back by itself, with your data.</p>
</li>
</ul>
</div>
@@ -159,72 +159,11 @@
<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>
<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 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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+3 -64
View File
@@ -41,7 +41,7 @@
<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=28">
<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>
@@ -80,7 +80,7 @@
<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-outline sidebar-cta">Apply as a tester →</a>
<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>
@@ -462,72 +462,11 @@
<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>
<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 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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+31 -92
View File
@@ -5,7 +5,7 @@
<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="description" content="I am looking for households in Hungary to try the home server. No fee during the test, I do the setup, and I 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">
@@ -16,14 +16,14 @@
<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:description" content="Your photos and documents on your own machine, at home. I 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:description" content="No fee during the test. I 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">
@@ -40,7 +40,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -78,7 +78,7 @@
<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-outline sidebar-cta">Apply as a tester →</a>
<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>
@@ -94,7 +94,7 @@
<div class="page-header">
<h1>Become a <span>tester</span></h1>
</div>
<p class="page-lede">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>
<p class="page-lede">I am starting to run the system for real in a few households. There is no fee during the test, I do the setup, and I pay for the domain. In return I ask you to tell me what does not work.</p>
<!-- Hungary only -->
@@ -102,7 +102,7 @@
<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>
<p>I 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>
@@ -112,12 +112,12 @@
<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>
<p>I am not looking for IT people – I am 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>
<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 – I am looking for you.</p>
<p><strong>No IT knowledge is needed.</strong> I set the server up at your home and I 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>
@@ -130,14 +130,14 @@
<div class="container">
<div class="section-header">
<h2>What you <span>need</span></h2>
<p>Three things – and we pay for the third</p>
<p>Three things – and I 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>An older machine can work too: a former desktop PC can make a good server. During the first conversation I 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>
@@ -148,13 +148,13 @@
</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>
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-globe"/></svg> 3. A domain – which I 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>
<p><strong>The domain is registered in your name, and I 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. I do not ask for it back and I do not take it with me.</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>
<p>I 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>
@@ -169,15 +169,15 @@
<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>I <strong>set up a home server</strong> at your home and bring it into working order.</li>
<li>I <strong>install apps</strong> on it from the 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>I <strong>watch the server.</strong> If something is wrong, I 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>
<li>I <strong>update</strong> the apps and the system, usually at night, in a window you choose.</li>
<li>And as above: <strong>I 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>
<p>What I do <strong>not</strong> promise – I 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>
@@ -186,16 +186,16 @@
<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>
<h2>What I <span>ask for</span></h2>
<p>Not money – neither from you nor to me</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><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-message-square"/></svg> Tell me what is wrong</h3>
<p>This is the only thing I 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 me – that is how I 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>
<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 I test them, but during a test anything can break.</p>
</div>
</div>
</section>
@@ -209,8 +209,8 @@
<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>
<p>The closed test runs with <strong>up to 5 households</strong>. The number is small because one person operates the system, and I 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, I will say so – and I will tell you when a place opens again.</p>
</div>
</div>
</section>
@@ -219,7 +219,7 @@
<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>
<p>Send me 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>
@@ -232,7 +232,7 @@
</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="/feltetelek">The closed test terms (Hungarian)</a> – what you get, what I 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>
@@ -242,72 +242,11 @@
<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>
<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 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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+3 -64
View File
@@ -22,7 +22,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -60,7 +60,7 @@
<li><a href="/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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -218,71 +218,10 @@
</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>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
+65 -126
View File
@@ -5,7 +5,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GYIK — Gyakran ismételt kérdések otthoni szerver szolgáltatásról | Felhom.eu</title>
<meta name="description" content="Válaszok a leggyakoribb kérdésekre: hardver, telepítés, alkalmazások, biztonság, mentések, költségek. Minden, amit az otthoni szerver szolgáltatásunkról tudni érdemes.">
<meta name="description" content="Válaszok a leggyakoribb kérdésekre: hardver, telepítés, alkalmazások, biztonság, mentések, költségek. Minden, amit az otthoni szerver szolgáltatásról tudni érdemes.">
<meta name="keywords" content="GYIK, gyakran ismételt kérdések, otthoni szerver kérdések, self-hosting FAQ, szerver költségek, szerver biztonság">
<meta name="robots" content="index, follow">
@@ -37,7 +37,7 @@
"name": "Mi az a Felhom.eu, és mit csináltok pontosan?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A Felhom.eu egy olyan szolgáltatást nyújt, amely segít az otthoni szerver(ek) telepítésében és üzemeltetésében. Kulcsrakész megoldásokat kínálunk: megválasztjuk a hardvert, beállítjuk a szoftvereket, biztosítjuk a mentéseket, és folyamatosan figyelemmel kísérjük a rendszert. A cél egyszerű: a nagy felhőszolgáltatók (Google, Microsoft, Apple) helyett a saját otthonodban futó szerveren tárolhatod az adataidat – anélkül, hogy neked kellene szakértőnek lenned."
"text": "A Felhom.eu egy olyan szolgáltatást nyújt, amely segít az otthoni szerver(ek) telepítésében és üzemeltetésében. Kulcsrakész megoldásokat kínálok: megválasztom a hardvert, beállítom a szoftvereket, biztosítom a mentéseket, és folyamatosan figyelemmel kísérem a rendszert. A cél egyszerű: a nagy felhőszolgáltatók (Google, Microsoft, Apple) helyett a saját otthonodban futó szerveren tárolhatod az adataidat – anélkül, hogy neked kellene szakértőnek lenned."
}
},
{
@@ -53,7 +53,7 @@
"name": "Kell hozzá bármilyen technikai tudás?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Nem. A teljes telepítést és beállítást mi végezzük. A te dolgod annyi, hogy használod az alkalmazásokat – böngészőn vagy mobilon keresztül, pont úgy, mint egy Google vagy Apple szolgáltatást. A telepítés után egy rövid bemutatón végigvezetünk, hogy magabiztosan használd a rendszert."
"text": "Nem. A teljes telepítést és beállítást mi végezzük. A te dolgod annyi, hogy használod az alkalmazásokat – böngészőn vagy mobilon keresztül, pont úgy, mint egy Google vagy Apple szolgáltatást. A telepítés után egy rövid bemutatón végigvezetlek, hogy magabiztosan használd a rendszert."
}
},
{
@@ -61,7 +61,7 @@
"name": "Mi a különbség a Felhom.eu és a Synology/QNAP NAS szolgáltatásai között?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A Synology és QNAP elsősorban fájltárolásra készült NAS (hálózati adattároló) eszközök, saját zárt szoftverrel. Mi ezzel szemben egy nyílt, Docker-alapú rendszert kínálunk, amelyre a katalógus alkalmazásai pár kattintással telepíthetők – fotókezelőtől a média szerveren át a jelszókezelőig. A NAS-ok korlátozott alkalmazás-választékot kínálnak és a gyártó szoftverfrissítéseitől függenek. Nálunk 58 alkalmazásból válogathatsz, és ha valami hiányzik, megnézzük, felvehető-e."
"text": "A Synology és QNAP elsősorban fájltárolásra készült NAS (hálózati adattároló) eszközök, saját zárt szoftverrel. Én ezzel szemben egy nyílt, Docker-alapú rendszert kínálok, amelyre a katalógus alkalmazásai pár kattintással telepíthetők – fotókezelőtől a média szerveren át a jelszókezelőig. A NAS-ok korlátozott alkalmazás-választékot kínálnak és a gyártó szoftverfrissítéseitől függenek. A Felhomnál 58 alkalmazásból válogathatsz, és ha valami hiányzik, megnézem, felvehető-e."
}
},
{
@@ -69,7 +69,7 @@
"name": "Hogyan néz ki a folyamat az elejétől a végéig?",
"acceptedAnswer": {
"@type": "Answer",
"text": "1. Egyeztetés – Megbeszéljük, mire van szükséged: milyen alkalmazásokat használnál, mennyi tárhelyet szeretnél, és mi a költségkereted. 2. Hardver kiválasztás – Segítünk megtalálni az optimális gépet, ami illeszkedik az igényeidhez és a büdzsédhez. 3. Telepítés és beállítás – Feltelepítjük az operációs rendszert, a konténerkezelőt, az alkalmazásokat, beállítjuk a mentéseket és a monitoringot. 4. Átadás és betanítás – Bemutatjuk, hogyan használd a rendszert, és válaszolunk minden kérdésedre. 5. Folyamatos üzemeltetés – Figyeljük a mentéseket, karbantartjuk a rendszert, és segítünk, ha bármi gond van."
"text": "1. Egyeztetés – Megbeszéljük, mire van szükséged: milyen alkalmazásokat használnál, mennyi tárhelyet szeretnél, és mi a költségkereted. 2. Hardver kiválasztás – Segítek megtalálni az optimális gépet, ami illeszkedik az igényeidhez és a büdzsédhez. 3. Telepítés és beállítás – Feltelepítem az operációs rendszert, a konténerkezelőt, az alkalmazásokat, beállítom a mentéseket és a monitoringot. 4. Átadás és betanítás – Bemutatom, hogyan használd a rendszert, és válaszolok minden kérdésedre. 5. Folyamatos üzemeltetés – Figyelem a mentéseket, karbantartom a rendszert, és segítek, ha bármi gond van."
}
},
{
@@ -85,7 +85,7 @@
"name": "Használhatom a már meglévő régi gépemet?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Sok esetben igen! Egy korábbi asztali PC kiváló szerver lehet. Az egyeztetés során felmérjük, hogy a meglévő géped alkalmas-e a tervezett feladatokra (elég RAM, tároló kapacitás, megbízhatóság). Fontos szempont a fogyasztás és a zajszint – egy régi gamer PC működik ugyan, de havi szinten jóval többet fogyaszt, mint egy modern mini PC."
"text": "Sok esetben igen! Egy korábbi asztali PC kiváló szerver lehet. Az egyeztetés során felmérem, hogy a meglévő géped alkalmas-e a tervezett feladatokra (elég RAM, tároló kapacitás, megbízhatóság). Fontos szempont a fogyasztás és a zajszint – egy régi gamer PC működik ugyan, de havi szinten jóval többet fogyaszt, mint egy modern mini PC."
}
},
{
@@ -93,7 +93,7 @@
"name": "Hova kell tenni a szervert?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Bárhova, ahol van áramcsatlakozó és hálózati kábel (ethernet). A legjobb hely egy szekrény, polc, vagy a router melletti terület. A mini PC-k annyira kompaktak és csendesek, hogy a nappali polcán is elférnek. WiFi-n is működhet, de a megbízhatóság és sebesség érdekében mindig kábeles kapcsolatot javaslunk."
"text": "Bárhova, ahol van áramcsatlakozó és hálózati kábel (ethernet). A legjobb hely egy szekrény, polc, vagy a router melletti terület. A mini PC-k annyira kompaktak és csendesek, hogy a nappali polcán is elférnek. WiFi-n is működhet, de a megbízhatóság és sebesség érdekében mindig kábeles kapcsolatot javaslok."
}
},
{
@@ -117,7 +117,7 @@
"name": "Mi történik, ha elmegy az áram?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A telepítés során a szerver BIOS-át úgy konfiguráljuk (amennyiben az opció rendelkezésre áll), hogy áramszünet után automatikusan bekapcsoljon. Az operációs rendszer és az összes alkalmazás szintén automatikusan elindul a bekapcsolást követően. Ez a beállítás minden telepítésünk alapértelmezett része. Áramszünet után a doboz magától helyreáll – ezt valódi áramszünettel is kipróbáltuk. Ha a megbízhatóság kritikus, szünetmentes tápegységet (UPS) is tudunk javasolni, ami néhány perc szünet áthidalására elegendő."
"text": "A telepítés során a szerver BIOS-át úgy konfigurálom (amennyiben az opció rendelkezésre áll), hogy áramszünet után automatikusan bekapcsoljon. Az operációs rendszer és az összes alkalmazás szintén automatikusan elindul a bekapcsolást követően. Ez a beállítás minden telepítés alapértelmezett része. Áramszünet után a doboz magától helyreáll – ezt valódi áramszünettel is kipróbáltuk. Ha a megbízhatóság kritikus, szünetmentes tápegységet (UPS) is tudok javasolni, ami néhány perc szünet áthidalására elegendő."
}
},
{
@@ -133,7 +133,7 @@
"name": "Milyen alkalmazásokat tudok futtatni?",
"acceptedAnswer": {
"@type": "Answer",
"text": "58 alkalmazást kínálunk – a teljes listát az Alkalmazások oldalon találod. Néhány példa: Immich – Google Photos alternatíva fotók és videók automatikus mentésével. Jellyfin/Plex – saját Netflix filmekhez és sorozatokhoz. Nextcloud – fájlok tárolása és megosztása (Google Drive helyett). Vaultwarden – jelszókezelő az egész családnak. Paperless-ngx – dokumentumok digitalizálása és kereshetővé tétele. Ha valami nincs a listán, kérdezz – megnézzük, felvehető-e a katalógusba."
"text": "58 alkalmazást kínálok – a teljes listát az Alkalmazások oldalon találod. Néhány példa: Immich – Google Photos alternatíva fotók és videók automatikus mentésével. Jellyfin/Plex – saját Netflix filmekhez és sorozatokhoz. Nextcloud – fájlok tárolása és megosztása (Google Drive helyett). Vaultwarden – jelszókezelő az egész családnak. Paperless-ngx – dokumentumok digitalizálása és kereshetővé tétele. Ha valami nincs a listán, kérdezz – megnézzük, felvehető-e a katalógusba."
}
},
{
@@ -141,7 +141,7 @@
"name": "Tudok később új alkalmazásokat hozzáadni?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Igen, bármikor! A vezérlőpultból bármelyik alkalmazás telepíthető, pár kattintással. Ha elakadsz, szólj, és segítünk beállítani."
"text": "Igen, bármikor! A vezérlőpultból bármelyik alkalmazás telepíthető, pár kattintással. Ha elakadsz, szólj, és segítek beállítani."
}
},
{
@@ -165,7 +165,7 @@
"name": "Át tudom hozni a meglévő adataimat (Google Fotók, iCloud, Dropbox)?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Igen! A legtöbb szolgáltatásból exportálhatók az adatok. A Google Takeout segítségével az összes fotódat, dokumentumodat, naptáradat letöltheted, és az Immich, Nextcloud, stb. importálni tudja ezeket. Segítünk a migrációban. A folyamat időigénye az adatmennyiségtől függ – néhány száz GB-nyi fotó átvitele akár egy-két napot is igénybe vehet, de a rendszer utána pontosan úgy működik, ahogy a felhőszolgáltatásnál megszoktad."
"text": "Igen! A legtöbb szolgáltatásból exportálhatók az adatok. A Google Takeout segítségével az összes fotódat, dokumentumodat, naptáradat letöltheted, és az Immich, Nextcloud, stb. importálni tudja ezeket. Segítek a migrációban. A folyamat időigénye az adatmennyiségtől függ – néhány száz GB-nyi fotó átvitele akár egy-két napot is igénybe vehet, de a rendszer utána pontosan úgy működik, ahogy a felhőszolgáltatásnál megszoktad."
}
},
{
@@ -181,7 +181,7 @@
"name": "Mennyire biztonságos egy otthoni szerver?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Az általunk telepített rendszerek több rétegű védelmet kapnak: automatikus HTTPS titkosítás, rendszeres biztonsági frissítések, saját bejelentkezés minden alkalmazásban, és egyes alkalmazások előtt családi kapu. A szervered a te otthonodon belül van – otthon nem nyitunk portot, kívülről csak egy titkosított alagúton keresztül érhető el. A legtöbb otthoni szerver ellen nem célzott támadások szoktak irányulni, hanem automatizált szkriptek próbálkoznak. Ezek ellen a megfelelő konfiguráció kiváló védelmet nyújt."
"text": "Az általam telepített rendszerek több rétegű védelmet kapnak: automatikus HTTPS titkosítás, rendszeres biztonsági frissítések, saját bejelentkezés minden alkalmazásban, és egyes alkalmazások előtt családi kapu. A szervered a te otthonodon belül van – otthon nem nyitok portot, kívülről csak egy titkosított alagúton keresztül érhető el. A legtöbb otthoni szerver ellen nem célzott támadások szoktak irányulni, hanem automatizált szkriptek próbálkoznak. Ezek ellen a megfelelő konfiguráció kiváló védelmet nyújt."
}
},
{
@@ -189,7 +189,7 @@
"name": "Ti hozzáfértek az adataimhoz?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Ez egy fontos és jogos kérdés, amire őszintén válaszolunk. A támogatás és karbantartás érdekében alapesetben rendelkezünk távoli hozzáféréssel a szerveredhez – ahogy bármely IT szolgáltató a kezelt rendszerekhez. Ez szükséges a mentések ellenőrzéséhez, frissítések telepítéséhez, és hibaelhárításhoz. A távoli mentésed kulcsát viszont csak te ismered: a helyreállítási kód egyszer jelenik meg, a te képernyődön, és nálunk nem marad belőle másolat. A távoli mentést így mi sem tudjuk elolvasni. Fontos: szemben a nagy felhőszolgáltatókkal, nálunk nincs algoritmikus adatelemzés, nincs reklámcélú profilozás, és az adataid csak titkosítva hagyják el az otthonodat (a távoli mentés)."
"text": "Ez egy fontos és jogos kérdés, amire őszintén válaszolok. A támogatás és karbantartás érdekében alapesetben van távoli hozzáférésem a szerveredhez – ahogy bármely IT szolgáltatónak a kezelt rendszerekhez. Ez szükséges a mentések ellenőrzéséhez, frissítések telepítéséhez, és hibaelhárításhoz. A távoli mentésed kulcsát viszont csak te ismered: a helyreállítási kód egyszer jelenik meg, a te képernyődön, és nálam nem marad belőle másolat. A távoli mentést így én sem tudom elolvasni. Fontos: szemben a nagy felhőszolgáltatókkal, a Felhomnál nincs algoritmikus adatelemzés, nincs reklámcélú profilozás, és az adataid csak titkosítva hagyják el az otthonodat (a távoli mentés)."
}
},
{
@@ -205,7 +205,7 @@
"name": "GDPR szempontból ez rendben van?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Személyes, otthoni használatra a GDPR nem vonatkozik közvetlenül (a „háztartási kivétel\" alapján). Az adataid otthon, a saját dobozodon vannak. A mentések másolatait a doboz titkosítja, mielőtt elhagynák az otthonodat; ezeket a Hetzner tárolja az EU-ban (Németországban), és a tárhely üzemeltetője nem tudja elolvasni őket. A távoli elérés a Cloudflare hálózatán keresztül megy, így a Cloudflare technikailag láthatja ezt a forgalmat. Ha kisvállalkozásként használod, az adatkezelési tájékoztatóban leírjuk, ki mit kezel és hol. Természetesen nem vagyunk jogi tanácsadók, konkrét jogi kérdésekben szakembert érdemes keresni."
"text": "Személyes, otthoni használatra a GDPR nem vonatkozik közvetlenül (a „háztartási kivétel\" alapján). Az adataid otthon, a saját dobozodon vannak. A mentések másolatait a doboz titkosítja, mielőtt elhagynák az otthonodat; ezeket a Hetzner tárolja az EU-ban (Németországban), és a tárhely üzemeltetője nem tudja elolvasni őket. A távoli elérés a Cloudflare hálózatán keresztül megy, így a Cloudflare technikailag láthatja ezt a forgalmat. Ha kisvállalkozásként használod, az adatkezelési tájékoztató leírja, ki mit kezel és hol. Természetesen nem vagyok jogi tanácsadó, konkrét jogi kérdésekben szakembert érdemes keresni."
}
},
{
@@ -213,7 +213,7 @@
"name": "Hogyan oldják meg a mentéseket?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A 3-2-1 mentési szabályt követjük: 3 másolat az adatokról, 2 különböző tárolón, 1 távoli helyen. Ez iparági szabvány, amit a legnagyobb cégek is alkalmaznak. A dobozon ez három szint: egy mentés a dobozon, egy másodpéldány egy második meghajtón, és egy titkosított másolat egy távoli tárhelyen. A mentések automatikusan, éjszaka futnak. Az adatbázisok és fájlok inkrementálisan mentődnek – tehát csak a változások kerülnek mentésre, ami helyet és időt takarít meg. Részletes leírást a Mentések oldalon találsz."
"text": "A 3-2-1 mentési szabályt követem: 3 másolat az adatokról, 2 különböző tárolón, 1 távoli helyen. Ez iparági szabvány, amit a legnagyobb cégek is alkalmaznak. A dobozon ez három szint: egy mentés a dobozon, egy másodpéldány egy második meghajtón, és egy titkosított másolat egy távoli tárhelyen. A mentések automatikusan, éjszaka futnak. Az adatbázisok és fájlok inkrementálisan mentődnek – tehát csak a változások kerülnek mentésre, ami helyet és időt takarít meg. Részletes leírást a Mentések oldalon találsz."
}
},
{
@@ -229,7 +229,7 @@
"name": "Honnan tudom, hogy a mentések valóban működnek?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Központi monitoring rendszert üzemeltetünk, amely minden nap ellenőrzi, hogy a mentések sikeresen lefutottak-e. Ha bármi probléma van – sikertelen mentés, tárhelyhiány, vagy a szerver nem elérhető – azonnal értesítést kapunk, és szükség esetén te is. Ez nem egy „beállítom és remélem működik\" megoldás – aktívan figyeljük, és időszakosan visszaállítási teszteket is végzünk."
"text": "Központi monitoring rendszert üzemeltetek, amely minden nap ellenőrzi, hogy a mentések sikeresen lefutottak-e. Ha bármi probléma van – sikertelen mentés, tárhelyhiány, vagy a szerver nem elérhető – azonnal értesítést kapok, és szükség esetén te is. Ez nem egy „beállítom és remélem működik\" megoldás – aktívan figyelem, és időszakosan visszaállítási teszteket is végzek."
}
},
{
@@ -237,7 +237,7 @@
"name": "Mi az az „offsite backup\"?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Az offsite (távoli) backup azt jelenti, hogy az adataidról egy másolat fizikailag más helyen is megvan. A Felhom dobozon ez egy általunk biztosított tárhely, ahova a másolat titkosítva kerül. Ha otthon bármi katasztrófa történne (tűz, lopás, vízkár), a távoli másolat akkor is megmarad. Az offsite mentés mindig titkosítva történik – a távoli helyen senki nem tudja elolvasni az adataidat, még ha hozzáfér is a fájlokhoz."
"text": "Az offsite (távoli) backup azt jelenti, hogy az adataidról egy másolat fizikailag más helyen is megvan. A Felhom dobozon ez egy általam biztosított tárhely, ahova a másolat titkosítva kerül. Ha otthon bármi katasztrófa történne (tűz, lopás, vízkár), a távoli másolat akkor is megmarad. Az offsite mentés mindig titkosítva történik – a távoli helyen senki nem tudja elolvasni az adataidat, még ha hozzáfér is a fájlokhoz."
}
},
{
@@ -245,7 +245,7 @@
"name": "Mi történik a telepítés után? Magamra maradok?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Nem! A Felhom.eu nem egy „telepítem és távozom\" szolgáltatást nyújt. Folyamatos üzemeltetést biztosítunk: monitorozás, szoftverfrissítések, mentés-ellenőrzés, és támogatás, ha bármi kérdésed vagy problémád van."
"text": "Nem! A Felhom.eu nem egy „telepítem és távozom\" szolgáltatást nyújt. Folyamatos üzemeltetést biztosítok: monitorozás, szoftverfrissítések, mentés-ellenőrzés, és támogatás, ha bármi kérdésed vagy problémád van."
}
},
{
@@ -253,7 +253,7 @@
"name": "Hogyan történik a szoftverfrissítés?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Az alkalmazások konténerekben futnak, ami megkönnyíti a frissítést. Mi figyelemmel kísérjük az új verziókat, és egy új verzió csak akkor jut el hozzád, ha előbb kipróbáltuk. A doboz rendszere a biztonsági frissítéseket magától megkapja. Minden alkalmazásfrissítés előtt friss mentés készül, és ha az új verzió nem indul el rendesen, a doboz magától visszaállítja az előzőt, az adataiddal együtt."
"text": "Az alkalmazások konténerekben futnak, ami megkönnyíti a frissítést. Figyelemmel kísérem az új verziókat, és egy új verzió csak akkor jut el hozzád, ha előbb kipróbáltam. A doboz rendszere a biztonsági frissítéseket magától megkapja. Minden alkalmazásfrissítés előtt friss mentés készül, és ha az új verzió nem indul el rendesen, a doboz magától visszaállítja az előzőt, az adataiddal együtt."
}
},
{
@@ -261,7 +261,7 @@
"name": "Hogyan kérjek segítséget, ha valami nem működik?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Egyszerűen írj emailt a support@felhom.eu címre. A legtöbb problémát távolról, a te közreműködésed nélkül meg tudjuk oldani. Komolyabb hardveres kérdéseknél személyesen is segítünk."
"text": "Egyszerűen írj emailt a support@felhom.eu címre. A legtöbb problémát távolról, a te közreműködésed nélkül meg tudom oldani. Komolyabb hardveres kérdéseknél személyesen is segítek."
}
},
{
@@ -285,7 +285,7 @@
"name": "Mi van, ha elköltözöm?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A szervered egy kompakt doboz – lecsatlakoztatod, átviszed az új lakásba, becsatlakoztatod, és minden megy tovább. Ha változik az internet szolgáltatód, lehet, hogy a távoli elérés konfigurációját frissíteni kell – ebben segítünk."
"text": "A szervered egy kompakt doboz – lecsatlakoztatod, átviszed az új lakásba, becsatlakoztatod, és minden megy tovább. Ha változik az internet szolgáltatód, lehet, hogy a távoli elérés konfigurációját frissíteni kell – ebben segítek."
}
},
{
@@ -293,7 +293,7 @@
"name": "Mennyibe kerül az egész?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A költség két részből áll: Egyszeri költségek: A hardver ára (80.000–400.000+ Ft, konfigurációtól függően) és a telepítési díj. A hardvert te vásárolod meg – a tiéd, örökre. Havi üzemeltetési díj: A monitoring, támogatás, frissítések, és mentés-felügyelet díja. Ez a kiválasztott csomagtól függ. Pontos árajánlatot az egyeztetés után adunk – mert az igények nagyon eltérőek lehetnek. Írj nekünk, és személyre szabott ajánlatot készítünk!"
"text": "A költség két részből áll: Egyszeri költségek: A hardver ára (80.000–400.000+ Ft, konfigurációtól függően) és a telepítési díj. A hardvert te vásárolod meg – a tiéd, örökre. Havi üzemeltetési díj: A monitoring, támogatás, frissítések, és mentés-felügyelet díja. Ez a kiválasztott csomagtól függ. Pontos árajánlatot az egyeztetés után adok – mert az igények nagyon eltérőek lehetnek. Írj nekem, és személyre szabott ajánlatot készítek!"
}
},
{
@@ -309,7 +309,7 @@
"name": "Vannak rejtett költségek?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Nincsenek. A felmerülő költségek: hardver (egyszeri), telepítés (egyszeri), havi üzemeltetés (opcionális), és villanyáram (havi néhány ezer forint). Az alkalmazások ingyenesen használhatók, és szinte mind nyílt forráskódú – nincs licencdíj az alkalmazásokért. (Néhánynak van fizetős extrája, például a Plex Pass; ez választható.) A távoli mentés tárhelyének van havi költsége, ami a mentett adatmennyiségtől függ – ezt az ajánlatban előre leírjuk."
"text": "Nincsenek. A felmerülő költségek: hardver (egyszeri), telepítés (egyszeri), havi üzemeltetés (opcionális), és villanyáram (havi néhány ezer forint). Az alkalmazások ingyenesen használhatók, és szinte mind nyílt forráskódú – nincs licencdíj az alkalmazásokért. (Néhánynak van fizetős extrája, például a Plex Pass; ez választható.) A távoli mentés tárhelyének van havi költsége, ami a mentett adatmennyiségtől függ – ezt az ajánlatban előre leírom."
}
},
{
@@ -317,7 +317,7 @@
"name": "Milyen operációs rendszer fut a szerveren?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A szerver alapja a Proxmox VE – egy professzionális, Debian-alapú virtualizációs rendszer, amelyre a teljes Felhom rendszert építjük. Az alkalmazásaid Docker konténerekben futnak egy elkülönített rendszerkörnyezetben, a Proxmox alapra telepítve. Így a teljes rendszerkörnyezet is menthető, és ebből visszaállítható."
"text": "A szerver alapja a Proxmox VE – egy professzionális, Debian-alapú virtualizációs rendszer, amelyre a teljes Felhom rendszert építem. Az alkalmazásaid Docker konténerekben futnak egy elkülönített rendszerkörnyezetben, a Proxmox alapra telepítve. Így a teljes rendszerkörnyezet is menthető, és ebből visszaállítható."
}
},
{
@@ -341,7 +341,7 @@
"name": "Saját domain nevet is használhatok?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Igen! Ha van saját domain neved (pl. enszerverem.hu), beállíthatjuk, hogy az alkalmazásaid azon keresztül legyenek elérhetők (pl. fotok.enszerverem.hu, filmek.enszerverem.hu). Ha nincs domain neved, segítünk az igényléssel – az éves költsége néhány ezer forint."
"text": "Igen! Ha van saját domain neved (pl. enszerverem.hu), beállíthatom, hogy az alkalmazásaid azon keresztül legyenek elérhetők (pl. fotok.enszerverem.hu, filmek.enszerverem.hu). Ha nincs domain neved, segítek az igényléssel – az éves költsége néhány ezer forint."
}
},
{
@@ -357,7 +357,7 @@
"name": "Használhatok VPN-t a szerver eléréséhez?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Nem kell hozzá: a doboz alapból egy titkosított alagúton át, HTTPS-sel érhető el bárhonnan, külön alkalmazás nélkül. Háztartási VPN-elérést (amikor a telefonod vagy a laptopod úgy csatlakozik, mintha otthon lenne) ma nem állítunk be a dobozon. Ha erre van szükséged, kérdezz rá."
"text": "Nem kell hozzá: a doboz alapból egy titkosított alagúton át, HTTPS-sel érhető el bárhonnan, külön alkalmazás nélkül. Háztartási VPN-elérést (amikor a telefonod vagy a laptopod úgy csatlakozik, mintha otthon lenne) ma nem állítok be a dobozon. Ha erre van szükséged, kérdezz rá."
}
}
]
@@ -366,7 +366,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -404,7 +404,7 @@
<li><a href="/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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -420,7 +420,7 @@
<div class="page-header">
<h1>Gyakran Ismételt <span>Kérdések</span></h1>
</div>
<p class="page-lede">Minden, amit az otthoni szerver szolgáltatásunkról tudni érdemes – egy helyen, érthetően.</p>
<p class="page-lede">Minden, amit az otthoni szerver szolgáltatásról tudni érdemes – egy helyen, érthetően.</p>
<section class="content-section" style="padding-top: 0;">
@@ -454,7 +454,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>A Felhom.eu egy olyan szolgáltatást nyújt, amely segít az otthoni szerver(ek) telepítésében és üzemeltetésében. Kulcsrakész megoldásokat kínálunk: megválasztjuk a hardvert, beállítjuk a szoftvereket, biztosítjuk a mentéseket, és folyamatosan figyelemmel kísérjük a rendszert.</p>
<p>A Felhom.eu egy olyan szolgáltatást nyújt, amely segít az otthoni szerver(ek) telepítésében és üzemeltetésében. Kulcsrakész megoldásokat kínálok: megválasztom a hardvert, beállítom a szoftvereket, biztosítom a mentéseket, és folyamatosan figyelemmel kísérem a rendszert.</p>
<p>A cél egyszerű: a nagy felhőszolgáltatók (Google, Microsoft, Apple) helyett a saját otthonodban futó szerveren tárolhatod az adataidat – anélkül, hogy neked kellene szakértőnek lenned.</p>
</div></div>
</div>
@@ -480,7 +480,7 @@
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p><strong>Nem.</strong> A teljes telepítést és beállítást mi végezzük. A te dolgod annyi, hogy használod az alkalmazásokat – böngészőn vagy mobilon keresztül, pont úgy, mint egy Google vagy Apple szolgáltatást.</p>
<p>A telepítés után egy rövid bemutatón végigvezetünk, hogy magabiztosan használd a rendszert.</p>
<p>A telepítés után egy rövid bemutatón végigvezetlek, hogy magabiztosan használd a rendszert.</p>
</div></div>
</div>
@@ -490,8 +490,8 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>A Synology és QNAP elsősorban fájltárolásra készült NAS (hálózati adattároló) eszközök, saját zárt szoftverrel. Mi ezzel szemben egy nyílt, Docker-alapú rendszert kínálunk, amelyre a katalógus alkalmazásai pár kattintással telepíthetők – fotókezelőtől a média szerveren át a jelszókezelőig.</p>
<p>A NAS-ok korlátozott alkalmazás-választékot kínálnak és a gyártó szoftverfrissítéseitől függenek. Nálunk 58 alkalmazásból válogathatsz, és ha valami hiányzik, megnézzük, felvehető-e.</p>
<p>A Synology és QNAP elsősorban fájltárolásra készült NAS (hálózati adattároló) eszközök, saját zárt szoftverrel. Én ezzel szemben egy nyílt, Docker-alapú rendszert kínálok, amelyre a katalógus alkalmazásai pár kattintással telepíthetők – fotókezelőtől a média szerveren át a jelszókezelőig.</p>
<p>A NAS-ok korlátozott alkalmazás-választékot kínálnak és a gyártó szoftverfrissítéseitől függenek. A Felhomnál 58 alkalmazásból válogathatsz, és ha valami hiányzik, megnézem, felvehető-e.</p>
</div></div>
</div>
@@ -502,10 +502,10 @@
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p><strong>1. Egyeztetés</strong> – Megbeszéljük, mire van szükséged: milyen alkalmazásokat használnál, mennyi tárhelyet szeretnél, és mi a költségkereted.</p>
<p><strong>2. Hardver kiválasztás</strong> – Segítünk megtalálni az optimális gépet, ami illeszkedik az igényeidhez és a büdzsédhez.</p>
<p><strong>3. Telepítés és beállítás</strong> – Feltelepítjük az operációs rendszert, a konténerkezelőt, az alkalmazásokat, beállítjuk a mentéseket és a monitoringot.</p>
<p><strong>4. Átadás és betanítás</strong> – Bemutatjuk, hogyan használd a rendszert, és válaszolunk minden kérdésedre.</p>
<p><strong>5. Folyamatos üzemeltetés</strong> – Figyeljük a mentéseket, karbantartjuk a rendszert, és segítünk, ha bármi gond van.</p>
<p><strong>2. Hardver kiválasztás</strong> – Segítek megtalálni az optimális gépet, ami illeszkedik az igényeidhez és a büdzsédhez.</p>
<p><strong>3. Telepítés és beállítás</strong> – Feltelepítem az operációs rendszert, a konténerkezelőt, az alkalmazásokat, beállítom a mentéseket és a monitoringot.</p>
<p><strong>4. Átadás és betanítás</strong> – Bemutatom, hogyan használd a rendszert, és válaszolok minden kérdésedre.</p>
<p><strong>5. Folyamatos üzemeltetés</strong> – Figyelem a mentéseket, karbantartom a rendszert, és segítek, ha bármi gond van.</p>
</div></div>
</div>
</div>
@@ -534,7 +534,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Sok esetben igen! Egy korábbi asztali PC kiváló szerver lehet. Az egyeztetés során felmérjük, hogy a meglévő géped alkalmas-e a tervezett feladatokra (elég RAM, tároló kapacitás, megbízhatóság).</p>
<p>Sok esetben igen! Egy korábbi asztali PC kiváló szerver lehet. Az egyeztetés során felmérem, hogy a meglévő géped alkalmas-e a tervezett feladatokra (elég RAM, tároló kapacitás, megbízhatóság).</p>
<p>Fontos szempont a <strong>fogyasztás</strong> és a <strong>zajszint</strong> – egy régi gamer PC működik ugyan, de havi szinten jóval többet fogyaszt, mint egy modern mini PC.</p>
</div></div>
</div>
@@ -546,7 +546,7 @@
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Bárhova, ahol van <strong>áramcsatlakozó</strong> és <strong>hálózati kábel</strong> (ethernet). A legjobb hely egy szekrény, polc, vagy a router melletti terület. A mini PC-k annyira kompaktak és csendesek, hogy a nappali polcán is elférnek.</p>
<p>WiFi-n is működhet, de a megbízhatóság és sebesség érdekében mindig kábeles kapcsolatot javaslunk.</p>
<p>WiFi-n is működhet, de a megbízhatóság és sebesség érdekében mindig kábeles kapcsolatot javaslok.</p>
</div></div>
</div>
@@ -577,8 +577,8 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>A telepítés során a szerver BIOS-át úgy konfiguráljuk (amennyiben az opció rendelkezésre áll), hogy áramszünet után automatikusan bekapcsoljon. Az operációs rendszer és az összes alkalmazás szintén automatikusan elindul a bekapcsolást követően. Ez a beállítás minden telepítésünk alapértelmezett része.</p>
<p>Áramszünet után a doboz magától helyreáll – ezt valódi áramszünettel is kipróbáltuk. Ha a megbízhatóság kritikus, szünetmentes tápegységet (UPS) is tudunk javasolni, ami néhány perc szünet áthidalására elegendő.</p>
<p>A telepítés során a szerver BIOS-át úgy konfigurálom (amennyiben az opció rendelkezésre áll), hogy áramszünet után automatikusan bekapcsoljon. Az operációs rendszer és az összes alkalmazás szintén automatikusan elindul a bekapcsolást követően. Ez a beállítás minden telepítés alapértelmezett része.</p>
<p>Áramszünet után a doboz magától helyreáll – ezt valódi áramszünettel is kipróbáltuk. Ha a megbízhatóság kritikus, szünetmentes tápegységet (UPS) is tudok javasolni, ami néhány perc szünet áthidalására elegendő.</p>
</div></div>
</div>
@@ -607,7 +607,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p><strong>58 alkalmazást</strong> kínálunk – a teljes listát az <a href="/alkalmazasok">Alkalmazások</a> oldalon találod. Néhány példa:</p>
<p><strong>58 alkalmazást</strong> kínálok – a teljes listát az <a href="/alkalmazasok">Alkalmazások</a> oldalon találod. Néhány példa:</p>
<p><strong>Immich</strong> – Google Photos alternatíva fotók és videók automatikus mentésével. <strong>Jellyfin/Plex</strong> – saját Netflix filmekhez és sorozatokhoz. <strong>Nextcloud</strong> – fájlok tárolása és megosztása (Google Drive helyett). <strong>Vaultwarden</strong> – jelszókezelő az egész családnak. <strong>Paperless-ngx</strong> – dokumentumok digitalizálása és kereshetővé tétele.</p>
<p>Ha valami nincs a listán, kérdezz – megnézzük, felvehető-e a katalógusba.</p>
</div></div>
@@ -619,7 +619,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p><strong>Igen, bármikor!</strong> A vezérlőpultból bármelyik alkalmazás telepíthető, pár kattintással. Ha elakadsz, szólj, és segítünk beállítani.</p>
<p><strong>Igen, bármikor!</strong> A vezérlőpultból bármelyik alkalmazás telepíthető, pár kattintással. Ha elakadsz, szólj, és segítek beállítani.</p>
</div></div>
</div>
@@ -649,7 +649,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Igen! A legtöbb szolgáltatásból exportálhatók az adatok. A Google Takeout segítségével az összes fotódat, dokumentumodat, naptáradat letöltheted, és az Immich, Nextcloud, stb. importálni tudja ezeket. Segítünk a migrációban.</p>
<p>Igen! A legtöbb szolgáltatásból exportálhatók az adatok. A Google Takeout segítségével az összes fotódat, dokumentumodat, naptáradat letöltheted, és az Immich, Nextcloud, stb. importálni tudja ezeket. Segítek a migrációban.</p>
<p>A folyamat időigénye az adatmennyiségtől függ – néhány száz GB-nyi fotó átvitele akár egy-két napot is igénybe vehet, de a rendszer utána pontosan úgy működik, ahogy a felhőszolgáltatásnál megszoktad.</p>
</div></div>
</div>
@@ -678,7 +678,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Az általunk telepített rendszerek több rétegű védelmet kapnak: automatikus HTTPS titkosítás, rendszeres biztonsági frissítések, saját bejelentkezés minden alkalmazásban, és egyes alkalmazások előtt családi kapu. A szervered a te otthonodon belül van – otthon nem nyitunk portot, kívülről csak egy titkosított alagúton keresztül érhető el.</p>
<p>Az általam telepített rendszerek több rétegű védelmet kapnak: automatikus HTTPS titkosítás, rendszeres biztonsági frissítések, saját bejelentkezés minden alkalmazásban, és egyes alkalmazások előtt családi kapu. A szervered a te otthonodon belül van – otthon nem nyitok portot, kívülről csak egy titkosított alagúton keresztül érhető el.</p>
<p>A legtöbb otthoni szerver ellen nem célzott támadások szoktak irányulni, hanem automatizált szkriptek próbálkoznak. Ezek ellen a megfelelő konfiguráció kiváló védelmet nyújt.</p>
</div></div>
</div>
@@ -689,10 +689,10 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Ez egy fontos és jogos kérdés, amire őszintén válaszolunk.</p>
<p>A támogatás és karbantartás érdekében alapesetben rendelkezünk távoli hozzáféréssel a szerveredhez – ahogy bármely IT szolgáltató a kezelt rendszerekhez. Ez szükséges a mentések ellenőrzéséhez, frissítések telepítéséhez, és hibaelhárításhoz.</p>
<p>A távoli mentésed kulcsát viszont <strong>csak te ismered</strong>: a helyreállítási kód egyszer jelenik meg, a te képernyődön, és nálunk nem marad belőle másolat. A távoli mentést így mi sem tudjuk elolvasni.</p>
<p>Fontos: szemben a nagy felhőszolgáltatókkal, nálunk <strong>nincs algoritmikus adatelemzés</strong>, nincs reklámcélú profilozás, és az adataid csak titkosítva hagyják el az otthonodat (a távoli mentés).</p>
<p>Ez egy fontos és jogos kérdés, amire őszintén válaszolok.</p>
<p>A támogatás és karbantartás érdekében alapesetben van távoli hozzáférésem a szerveredhez – ahogy bármely IT szolgáltatónak a kezelt rendszerekhez. Ez szükséges a mentések ellenőrzéséhez, frissítések telepítéséhez, és hibaelhárításhoz.</p>
<p>A távoli mentésed kulcsát viszont <strong>csak te ismered</strong>: a helyreállítási kód egyszer jelenik meg, a te képernyődön, és nálam nem marad belőle másolat. A távoli mentést így én sem tudom elolvasni.</p>
<p>Fontos: szemben a nagy felhőszolgáltatókkal, a Felhomnál <strong>nincs algoritmikus adatelemzés</strong>, nincs reklámcélú profilozás, és az adataid csak titkosítva hagyják el az otthonodat (a távoli mentés).</p>
</div></div>
</div>
@@ -713,7 +713,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Személyes, otthoni használatra a GDPR nem vonatkozik közvetlenül (a „háztartási kivétel" alapján). Az adataid otthon, a saját dobozodon vannak. A mentések másolatait a doboz titkosítja, mielőtt elhagynák az otthonodat; ezeket a Hetzner tárolja az EU-ban (Németországban), és a tárhely üzemeltetője nem tudja elolvasni őket. A távoli elérés a Cloudflare hálózatán keresztül megy, így a Cloudflare technikailag láthatja ezt a forgalmat. Ha kisvállalkozásként használod, az adatkezelési tájékoztatóban leírjuk, ki mit kezel és hol. Természetesen nem vagyunk jogi tanácsadók, konkrét jogi kérdésekben szakembert érdemes keresni.</p>
<p>Személyes, otthoni használatra a GDPR nem vonatkozik közvetlenül (a „háztartási kivétel" alapján). Az adataid otthon, a saját dobozodon vannak. A mentések másolatait a doboz titkosítja, mielőtt elhagynák az otthonodat; ezeket a Hetzner tárolja az EU-ban (Németországban), és a tárhely üzemeltetője nem tudja elolvasni őket. A távoli elérés a Cloudflare hálózatán keresztül megy, így a Cloudflare technikailag láthatja ezt a forgalmat. Ha kisvállalkozásként használod, az adatkezelési tájékoztató leírja, ki mit kezel és hol. Természetesen nem vagyok jogi tanácsadó, konkrét jogi kérdésekben szakembert érdemes keresni.</p>
</div></div>
</div>
</div>
@@ -731,7 +731,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>A <strong>3-2-1 mentési szabályt</strong> követjük: 3 másolat az adatokról, 2 különböző tárolón, 1 távoli helyen. Ez iparági szabvány, amit a legnagyobb cégek is alkalmaznak. A dobozon ez három szint: egy mentés a dobozon, egy másodpéldány egy második meghajtón, és egy titkosított másolat egy távoli tárhelyen.</p>
<p>A <strong>3-2-1 mentési szabályt</strong> követem: 3 másolat az adatokról, 2 különböző tárolón, 1 távoli helyen. Ez iparági szabvány, amit a legnagyobb cégek is alkalmaznak. A dobozon ez három szint: egy mentés a dobozon, egy másodpéldány egy második meghajtón, és egy titkosított másolat egy távoli tárhelyen.</p>
<p>A mentések <strong>automatikusan</strong>, éjszaka futnak. Az adatbázisok és fájlok inkrementálisan mentődnek – tehát csak a változások kerülnek mentésre, ami helyet és időt takarít meg. Részletes leírást a <a href="/biztonsagimentes">Mentések</a> oldalon találsz.</p>
</div></div>
</div>
@@ -752,8 +752,8 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Központi monitoring rendszert üzemeltetünk, amely <strong>minden nap</strong> ellenőrzi, hogy a mentések sikeresen lefutottak-e. Ha bármi probléma van – sikertelen mentés, tárhelyhiány, vagy a szerver nem elérhető – azonnal értesítést kapunk, és szükség esetén te is.</p>
<p>Ez nem egy „beállítom és remélem működik" megoldás – aktívan figyeljük, és időszakosan visszaállítási teszteket is végzünk.</p>
<p>Központi monitoring rendszert üzemeltetek, amely <strong>minden nap</strong> ellenőrzi, hogy a mentések sikeresen lefutottak-e. Ha bármi probléma van – sikertelen mentés, tárhelyhiány, vagy a szerver nem elérhető – azonnal értesítést kapok, és szükség esetén te is.</p>
<p>Ez nem egy „beállítom és remélem működik" megoldás – aktívan figyelem, és időszakosan visszaállítási teszteket is végzek.</p>
</div></div>
</div>
@@ -763,7 +763,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Az offsite (távoli) backup azt jelenti, hogy az adataidról egy másolat fizikailag más helyen is megvan. A Felhom dobozon ez egy általunk biztosított tárhely, ahova a másolat titkosítva kerül. Ha otthon bármi katasztrófa történne (tűz, lopás, vízkár), a távoli másolat akkor is megmarad.</p>
<p>Az offsite (távoli) backup azt jelenti, hogy az adataidról egy másolat fizikailag más helyen is megvan. A Felhom dobozon ez egy általam biztosított tárhely, ahova a másolat titkosítva kerül. Ha otthon bármi katasztrófa történne (tűz, lopás, vízkár), a távoli másolat akkor is megmarad.</p>
<p>Az offsite mentés mindig <strong>titkosítva</strong> történik – a távoli helyen senki nem tudja elolvasni az adataidat, még ha hozzáfér is a fájlokhoz.</p>
</div></div>
</div>
@@ -782,7 +782,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p><strong>Nem!</strong> A Felhom.eu nem egy „telepítem és távozom" szolgáltatást nyújt. Folyamatos üzemeltetést biztosítunk: monitorozás, szoftverfrissítések, mentés-ellenőrzés, és támogatás, ha bármi kérdésed vagy problémád van.</p>
<p><strong>Nem!</strong> A Felhom.eu nem egy „telepítem és távozom" szolgáltatást nyújt. Folyamatos üzemeltetést biztosítok: monitorozás, szoftverfrissítések, mentés-ellenőrzés, és támogatás, ha bármi kérdésed vagy problémád van.</p>
</div></div>
</div>
@@ -792,7 +792,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Az alkalmazások konténerekben futnak, ami megkönnyíti a frissítést. Mi figyelemmel kísérjük az új verziókat, és egy új verzió csak akkor jut el hozzád, ha előbb kipróbáltuk. A doboz rendszere a biztonsági frissítéseket magától megkapja.</p>
<p>Az alkalmazások konténerekben futnak, ami megkönnyíti a frissítést. Figyelemmel kísérem az új verziókat, és egy új verzió csak akkor jut el hozzád, ha előbb kipróbáltam. A doboz rendszere a biztonsági frissítéseket magától megkapja.</p>
<p>Minden alkalmazásfrissítés előtt friss mentés készül, és ha az új verzió nem indul el rendesen, a doboz magától visszaállítja az előzőt, az adataiddal együtt.</p>
</div></div>
</div>
@@ -803,7 +803,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Egyszerűen írj emailt a <strong>support@felhom.eu</strong> címre. A legtöbb problémát távolról, a te közreműködésed nélkül meg tudjuk oldani. Komolyabb hardveres kérdéseknél személyesen is segítünk.</p>
<p>Egyszerűen írj emailt a <strong>support@felhom.eu</strong> címre. A legtöbb problémát távolról, a te közreműködésed nélkül meg tudom oldani. Komolyabb hardveres kérdéseknél személyesen is segítek.</p>
</div></div>
</div>
@@ -835,7 +835,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>A szervered egy kompakt doboz – lecsatlakoztatod, átviszed az új lakásba, becsatlakoztatod, és minden megy tovább. Ha változik az internet szolgáltatód, lehet, hogy a távoli elérés konfigurációját frissíteni kell – ebben segítünk.</p>
<p>A szervered egy kompakt doboz – lecsatlakoztatod, átviszed az új lakásba, becsatlakoztatod, és minden megy tovább. Ha változik az internet szolgáltatód, lehet, hogy a távoli elérés konfigurációját frissíteni kell – ebben segítek.</p>
</div></div>
</div>
</div>
@@ -856,7 +856,7 @@
<p>A költség két részből áll:</p>
<p><strong>Egyszeri költségek:</strong> A hardver ára (80.000–400.000+ Ft, konfigurációtól függően) és a telepítési díj. A hardvert te vásárolod meg – a tiéd, örökre.</p>
<p><strong>Havi üzemeltetési díj:</strong> A monitoring, támogatás, frissítések, és mentés-felügyelet díja. Ez a kiválasztott csomagtól függ.</p>
<p>Pontos árajánlatot az egyeztetés után adunk – mert az igények nagyon eltérőek lehetnek. Írj nekünk, és személyre szabott ajánlatot készítünk!</p>
<p>Pontos árajánlatot az egyeztetés után adok – mert az igények nagyon eltérőek lehetnek. Írj nekem, és személyre szabott ajánlatot készítek!</p>
</div></div>
</div>
@@ -878,7 +878,7 @@
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Nincsenek. A felmerülő költségek: hardver (egyszeri), telepítés (egyszeri), havi üzemeltetés (opcionális), és villanyáram (havi néhány ezer forint). Az alkalmazások ingyenesen használhatók, és szinte mind <strong>nyílt forráskódú</strong> – nincs licencdíj az alkalmazásokért. (Néhánynak van fizetős extrája, például a Plex Pass; ez választható.)</p>
<p>A távoli mentés tárhelyének van havi költsége, ami a mentett adatmennyiségtől függ – ezt az ajánlatban előre leírjuk.</p>
<p>A távoli mentés tárhelyének van havi költsége, ami a mentett adatmennyiségtől függ – ezt az ajánlatban előre leírom.</p>
</div></div>
</div>
</div>
@@ -896,7 +896,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>A szerver alapja a <strong>Proxmox VE</strong> – egy professzionális, Debian-alapú virtualizációs rendszer, amelyre a teljes Felhom rendszert építjük. Az alkalmazásaid Docker konténerekben futnak egy elkülönített rendszerkörnyezetben, a Proxmox alapra telepítve. Így a teljes rendszerkörnyezet is menthető, és ebből visszaállítható.</p>
<p>A szerver alapja a <strong>Proxmox VE</strong> – egy professzionális, Debian-alapú virtualizációs rendszer, amelyre a teljes Felhom rendszert építem. Az alkalmazásaid Docker konténerekben futnak egy elkülönített rendszerkörnyezetben, a Proxmox alapra telepítve. Így a teljes rendszerkörnyezet is menthető, és ebből visszaállítható.</p>
</div></div>
</div>
@@ -930,7 +930,7 @@
<svg class="faq-chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg>
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Igen! Ha van saját domain neved (pl. <em>enszerverem.hu</em>), beállíthatjuk, hogy az alkalmazásaid azon keresztül legyenek elérhetők (pl. <em>fotok.enszerverem.hu</em>, <em>filmek.enszerverem.hu</em>). Ha nincs domain neved, segítünk az igényléssel – az éves költsége néhány ezer forint.</p>
<p>Igen! Ha van saját domain neved (pl. <em>enszerverem.hu</em>), beállíthatom, hogy az alkalmazásaid azon keresztül legyenek elérhetők (pl. <em>fotok.enszerverem.hu</em>, <em>filmek.enszerverem.hu</em>). Ha nincs domain neved, segítek az igényléssel – az éves költsége néhány ezer forint.</p>
</div></div>
</div>
@@ -951,7 +951,7 @@
</button>
<div class="faq-answer"><div class="faq-answer-inner">
<p>Nem kell hozzá: a doboz alapból egy titkosított alagúton át, HTTPS-sel érhető el bárhonnan, külön alkalmazás nélkül.</p>
<p>Háztartási VPN-elérést (amikor a telefonod vagy a laptopod úgy csatlakozik, mintha otthon lenne) ma nem állítunk be a dobozon. Ha erre van szükséged, kérdezz rá.</p>
<p>Háztartási VPN-elérést (amikor a telefonod vagy a laptopod úgy csatlakozik, mintha otthon lenne) ma nem állítok be a dobozon. Ha erre van szükséged, kérdezz rá.</p>
</div></div>
</div>
</div>
@@ -962,14 +962,14 @@
<section class="cta-section alt-bg">
<div class="container">
<h2>Nem találtad a <span>válaszodat?</span></h2>
<p>Írj nekünk bátran – szívesen válaszolunk minden kérdésedre.</p>
<p>Írj nekem bátran – szívesen válaszolok minden kérdésedre.</p>
<a href="/kapcsolat" class="cta-button">Kapcsolatfelvétel →</a>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
@@ -1004,67 +1004,6 @@
}
</script>
<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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+31 -11
View File
@@ -57,7 +57,7 @@
<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=28">
<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>
@@ -96,7 +96,7 @@
<li><a href="/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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -113,18 +113,18 @@
<div class="hero-copy">
<h1>Saját felhőd,<br><span>saját szabályaid</span></h1>
<span class="domain-badge">Otthoni szerver szolgáltatás</span>
<p class="hero-lede">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>
<p class="hero-lede">Egy kis gép az otthonodban: a fényképeid, a dokumentumaid, a filmjeid. Minden éjjel mentés készül. Én figyelem, te használod.</p>
<a href="/teszteles" class="btn btn-primary btn-lg">Jelentkezem tesztelőnek →</a>
</div>
<figure class="hero-shot">
<div class="hero-laptop">
<video class="hero-screen" poster="/assets/hero-poster.webp?v=1" muted loop playsinline preload="none" disablepictureinpicture aria-label="Alkalmazások futás közben: Jellyfin, Tandoor, OnlyOffice, Immich, RomM, Paperless">
<source src="/assets/hero-clip.webm?v=1" type="video/webm">
<source src="/assets/hero-clip.mp4?v=1" type="video/mp4">
<video class="hero-screen" poster="/assets/hero-poster.webp?v=2" muted loop playsinline preload="none" disablepictureinpicture aria-label="Alkalmazások futás közben: 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>Alkalmazások a katalógusból: Jellyfin, Tandoor, OnlyOffice, Immich, RomM, Paperless.</figcaption>
<figcaption>Alkalmazások a katalógusból: Immich, Jellyfin, Tandoor, OnlyOffice, RomM, Paperless.<span class="hero-credit">A film a képernyőn: <a href="https://studio.blender.org/films/caminandes-3/" rel="noopener">Caminandes: Llamigos</a> © Blender Foundation, CC BY.</span></figcaption>
</figure>
</section>
@@ -134,9 +134,29 @@
<p>Nem terv és nem ígéret: ezek ma működő funkciók egy éles Felhom dobozon.</p>
</div>
<ul class="caps-teaser">
<li><a href="/szolgaltatasok#nap-mint-nap">Amit nap mint nap használsz</a></li>
<li><a href="/szolgaltatasok#hatterben">Ami a háttérben véd</a></li>
<li><a href="/szolgaltatasok#gondoskodunk">Amiről mi gondoskodunk</a></li>
<li>
<a href="/szolgaltatasok#nap-mint-nap">Amit nap mint nap használsz</a>
<ul>
<li>Fényképek, dokumentumok, média</li>
<li>Hálózati megosztás</li>
<li>58 telepíthető alkalmazás</li>
</ul>
</li>
<li>
<a href="/szolgaltatasok#hatterben">Ami a háttérben véd</a>
<ul>
<li>Háromszintű automatikus mentés</li>
<li>Helyreállítási kód, amit csak te ismersz</li>
<li>Visszaállítás, ha baj van</li>
</ul>
</li>
<li>
<a href="/szolgaltatasok#gondoskodunk">Amiről én gondoskodom</a>
<ul>
<li>Távoli felügyelet, automatikus frissítés</li>
<li>Óvatos alkalmazásfrissítés</li>
</ul>
</li>
</ul>
<a href="/szolgaltatasok" class="btn btn-outline">Minden szolgáltatás →</a>
</section>
@@ -270,7 +290,7 @@
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
+11 -74
View File
@@ -29,7 +29,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -67,7 +67,7 @@
<li><a href="/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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -81,9 +81,9 @@
</nav>
<main class="content">
<div class="page-header">
<h1>Írj nekünk <span>bátran!</span></h1>
<h1>Írj nekem <span>bátran!</span></h1>
</div>
<p class="page-lede">Kérdésed van, vagy szeretnéd megbeszélni az igényeidet? Töltsd ki az űrlapot, és hamarosan válaszolunk.</p>
<p class="page-lede">Kérdésed van, vagy szeretnéd megbeszélni az igényeidet? Töltsd ki az űrlapot, és hamarosan válaszolok.</p>
<section class="content-section" style="padding-top: 0;">
<div class="container">
<div class="contact-layout">
@@ -143,7 +143,7 @@
</div>
<div class="checkbox-group">
<input type="checkbox" id="privacy" name="privacy" required>
<label class="cb-hit" for="privacy"><input type="checkbox" id="privacy" name="privacy" required></label>
<label for="privacy">
Elolvastam az <a href="/adatkezeles" target="_blank" rel="noopener">Adatkezelési tájékoztatót</a>, és hozzájárulok, hogy a megadott nevemet, e-mail-címemet, üzenetemet és csatolt fájljaimat a megkeresésem megválaszolására kezeljék. Az üzenetet levélküldő és levelezési szolgáltatók továbbítják. A hozzájárulásomat bármikor visszavonhatom az info@felhom.eu címen.
</label>
@@ -169,18 +169,16 @@
<div class="sidebar-card">
<h3><span class="icon"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-clock"/></svg></span> Válaszidő</h3>
<p>Általában <strong style="color: var(--blue-bright);">24 órán belül</strong> válaszolunk munkanapokon.</p>
<p>Sürgős támogatási kérdés esetén jelezd a tárgyban.</p>
<p>Általában <strong style="color: var(--blue-bright);">1–2 napon belül</strong> válaszolok.</p>
<p>A zárt teszt alatt válaszidőt nem vállalok – ez a teszt feltételeiben is így áll.</p>
</div>
<div class="sidebar-card">
<h3><span class="icon"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-lightbulb"/></svg></span> Miben segíthetünk?</h3>
<h3><span class="icon"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-lightbulb"/></svg></span> Miben segíthetek?</h3>
<ul class="sidebar-list">
<li><span class="li-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-monitor"/></svg></span> Szerver konfiguráció tanácsadás</li>
<li><span class="li-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-package"/></svg></span> Alkalmazás telepítés és beállítás</li>
<li><span class="li-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-lock"/></svg></span> Biztonsági mentés kialakítás</li>
<li><span class="li-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-globe"/></svg></span> Távoli elérés beállítása</li>
<li><span class="li-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-wrench"/></svg></span> Meglévő szerver karbantartás</li>
<li><span class="li-icon"><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-monitor"/></svg></span> Kérdés a zárt tesztről</li>
</ul>
</div>
</div>
@@ -206,7 +204,7 @@
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
@@ -521,7 +519,7 @@
throw new Error(`Szerver hiba: ${response.status}`);
}
showStatus('Üzeneted sikeresen elküldtük! Hamarosan válaszolunk.', 'success');
showStatus('Az üzeneted elment. Hamarosan válaszolok.', 'success');
form.reset();
attachedFiles = [];
renderFileList();
@@ -571,67 +569,6 @@
})();
</script>
<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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+3 -64
View File
@@ -27,7 +27,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -65,7 +65,7 @@
<li><a href="/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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -116,72 +116,11 @@
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
<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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+16
View File
@@ -8,6 +8,14 @@
<changefreq>monthly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://felhom.eu/szolgaltatasok</loc>
<xhtml:link rel="alternate" hreflang="hu" href="https://felhom.eu/szolgaltatasok"/>
<xhtml:link rel="alternate" hreflang="en" href="https://felhom.eu/en/services"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://felhom.eu/szolgaltatasok"/>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://felhom.eu/alkalmazasok</loc>
<xhtml:link rel="alternate" hreflang="hu" href="https://felhom.eu/alkalmazasok"/>
@@ -64,6 +72,14 @@
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://felhom.eu/en/services</loc>
<xhtml:link rel="alternate" hreflang="hu" href="https://felhom.eu/szolgaltatasok"/>
<xhtml:link rel="alternate" hreflang="en" href="https://felhom.eu/en/services"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://felhom.eu/szolgaltatasok"/>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://felhom.eu/en/apps</loc>
<xhtml:link rel="alternate" hreflang="hu" href="https://felhom.eu/alkalmazasok"/>
+3 -64
View File
@@ -9,7 +9,7 @@
<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=28">
<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">
<!-- analytics intentionally omitted for draft page -->
@@ -47,7 +47,7 @@
<li><a href="/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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -594,72 +594,11 @@
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
<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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+7 -68
View File
@@ -40,7 +40,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -78,7 +78,7 @@
<li><a href="/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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -128,7 +128,7 @@
</li>
<li class="caps-item">
<h4><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-lock"/></svg> Helyreállítási kód, amit csak te ismersz</h4>
<p>A távoli mentésed titkosításának kulcsa egy helyreállítási kód, ami pontosan egyszer jelenik meg: a te képernyődön. Mi nem ismerjük, és nem tudjuk visszaállítani. Ez azt is jelenti, hogy a kód nélkül a távoli mentés nekünk sem olvasható: tedd el jól.</p>
<p>A távoli mentésed titkosításának kulcsa egy helyreállítási kód, ami pontosan egyszer jelenik meg: a te képernyődön. Én nem ismerem, és nem tudom visszaállítani. Ez azt is jelenti, hogy a kód nélkül a távoli mentés nekem sem olvasható: tedd el jól.</p>
</li>
<li class="caps-item">
<h4><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-rotate-cw"/></svg> Visszaállítás, ha baj van</h4>
@@ -141,15 +141,15 @@
</ul>
</div>
<div class="caps-group" id="gondoskodunk">
<h3>Amiről mi <span>gondoskodunk</span></h3>
<h3>Amiről én <span>gondoskodom</span></h3>
<ul class="caps-list">
<li class="caps-item">
<h4><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-stethoscope"/></svg> Távoli felügyelet, automatikus frissítés</h4>
<p>Figyeljük a doboz állapotát. A vezérlőpult magától frissül a legutóbbi kiadásra, és a doboz rendszere is megkapja a biztonsági frissítéseket. Neked nem kell csinálnod semmit. Ha valami elromlik, mi látjuk.</p>
<p>Figyelem a doboz állapotát. A vezérlőpult magától frissül a legutóbbi kiadásra, és a doboz rendszere is megkapja a biztonsági frissítéseket. Neked nem kell csinálnod semmit. Ha valami elromlik, én látom.</p>
</li>
<li class="caps-item">
<h4><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-rotate-cw"/></svg> Óvatos alkalmazásfrissítés</h4>
<p>Egy alkalmazás új verziója csak akkor jut el hozzád, ha előbb kipróbáltuk. Frissítés előtt friss mentés készül, és ha az új verzió nem indul el rendesen, a doboz magától visszaállítja az előzőt, az adataiddal együtt.</p>
<p>Egy alkalmazás új verziója csak akkor jut el hozzád, ha előbb kipróbáltam. Frissítés előtt friss mentés készül, és ha az új verzió nem indul el rendesen, a doboz magától visszaállítja az előzőt, az adataiddal együtt.</p>
</li>
</ul>
</div>
@@ -159,72 +159,11 @@
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
<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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+3 -64
View File
@@ -41,7 +41,7 @@
<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=28">
<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>
@@ -80,7 +80,7 @@
<li><a href="/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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -462,72 +462,11 @@
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
<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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;
+33 -94
View File
@@ -4,8 +4,8 @@
<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>Tesztelőket keresünk — otthoni szerver, saját felhő ingyen kipróbálva | Felhom.eu</title>
<meta name="description" content="Keresünk magyar háztartásokat, akik kipróbálják az otthoni szerverünket. A teszt alatt nincs díj, a beállítást mi végezzük, és a domaint is mi fizetjük két évre. Legfeljebb 5 háztartás.">
<title>Tesztelőket keresek — otthoni szerver, saját felhő ingyen kipróbálva | Felhom.eu</title>
<meta name="description" content="Magyar háztartásokat keresek, akik kipróbálják az otthoni szervert. A teszt alatt nincs díj, a beállítást én végzem, és a domaint is én fizetem két évre. Legfeljebb 5 háztartás.">
<meta name="keywords" content="otthoni szerver teszt, tesztelő jelentkezés, saját felhő, NAS otthonra, zárt teszt, otthoni szerver ingyen">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://felhom.eu/teszteles">
@@ -15,15 +15,15 @@
<meta property="og:type" content="article">
<meta property="og:url" content="https://felhom.eu/teszteles">
<meta property="og:title" content="Tesztelőket keresünk — saját felhő otthon, a teszt alatt ingyen">
<meta property="og:description" content="A fotóid és a dokumentumaid a saját gépeden, nálad. A beállítást mi végezzük, a domaint két évre mi fizetjük. Legfeljebb 5 háztartás.">
<meta property="og:title" content="Tesztelőket keresek — saját felhő otthon, a teszt alatt ingyen">
<meta property="og:description" content="A fotóid és a dokumentumaid a saját gépeden, nálad. A beállítást én végzem, a domaint két évre én fizetem. Legfeljebb 5 háztartás.">
<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">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Tesztelőket keresünk — saját felhő otthon">
<meta name="twitter:description" content="A teszt alatt nincs díj. A beállítást mi végezzük, a domaint két évre mi fizetjük.">
<meta name="twitter:title" content="Tesztelőket keresek — saját felhő otthon">
<meta name="twitter:description" content="A teszt alatt nincs díj. A beállítást én végzem, a domaint két évre én fizetem.">
<meta name="twitter:image" content="https://felhom.eu/assets/og-image.png">
<script type="application/ld+json">
@@ -40,7 +40,7 @@
<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=28">
<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="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -78,7 +78,7 @@
<li><a href="/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="/teszteles" class="btn btn-outline sidebar-cta">Jelentkezem tesztelőnek →</a>
<a href="/teszteles" class="btn btn-primary 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="/#hogyan-mukodik">Hogyan működik</a></li>
@@ -94,7 +94,7 @@
<div class="page-header">
<h1>Legyél <span>tesztelő</span></h1>
</div>
<p class="page-lede">Néhány magyar háztartással most kezdjük el élesben használni a rendszert. A teszt alatt nincs díj, a beállítást mi végezzük, és a domaint is mi fizetjük. Cserébe azt kérjük, mondd el, mi nem jó.</p>
<p class="page-lede">Néhány magyar háztartással most kezdem el élesben használni a rendszert. A teszt alatt nincs díj, a beállítást én végzem, és a domaint is én fizetem. Cserébe azt kérem, mondd el, mi nem jó.</p>
<!-- Kinek szól -->
@@ -102,12 +102,12 @@
<div class="container">
<div class="section-header">
<h2>Kinek <span>szól</span></h2>
<p>Nem informatikusokat keresünk – családokat, akik tényleg használni fogják</p>
<p>Nem informatikusokat keresek – családokat, akik tényleg használni fogják</p>
</div>
<div class="info-card">
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-home"/></svg> Egy magyar háztartás, aki haza akarja tenni az adatait</h3>
<p>Ha a fényképeid, a beszkennelt papírjaid és a filmjeid ma egy külföldi szolgáltatónál vannak, és szeretnéd, hogy inkább nálad, a saját gépeden legyenek – téged keresünk.</p>
<p><strong>Informatikai tudás nem kell.</strong> A szervert mi állítjuk be nálad, és mi is üzemeltetjük. Neked a böngészőből kell használnod, úgy, mint bármelyik másik oldalt.</p>
<p>Ha a fényképeid, a beszkennelt papírjaid és a filmjeid ma egy külföldi szolgáltatónál vannak, és szeretnéd, hogy inkább nálad, a saját gépeden legyenek – téged kereslek.</p>
<p><strong>Informatikai tudás nem kell.</strong> A szervert én állítom be nálad, és én is üzemeltetem. Neked a böngészőből kell használnod, úgy, mint bármelyik másik oldalt.</p>
<div class="highlight-box">
<p>Ami viszont kell: <strong>türelem</strong>. Ez teszt, nem kész termék. Találni fogsz hibát – pont ez a lényege.</p>
</div>
@@ -120,7 +120,7 @@
<div class="container">
<div class="section-header">
<h2>Mi kell <span>hozzá</span></h2>
<p>Három dolog – és a harmadikat mi fizetjük</p>
<p>Három dolog – és a harmadikat én fizetem</p>
</div>
<div class="info-card">
@@ -128,7 +128,7 @@
<!-- source: website/gyik.html FAQ „Milyen gépre van szükségem?" (quoted, not invented) -->
<p>A szerver a lakásodban áll, és folyamatosan megy – ezért fontos, hogy csendes és takarékos legyen. A GYIK-ből idézve: <em>„A legtöbb otthoni felhasználónak egy mini PC (pl. Intel N100 processzorral, 16-32 GB RAM-mal) tökéletesen megfelel. Ezek csendesek, energiatakarékosak (15-35W fogyasztás), és kompaktak – elfér a polcon a router mellett."</em></p>
<!-- source: website/gyik.html FAQ „Használhatom a már meglévő régi gépemet?" (quoted) -->
<p>Régi géped is lehet jó: <em>„Sok esetben igen! Egy korábbi asztali PC kiváló szerver lehet. Az egyeztetés során felmérjük, hogy a meglévő géped alkalmas-e a tervezett feladatokra (elég RAM, tároló kapacitás, megbízhatóság). Fontos szempont a fogyasztás és a zajszint – egy régi gamer PC működik ugyan, de havi szinten jóval többet fogyaszt, mint egy modern mini PC."</em></p>
<p>Régi géped is lehet jó: <em>„Sok esetben igen! Egy korábbi asztali PC kiváló szerver lehet. Az egyeztetés során felmérem, hogy a meglévő géped alkalmas-e a tervezett feladatokra (elég RAM, tároló kapacitás, megbízhatóság). Fontos szempont a fogyasztás és a zajszint – egy régi gamer PC működik ugyan, de havi szinten jóval többet fogyaszt, mint egy modern mini PC."</em></p>
<p>Ha nincs géped, az nem kizáró ok – az egyeztetésen átbeszéljük, mi a legjobb a te helyzetedben. Részletesebb konfigurációk a <a href="/technologiak">Technológiák</a> oldalon.</p>
</div>
@@ -139,13 +139,13 @@
</div>
<div class="info-card">
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-globe"/></svg> 3. Egy domain – amit mi fizetünk</h3>
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-globe"/></svg> 3. Egy domain – amit én fizetek</h3>
<!-- 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. Így a vezérlőpultod <code>felhom.a-te-domained.hu</code> lesz, és minden alkalmazás egy saját aldomaint kap.</p>
<p>A szerveredet és az alkalmazásaidat a <strong>saját domainedről</strong> éred el – nem egy felhom.eu alatti névről. Így a vezérlőpultod <code>felhom.a-te-domained.hu</code> lesz, és minden alkalmazás egy saját aldomaint kap.</p>
<div class="highlight-box">
<p><strong>A domain a te nevedre szól, és a díját a teszt alatt mi fizetjük – két évre.</strong> A domain tehát a tiéd: ha a teszt véget ér, vagy ha kiszállsz, <strong>a domain nálad marad</strong>, és onnantól te fizeted tovább. Nem kérjük vissza, és nem visszük magunkkal.</p>
<p><strong>A domain a te nevedre szól, és a díját a teszt alatt én fizetem – két évre.</strong> A domain tehát a tiéd: ha a teszt véget ér, vagy ha kiszállsz, <strong>a domain nálad marad</strong>, és onnantól te fizeted tovább. Nem kérem vissza, és nem viszem magammal.</p>
</div>
<p>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> – máshoz nem ér hozzá.</p>
<p>A domain DNS-beállításait a teszt alatt én kezelem, egy olyan hozzáféréssel, ami <strong>kizárólag ezt az egy domaint látja</strong> – máshoz nem ér hozzá.</p>
</div>
</div>
</section>
@@ -160,15 +160,15 @@
<div class="info-card">
<!-- source: documentation/legal/feltetelek-1.0.md §3 (same promises, no new ones) -->
<ul>
<li>Egy <strong>otthoni szervert beállítunk</strong> nálad, és működőképes állapotba hozzuk.</li>
<li><strong>Alkalmazásokat telepítünk</strong> rá a katalógusunkból, a vezérlőpulton keresztül.</li>
<li>Egy <strong>otthoni szervert beállítok</strong> nálad, és működőképes állapotba hozom.</li>
<li><strong>Alkalmazásokat telepítek</strong> rá a katalógusból, a vezérlőpulton keresztül.</li>
<li>Az alkalmazások <strong>elérhetők lesznek az interneten</strong> is.</li>
<li><strong>Figyeljük a szervert.</strong> Ha baj van, szólunk.</li>
<li><strong>Figyelem a szervert.</strong> Ha baj van, szólok.</li>
<li><strong>Mentés készül</strong> több szinten: a szerveren, és titkosítva egy távoli tárhelyen is.</li>
<li><strong>Frissítjük</strong> az alkalmazásokat és a rendszert, jellemzően éjszaka, egy általad beállítható időablakban.</li>
<li>És a fentiek szerint: <strong>a domaint két évre mi fizetjük.</strong></li>
<li><strong>Frissítem</strong> az alkalmazásokat és a rendszert, jellemzően éjszaka, egy általad beállítható időablakban.</li>
<li>És a fentiek szerint: <strong>a domaint két évre én fizetem.</strong></li>
</ul>
<p>Hogy mit <strong>nem</strong> ígérünk – rendelkezésre állást és válaszidőt nem vállalunk –, azt a <a href="/feltetelek">teszt feltételei</a> 5. pontja írja le. Érdemes elolvasni, mielőtt jelentkezel.</p>
<p>Hogy mit <strong>nem</strong> ígérek – rendelkezésre állást és válaszidőt nem vállalok –, azt a <a href="/feltetelek">teszt feltételei</a> 5. pontja írja le. Érdemes elolvasni, mielőtt jelentkezel.</p>
</div>
</div>
</section>
@@ -177,16 +177,16 @@
<section class="content-section alt-bg">
<div class="container">
<div class="section-header">
<h2>Mit <span>kérünk</span></h2>
<p>Pénzt nem – se tőled, se felénk</p>
<h2>Mit <span>kérek</span></h2>
<p>Pénzt nem – se tőled, se felém</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> Mondd el, mi nem jó</h3>
<p>Ez az egyetlen, amit cserébe kérünk. Mi zavaró, mi érthetetlen, mi nem működik. Egy „ezt a gombot nem találtam" ér nekünk a legtöbbet – abból tudjuk, mit kell kijavítani.</p>
<p>Ez az egyetlen, amit cserébe kérek. Mi zavaró, mi érthetetlen, mi nem működik. Egy „ezt a gombot nem találtam" ér nekem a legtöbbet – abból tudom, mit kell kijavítani.</p>
<h3 style="margin-top: 24px;"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-shield-check"/></svg> Tarts meg egy saját másolatot</h3>
<!-- source: documentation/legal/feltetelek-1.0.md §4 („Ezért kérünk valamit") -->
<p>A teszt feltételeiből: <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.</strong> Mentés készül és teszteljük is, de egy teszt alatt bármi elromolhat.</p>
<p>A teszt feltételeiből: <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.</strong> Mentés készül és tesztelem is, de egy teszt alatt bármi elromolhat.</p>
</div>
</div>
</section>
@@ -195,13 +195,13 @@
<section class="content-section">
<div class="container">
<div class="section-header">
<h2>Hány <span>helyünk van</span></h2>
<h2>Hány <span>helyem van</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> Legfeljebb 5 háztartás</h3>
<!-- source: operator ruling D2, 2026-10-10 (CONTEXT.md) -->
<p>A zárt tesztben <strong>legfeljebb 5 háztartás</strong> vesz részt. Ez azért ilyen kevés, mert egy ember üzemelteti a rendszert, és minden tesztelőre akarunk időt fordítani. A teszt <strong>most indul</strong>, így jelenleg <strong>mind az 5 hely szabad</strong>.</p>
<p>Ha betelik, azt megírjuk – és szólunk, amikor újra szabadul egy hely.</p>
<p>A zárt tesztben <strong>legfeljebb 5 háztartás</strong> vesz részt. Ez azért ilyen kevés, mert egy ember üzemelteti a rendszert, és minden tesztelőre akarok időt fordítani. A teszt <strong>most indul</strong>, így jelenleg <strong>mind az 5 hely szabad</strong>.</p>
<p>Ha betelik, azt megírom – és szólok, amikor újra szabadul egy hely.</p>
</div>
</div>
</section>
@@ -223,7 +223,7 @@
</div>
<div class="info-card">
<ul>
<li><a href="/feltetelek">A zárt teszt feltételei</a> – mit kapsz, mit nem ígérünk, és hogyan tudsz kiszállni.</li>
<li><a href="/feltetelek">A zárt teszt feltételei</a> – mit kapsz, mit nem ígérek, és hogyan tudsz kiszállni.</li>
<li><a href="/adatkezeles">Adatkezelési tájékoztató</a> – milyen adatot kezelünk, meddig, és miért.</li>
<li><a href="/gyik">GYIK</a> – a géptől a mentésekig a leggyakoribb kérdések.</li>
</ul>
@@ -233,72 +233,11 @@
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a> · <a href="https://www.facebook.com/felhom.eu">Facebook</a></p>
</div>
</footer>
</main>
<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>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
if(!b||!s||!k)return;