30b932bb10
gates / gates (push) Successful in 5m34s
Two new Hungarian pages, live on push: /adatkezeles (privacy notice) and /feltetelek (what the free closed test is, and is not). Operator rulings of 2026-10-09: no company exists yet, so the operator is named as a PRIVATE PERSON with no postal address and no phone; publish before the lawyer has seen it, because the site was collecting data with no notice at all; the full ASZF, the impresszum and the review wait for the company (R-802, R-809). - All 18 pages carry the operator, info@felhom.eu and both links in the footer. Counted, not assumed: 18 pages found = 18 with both links = 18 structurally valid. English footers say the legal texts are Hungarian. - The contact form stopped claiming something untrue. The old consent said "az adatokat harmadik felnek nem adjuk ki" while Resend, Cloudflare and Google carry the message. Both languages replaced; the link opens in a new tab so a filled form is not lost. - site_gates.py NO_TWIN gains the two pages ON PURPOSE, with the reason in a comment: an unreviewed English legal text would be worse than an honest pointer from the English footer. - documentation/legal/{adatkezelesi-tajekoztato,feltetelek}-1.0.md are the text of record, DERIVED from the published HTML so they cannot drift. The drafts are kept and marked superseded for the closed test. FOUR LOAD-BEARING CLAIMS WERE MEASURED, not copied from a vendor or a README: cookies zero, and no local storage - checked in the browser WITH A POSITIVE CONTROL (a probe cookie WAS visible to the same method) after the tracker fired; no Set-Cookie on any response beacon the exact Umami payload: site id, screen, language, title, url, referrer - no visitor identifier Cloudflare DNS only: the public A record 37.191.56.193 is not a Cloudflare address, so site traffic cannot be proxied fsn1 Falkenstein, Germany (Hetzner's own location list) Also measured: felhom-ep0-copy-gc.timer is installed and RAN SUCCESSFULLY (2026-10-09 08:00, exit 0), so "deleted within 30 days" is true today where on 2026-10-08 it was written but not switched on. Three retentions are stated as having NO deadline, deliberately and with the operator's word: website statistics, web server logs and contact messages have no automatic deletion, and the pages say so instead of promising a date nothing enforces. Every other period is enforced by configuration and cited. No placeholder survived onto either page (0 of "[[", control: the draft still has 36). The impresszum and the full ASZF are NOT published. R-813 -> NARROWED. R-915 unblocked: the operator enters the two URLs in the Meta app's Basic settings; the Live switch stays a separate decision. R-917 and R-920 -> DEFERRED on the operator's (c): park, publish as posts once posting starts.
332 lines
19 KiB
HTML
332 lines
19 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Backups — a 3-2-1 backup strategy for home servers | Felhom.eu</title>
|
||
<meta name="description" content="Professional 3-2-1 backups for a home server in Hungary. Automatic backups on three levels: on the box, on a second drive, and encrypted on remote storage.">
|
||
<meta name="keywords" content="backup, 3-2-1 backup rule, off-site backup, data backup, home server backup, encrypted backup, automatic backup">
|
||
<meta name="robots" content="index, follow">
|
||
<link rel="canonical" href="https://felhom.eu/en/backups">
|
||
<link rel="alternate" hreflang="hu" href="https://felhom.eu/biztonsagimentes">
|
||
<link rel="alternate" hreflang="en" href="https://felhom.eu/en/backups">
|
||
<link rel="alternate" hreflang="x-default" href="https://felhom.eu/biztonsagimentes">
|
||
|
||
<meta property="og:type" content="article">
|
||
<meta property="og:url" content="https://felhom.eu/en/backups">
|
||
<meta property="og:title" content="3-2-1 backups for a home server">
|
||
<meta property="og:description" content="Professional-grade data safety at home. Automatic backups, and an encrypted copy far away too.">
|
||
<meta property="og:image" content="https://felhom.eu/assets/og-image-en.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="3-2-1 backups for a home server">
|
||
<meta name="twitter:description" content="Professional data protection for your home server. Automatic backups, off-site copies.">
|
||
<meta name="twitter:image" content="https://felhom.eu/assets/og-image-en.png">
|
||
|
||
<script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "Article",
|
||
"headline": "A 3-2-1 backup strategy for home servers",
|
||
"description": "How to protect your data at home with a professional backup strategy.",
|
||
"author": {"@type": "Organization", "name": "Felhom.eu"},
|
||
"publisher": {"@type": "Organization", "name": "Felhom.eu", "logo": {"@type": "ImageObject", "url": "https://felhom.eu/assets/logo.png"}},
|
||
"mainEntityOfPage": "https://felhom.eu/en/backups"
|
||
}
|
||
</script>
|
||
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
|
||
<link rel="stylesheet" href="/assets/site.css?v=6">
|
||
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
|
||
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
|
||
</head>
|
||
<body class="page-biztonsagimentes">
|
||
<nav>
|
||
<div class="container">
|
||
<a href="/en/" class="logo">
|
||
<img src="/assets/logo.png" alt="Felhom.eu logo">
|
||
<span class="logo-text">felhom.eu</span>
|
||
</a>
|
||
<ul class="nav-links">
|
||
<li><a href="/en/#services">Services</a></li>
|
||
<li><a href="/en/apps">Apps</a></li>
|
||
<li><a href="/en/technology">Technology</a></li>
|
||
<li><a href="/en/backups" class="active">Backups</a></li>
|
||
<li><a href="/en/faq">FAQ</a></li>
|
||
<li><a href="/en/contact">Contact</a></li>
|
||
<li class="lang-globe-li"><details class="lang-globe"><summary class="lang-globe-btn" aria-label="Language" title="Language"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-globe"/></svg></summary><ul class="lang-globe-menu"><li><a href="/biztonsagimentes" lang="hu" hreflang="hu" class="lang-globe-item">Magyar</a></li><li><a href="/en/backups" lang="en" hreflang="en" class="lang-globe-item current" aria-current="true">English</a></li></ul></details></li>
|
||
</ul>
|
||
<button class="hamburger" id="hamburger" aria-label="Open menu" aria-expanded="false">
|
||
<span class="hamburger-box">
|
||
<span class="hamburger-line"></span>
|
||
<span class="hamburger-line"></span>
|
||
<span class="hamburger-line"></span>
|
||
</span>
|
||
</button>
|
||
</div>
|
||
</nav>
|
||
<div class="mobile-overlay" id="mobileOverlay"></div>
|
||
|
||
<main>
|
||
<section class="page-header">
|
||
<div class="container">
|
||
<h1><span>Backups</span></h1>
|
||
<p>Your data's safety comes first. With a professional backup strategy, we make sure there is something to bring back from after a fault or an accident.</p>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- Bevezető -->
|
||
<section class="content-section">
|
||
<div class="container">
|
||
<div class="info-card">
|
||
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-circle-help"/></svg> Why does it matter?</h3>
|
||
<p>When someone picks a cloud service – Google Drive, iCloud or any other – one of the most important things is <strong>data safety</strong>. The question is not whether someone can get at our data, but whether it <strong>survives</strong>.</p>
|
||
<p>The big providers solve this with billion-dollar infrastructure: several data centres, redundant storage, automatic backups. But can a home server be just as safe?</p>
|
||
<div class="highlight-box">
|
||
<p><strong>The answer: yes.</strong> With the right backup strategy, your home server can be as safe as any cloud provider – and you are in charge of everything.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- 3-2-1 szabály -->
|
||
<section class="content-section alt-bg">
|
||
<div class="container">
|
||
<div class="section-header">
|
||
<h2>The 3-2-1 <span>backup rule</span></h2>
|
||
<p>The industry standard that professional system administrators and companies use around the world</p>
|
||
</div>
|
||
|
||
<div class="backup-rule">
|
||
<div class="rule-number">3</div>
|
||
<div class="rule-content">
|
||
<h3>Three copies of your data</h3>
|
||
<p>Always keep at least three copies of everything important: the original and two backups. If one is damaged or lost, there are still two in reserve.</p>
|
||
<div class="example-box">
|
||
<div class="label">Example</div>
|
||
<p>Your family photos are on the server (1), on an external hard drive (2), and in a remote place (3).</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="backup-rule">
|
||
<div class="rule-number">2</div>
|
||
<div class="rule-content">
|
||
<h3>Two different kinds of storage</h3>
|
||
<p>Keep your data on at least two kinds of storage device. Different devices fail in different ways – if one kind breaks, the other is probably fine.</p>
|
||
<div class="example-box">
|
||
<div class="label">Example</div>
|
||
<p>You keep your data on the server's internal SSD, and the backup goes to an external HDD or a NAS.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="backup-rule">
|
||
<div class="rule-number">1</div>
|
||
<div class="rule-content">
|
||
<h3>One off-site (remote) copy</h3>
|
||
<p>Keep at least one copy in a different physical place. That protects against local disasters: a fire, a flood, a burglary or even a lightning strike cannot put all your data at risk.</p>
|
||
<div class="example-box">
|
||
<div class="label">Example</div>
|
||
<p>The backup is copied on its own to a friend's or relative's server, or goes encrypted into the cloud.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="backup-diagram">
|
||
<h3>What it looks like in practice</h3>
|
||
<div class="diagram-visual">
|
||
<div class="diagram-node primary">
|
||
<div class="icon"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-monitor"/></svg></div>
|
||
<div class="label">Server</div>
|
||
<div class="sublabel">Original data</div>
|
||
</div>
|
||
<div class="diagram-arrow">→</div>
|
||
<div class="diagram-node">
|
||
<div class="icon"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-hard-drive"/></svg></div>
|
||
<div class="label">Local backup</div>
|
||
<div class="sublabel">External HDD/NAS</div>
|
||
</div>
|
||
<div class="diagram-arrow">→</div>
|
||
<div class="diagram-node">
|
||
<div class="icon"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-globe"/></svg></div>
|
||
<div class="label">Off-site backup</div>
|
||
<div class="sublabel">Remote place</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- Offsite megoldások -->
|
||
<section class="content-section">
|
||
<div class="container">
|
||
<div class="section-header">
|
||
<h2>Off-site <span>backup options</span></h2>
|
||
<p>The "1" in the 3-2-1 rule – the most important, and often the most neglected</p>
|
||
</div>
|
||
|
||
<div class="methods-grid">
|
||
<div class="method-card">
|
||
<div class="method-icon"><svg class="ico-tile" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-users"/></svg></div>
|
||
<h3>The "buddy system"</h3>
|
||
<p>The simplest and cheapest option: swap backups with someone you trust. You back up to their server, they back up to yours.</p>
|
||
<ul class="method-pros">
|
||
<li>No monthly fee</li>
|
||
<li>Full control over the data</li>
|
||
<li>Safety for both of you</li>
|
||
<li>End-to-end encryption is possible</li>
|
||
</ul>
|
||
<div class="example-box">
|
||
<div class="label">How does it work?</div>
|
||
<p>Encrypted backups sync on their own over a VPN connection.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="method-card">
|
||
<div class="method-icon"><svg class="ico-tile" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-building-2"/></svg></div>
|
||
<h3>Home ↔ Office</h3>
|
||
<p>If you have a workplace or your own office, use it! Two sites give you natural distance.</p>
|
||
<ul class="method-pros">
|
||
<li>Uses what is already there</li>
|
||
<li>A safe, familiar place</li>
|
||
<li>Quick to recover from when needed</li>
|
||
</ul>
|
||
<div class="example-box">
|
||
<div class="label">Tip</div>
|
||
<p>A small, quiet mini PC in a corner of the office can be a perfect backup target.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="method-card">
|
||
<div class="method-icon"><svg class="ico-tile" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-cloud"/></svg></div>
|
||
<h3>Encrypted cloud backup</h3>
|
||
<p>If there is no trusted friend or second site, the cloud is the answer. Important: the data is encrypted before it is uploaded!</p>
|
||
<ul class="method-pros">
|
||
<li>Professional infrastructure</li>
|
||
<li>Storage spread across places</li>
|
||
<li>No hardware needed</li>
|
||
</ul>
|
||
<ul class="method-pros method-cons">
|
||
<li>A monthly or yearly fee (depending on how much is stored)</li>
|
||
</ul>
|
||
<div class="example-box">
|
||
<div class="label">Note</div>
|
||
<p>The storage fee depends on how much data is backed up. This is the option a Felhom box uses.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- Mi hogyan csináljuk -->
|
||
<section class="content-section alt-bg">
|
||
<div class="container">
|
||
<div class="section-header">
|
||
<h2>How <span>we do it</span></h2>
|
||
<p>Backups are set up by default on every server we install</p>
|
||
</div>
|
||
|
||
<div class="info-card">
|
||
<h3><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-wrench"/></svg> Automatic backups</h3>
|
||
<p>Every night the server makes backups by itself, on three levels: <strong>on the box</strong>, on a <strong>second drive</strong> (if there is one), and <strong>encrypted on remote storage</strong>. You do not have to remember anything – the system takes care of it.</p>
|
||
<p>The backups are incremental: only the changes are saved. That saves space and time, and a full restore is still there when you need it.</p>
|
||
|
||
<div class="highlight-box">
|
||
<p><svg class="ico" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-monitor"/></svg> <strong>Not only the data:</strong> thanks to the Proxmox base, not only your files and databases are backed up but your <strong>whole system</strong> too — the whole box goes into a backup, and it can be restored from it. If the box itself breaks, your apps' data can be brought back from the encrypted remote backup onto the reinstalled system — with the recovery code.</p>
|
||
</div>
|
||
|
||
<div class="highlight-box">
|
||
<p><strong>Where the remote backup goes:</strong> on a Felhom box the remote copy goes, encrypted, to storage we provide. The "buddy system" and the office are general options for the 3-2-1 rule — we do not set them up today.</p>
|
||
</div>
|
||
|
||
<h3 style="margin-top: 24px;"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-lock"/></svg> The recovery code — only you know it</h3>
|
||
<p>Your remote backup is encrypted, and the key to the encryption is a <strong>recovery code</strong>. The code appears exactly once: on your screen, when it is set up. We keep no copy of it.</p>
|
||
<p>This is a deliberate choice, and it has two sides. One: <strong>nobody</strong> but you can read your remote backup — not even us. The other: if the box is destroyed and the code is lost too, then <strong>we cannot restore</strong> the remote backup either. So the code goes on paper, and somewhere safe.</p>
|
||
|
||
<h3 style="margin-top: 24px;"><svg class="ico-lg" aria-hidden="true"><use href="/assets/icons.svg?v=1#i-chart-column"/></svg> Monitoring and notifications</h3>
|
||
<p>We watch the backups all the time. If there is a problem – a failed backup, storage filling up, a connection fault – it shows up in our monitoring, and an e-mail goes out about it. One aim of the closed test is to polish these notifications in real use.</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- CTA -->
|
||
<section class="cta-section">
|
||
<div class="container">
|
||
<h2>A question about <span>backups?</span></h2>
|
||
<p>Let's talk about what is best in your situation. We help you find the balance between safety and cost.</p>
|
||
<a href="/en/contact" class="cta-button">Get in touch →</a>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
|
||
<footer>
|
||
<div class="container">
|
||
<p>© 2026 felhom.eu — Your own cloud, your own rules. Felhom serves households in Hungary.</p>
|
||
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
|
||
</div>
|
||
</footer>
|
||
<script>
|
||
(function() {
|
||
var hamburger = document.getElementById('hamburger');
|
||
var navLinks = document.querySelector('.nav-links');
|
||
var overlay = document.getElementById('mobileOverlay');
|
||
var body = document.body;
|
||
|
||
if (!hamburger || !navLinks || !overlay) {
|
||
console.warn('[mobile-menu] Missing elements:', {
|
||
hamburger: !!hamburger,
|
||
navLinks: !!navLinks,
|
||
overlay: !!overlay
|
||
});
|
||
return;
|
||
}
|
||
|
||
function openMenu() {
|
||
hamburger.classList.add('is-active');
|
||
navLinks.classList.add('is-open');
|
||
overlay.classList.add('is-visible');
|
||
body.classList.add('menu-open');
|
||
hamburger.setAttribute('aria-expanded', 'true');
|
||
hamburger.setAttribute('aria-label', 'Close menu');
|
||
}
|
||
|
||
function closeMenu() {
|
||
hamburger.classList.remove('is-active');
|
||
navLinks.classList.remove('is-open');
|
||
overlay.classList.remove('is-visible');
|
||
body.classList.remove('menu-open');
|
||
hamburger.setAttribute('aria-expanded', 'false');
|
||
hamburger.setAttribute('aria-label', 'Open menu');
|
||
}
|
||
|
||
hamburger.addEventListener('click', function() {
|
||
if (navLinks.classList.contains('is-open')) {
|
||
closeMenu();
|
||
} else {
|
||
openMenu();
|
||
}
|
||
});
|
||
|
||
overlay.addEventListener('click', closeMenu);
|
||
|
||
navLinks.querySelectorAll('a').forEach(function(link) {
|
||
link.addEventListener('click', closeMenu);
|
||
});
|
||
|
||
document.addEventListener('keydown', function(e) {
|
||
if (e.key === 'Escape' && navLinks.classList.contains('is-open')) {
|
||
closeMenu();
|
||
}
|
||
});
|
||
|
||
window.addEventListener('resize', function() {
|
||
if (window.innerWidth > 900 && navLinks.classList.contains('is-open')) {
|
||
closeMenu();
|
||
}
|
||
});
|
||
})();
|
||
</script>
|
||
</body>
|
||
</html> |