Files
felhom.eu/website/technologiak.html
T

1100 lines
48 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="hu">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Technológiák — Docker, Felhő Felügyelő, Proxmox, Kubernetes otthoni szerverhez | Felhom.eu</title>
<meta name="description" content="Ipari szintű technológiák otthon: Docker konténerek, Felhő Felügyelő, Proxmox virtualizáció, Kubernetes. SSL, tűzfal, VPN — professzionális biztonság."> <link rel="preconnect" href="https://fonts.googleapis.com">
<meta name="keywords" content="Docker, Felhő Felügyelő, Proxmox, Kubernetes, k3s, konténer, virtualizáció, reverse proxy, SSL, tűzfal, VPN, otthoni szerver technológia">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://felhom.eu/technologiak">
<meta property="og:type" content="article">
<meta property="og:url" content="https://felhom.eu/technologiak">
<meta property="og:title" content="Professzionális technológiák otthoni szerverhez">
<meta property="og:description" content="Docker, Felhő Felügyelő, Proxmox, Kubernetes — ipari szintű megoldások otthoni környezetben.">
<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="Professzionális technológiák otthoni szerverhez">
<meta name="twitter:description" content="Docker, Felhő Felügyelő, Proxmox, Kubernetes — ipari megoldások, otthoni környezetben.">
<meta name="twitter:image" content="https://felhom.eu/assets/og-image.png">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Alkalmazott technológiák otthoni szerverekhez",
"description": "Docker konténerek, Felhő Felügyelő, Proxmox virtualizáció és Kubernetes megoldások otthoni szerverre.",
"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/technologiak"
}
</script>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
<link rel="icon" type="image/png" href="/assets/logo.png">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
<style>
/* ============================================
UNIFIED CSS - felhom.eu
============================================ */
/* --- CSS Variables --- */
:root {
--bg-primary: #0d1117;
--bg-secondary: #161b22;
--bg-card: #1c2128;
--text-primary: #e6edf3;
--text-secondary: #8b949e;
--text-muted: #6e7681;
--accent-blue: #0088cc;
--accent-light: #00aaff;
--accent-glow: rgba(0, 136, 204, 0.3);
--border-color: #30363d;
--success-green: #238636;
--warning-orange: #d29922;
}
/* --- Reset & Base --- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
background: var(--bg-primary);
color: var(--text-primary);
line-height: 1.6;
min-height: 100vh;
}
body::before {
content: '';
position: fixed;
top: 0; left: 0;
width: 100%; height: 100%;
background-image:
linear-gradient(rgba(0, 136, 204, 0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(0, 136, 204, 0.03) 1px, transparent 1px);
background-size: 50px 50px;
pointer-events: none;
z-index: -1;
}
/* --- Layout --- */
.container { max-width: 1100px; margin: 0 auto; padding: 0 24px; }
/* --- Navigation --- */
nav {
position: fixed;
top: 0; left: 0; right: 0;
padding: 20px 0;
background: rgba(13, 17, 23, 0.9);
backdrop-filter: blur(12px);
border-bottom: 1px solid var(--border-color);
z-index: 200;
}
nav .container { display: flex; justify-content: space-between; align-items: center; }
.logo { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.logo img { height: 40px; width: auto; }
.logo-text { font-size: 1.5rem; font-weight: 700; color: var(--accent-light); letter-spacing: -0.02em; }
.nav-links { display: flex; gap: 32px; list-style: none; }
.nav-links a {
color: var(--text-secondary);
text-decoration: none;
font-weight: 500;
font-size: 0.95rem;
transition: color 0.2s ease;
}
.nav-links a:hover,
.nav-links a.active { color: var(--accent-light); }
/* --- Typography with gradient span support --- */
h1 span, h2 span, h3 span, h4 span {
background: linear-gradient(135deg, var(--accent-light), var(--accent-blue));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* --- Page Header --- */
.page-header { padding: 140px 0 60px; text-align: center; }
.page-header h1 { font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; margin-bottom: 16px; letter-spacing: -0.02em; }
.page-header p { font-size: 1.1rem; color: var(--text-secondary); max-width: 700px; margin: 0 auto; }
/* --- Section Headers --- */
.section-header { text-align: center; margin-bottom: 48px; }
.section-header h2 { font-size: 2rem; font-weight: 700; margin-bottom: 16px; letter-spacing: -0.02em; }
.section-header p { color: var(--text-secondary); font-size: 1.1rem; max-width: 700px; margin: 0 auto; }
/* --- Content Sections --- */
.content-section { padding: 80px 0; }
.content-section.alt-bg { background: var(--bg-secondary); }
/* --- Buttons --- */
.cta-button {
display: inline-flex;
align-items: center;
gap: 8px;
background: linear-gradient(135deg, var(--accent-blue), var(--accent-light));
color: white;
padding: 16px 32px;
border-radius: 8px;
text-decoration: none;
font-weight: 600;
font-size: 1rem;
transition: transform 0.2s ease, box-shadow 0.2s ease;
box-shadow: 0 4px 20px var(--accent-glow);
}
.cta-button:hover { transform: translateY(-2px); box-shadow: 0 8px 30px var(--accent-glow); }
.cta-button-secondary {
display: inline-flex;
align-items: center;
gap: 8px;
background: transparent;
color: var(--accent-light);
padding: 14px 28px;
border: 2px solid var(--accent-blue);
border-radius: 8px;
text-decoration: none;
font-weight: 600;
font-size: 1rem;
transition: all 0.2s ease;
margin-left: 16px;
}
.cta-button-secondary:hover { background: var(--accent-blue); color: white; }
/* --- Footer --- */
footer {
padding: 40px 0;
border-top: 1px solid var(--border-color);
text-align: center;
}
footer p { color: var(--text-secondary); font-size: 0.9rem; }
/* --- TOC Navigation (Content, not nav) --- */
.toc-nav {
background: var(--bg-card);
border: 1px solid var(--border-color);
border-radius: 12px;
padding: 24px 32px;
margin-bottom: 48px;
}
.toc-nav h3 {
font-size: 0.85rem;
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--text-muted);
margin-bottom: 16px;
}
.toc-links {
display: flex;
flex-wrap: wrap;
gap: 12px 24px;
list-style: none;
}
.toc-links a {
color: var(--accent-light);
text-decoration: none;
font-size: 0.95rem;
font-weight: 500;
transition: color 0.2s ease;
}
.toc-links a:hover { color: var(--text-primary); }
/* --- Info Cards --- */
.info-card {
background: var(--bg-card);
border: 1px solid var(--border-color);
border-radius: 16px;
padding: 40px;
margin-bottom: 32px;
}
.info-card:last-child { margin-bottom: 0; }
.info-card h3 {
font-size: 1.4rem;
margin-bottom: 20px;
color: var(--text-primary);
display: flex;
align-items: center;
gap: 12px;
}
.info-card h3 .icon { font-size: 1.6rem; }
.info-card p {
color: var(--text-secondary);
font-size: 1rem;
line-height: 1.8;
margin-bottom: 16px;
}
.info-card p:last-child { margin-bottom: 0; }
/* --- Boxes --- */
.highlight-box {
background: linear-gradient(135deg, rgba(0, 136, 204, 0.1), rgba(0, 136, 204, 0.05));
border: 1px solid var(--accent-blue);
border-radius: 12px;
padding: 20px 24px;
margin: 20px 0;
}
.highlight-box p { color: var(--text-primary); margin: 0; }
.highlight-box strong { color: var(--accent-light); }
.warning-box {
background: linear-gradient(135deg, rgba(210, 153, 34, 0.1), rgba(210, 153, 34, 0.05));
border: 1px solid var(--warning-orange);
border-radius: 12px;
padding: 20px 24px;
margin: 20px 0;
}
.warning-box p { color: var(--text-primary); margin: 0; }
/* --- Feature Lists --- */
.feature-list {
list-style: none;
margin: 20px 0;
}
.feature-list li {
color: var(--text-secondary);
font-size: 0.95rem;
display: flex;
align-items: flex-start;
gap: 12px;
margin-bottom: 12px;
line-height: 1.6;
}
.feature-list li::before {
content: '✓';
color: var(--success-green);
font-weight: bold;
flex-shrink: 0;
margin-top: 2px;
}
.feature-list.cons li::before {
content: '✗';
color: var(--warning-orange);
}
/* --- Comparison Grid --- */
.comparison-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 24px;
margin-top: 32px;
}
.comparison-card {
background: var(--bg-card);
border: 1px solid var(--border-color);
border-radius: 16px;
padding: 32px;
transition: border-color 0.3s ease, transform 0.3s ease;
position: relative;
}
.comparison-card:hover {
border-color: var(--accent-blue);
transform: translateY(-4px);
}
.comparison-card.recommended {
border-color: var(--accent-light);
}
.comparison-card.recommended::before {
content: '★ Ajánlott';
position: absolute;
top: -12px;
left: 24px;
background: linear-gradient(135deg, var(--accent-blue), var(--accent-light));
color: white;
padding: 4px 12px;
border-radius: 12px;
font-size: 0.75rem;
font-weight: 600;
}
.comparison-card .card-icon { font-size: 2.5rem; margin-bottom: 16px; }
.comparison-card h3 { font-size: 1.3rem; margin-bottom: 8px; color: var(--text-primary); }
.comparison-card .subtitle { font-size: 0.9rem; color: var(--accent-light); margin-bottom: 16px; }
.comparison-card p { color: var(--text-secondary); font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px; }
.use-case-tag {
display: inline-block;
background: rgba(0, 136, 204, 0.15);
color: var(--accent-light);
padding: 4px 10px;
border-radius: 6px;
font-size: 0.8rem;
font-weight: 500;
margin-right: 8px;
margin-bottom: 8px;
}
/* --- Hardware Cards --- */
.hardware-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 24px;
}
.hardware-card {
background: var(--bg-card);
border: 1px solid var(--border-color);
border-radius: 16px;
overflow: hidden;
transition: border-color 0.3s ease, transform 0.3s ease;
}
.hardware-card:hover { border-color: var(--accent-blue); transform: translateY(-4px); }
.hardware-card-header {
background: linear-gradient(135deg, rgba(0, 136, 204, 0.1), rgba(0, 136, 204, 0.05));
padding: 24px;
border-bottom: 1px solid var(--border-color);
text-align: center;
}
.hardware-card-header .hw-icon { font-size: 3rem; margin-bottom: 12px; }
.hardware-card-header h3 { font-size: 1.2rem; margin-bottom: 4px; }
.hardware-card-header .hw-subtitle { font-size: 0.85rem; color: var(--text-muted); }
.hardware-card-body { padding: 24px; }
.hardware-card-body p { color: var(--text-secondary); font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px; }
.spec-list { list-style: none; margin: 16px 0; }
.spec-list li {
display: flex;
justify-content: space-between;
padding: 8px 0;
border-bottom: 1px solid var(--border-color);
font-size: 0.9rem;
}
.spec-list li:last-child { border-bottom: none; }
.spec-list .spec-label { color: var(--text-muted); }
.spec-list .spec-value { color: var(--text-primary); font-weight: 500; }
.price-range {
text-align: center;
margin-top: 16px;
padding-top: 16px;
border-top: 1px solid var(--border-color);
}
.price-range .label { font-size: 0.8rem; color: var(--text-muted); margin-bottom: 4px; }
.price-range .price { font-size: 1.3rem; font-weight: 700; color: var(--accent-light); }
/* --- Stack Diagram --- */
.stack-diagram {
background: var(--bg-card);
border: 1px solid var(--border-color);
border-radius: 16px;
padding: 40px;
margin: 32px 0;
}
.stack-diagram h3 { text-align: center; font-size: 1.2rem; margin-bottom: 32px; color: var(--text-secondary); }
.stack-layers {
display: flex;
flex-direction: column;
gap: 12px;
max-width: 600px;
margin: 0 auto;
}
.stack-layer { display: flex; align-items: center; gap: 16px; }
.layer-label { width: 120px; font-size: 0.8rem; color: var(--text-muted); text-align: right; flex-shrink: 0; }
.layer-content {
flex: 1;
background: var(--bg-secondary);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 16px 20px;
text-align: center;
font-weight: 500;
transition: all 0.3s ease;
}
.layer-content:hover { border-color: var(--accent-blue); transform: scale(1.02); }
.layer-content.highlight { background: rgba(0, 136, 204, 0.15); border-color: var(--accent-blue); }
.layer-content .layer-name { font-size: 1rem; color: var(--text-primary); margin-bottom: 4px; }
.layer-content .layer-tech { font-size: 0.8rem; color: var(--text-muted); }
/* --- Network Flow --- */
.network-flow {
display: flex;
justify-content: center;
align-items: center;
gap: 16px;
flex-wrap: wrap;
margin: 24px 0;
}
.flow-node {
background: var(--bg-secondary);
border: 1px solid var(--border-color);
border-radius: 10px;
padding: 16px 24px;
text-align: center;
min-width: 120px;
}
.flow-node .node-icon { font-size: 1.5rem; margin-bottom: 8px; }
.flow-node .node-label { font-size: 0.85rem; color: var(--text-primary); font-weight: 500; }
.flow-node .node-tech { font-size: 0.75rem; color: var(--text-muted); }
.flow-arrow { font-size: 1.2rem; color: var(--accent-blue); }
/* --- CTA Section --- */
.cta-section { padding: 80px 0; text-align: center; }
.cta-section h2 { font-size: 2rem; font-weight: 700; margin-bottom: 16px; }
.cta-section p { color: var(--text-secondary); font-size: 1.1rem; margin-bottom: 32px; max-width: 600px; margin-left: auto; margin-right: auto; }
/* --- Responsive --- */
@media (max-width: 900px) {
.toc-links { flex-direction: column; gap: 8px; }
.layer-label { width: 80px; font-size: 0.7rem; }
.network-flow { flex-direction: column; }
.flow-arrow { transform: rotate(90deg); }
.cta-button-secondary { margin-left: 0; margin-top: 16px; display: block; }
}
@media (max-width: 600px) {
.page-header { padding: 120px 0 40px; }
.info-card { padding: 24px; }
.content-section { padding: 60px 0; }
}
/* --- Hamburger Button --- */
.hamburger {
display: none;
background: none;
border: none;
cursor: pointer;
padding: 8px;
z-index: 200;
-webkit-tap-highlight-color: transparent;
}
.hamburger-box {
width: 28px;
height: 20px;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.hamburger-line {
display: block;
width: 100%;
height: 2px;
background: var(--text-primary);
border-radius: 2px;
transition: transform 0.3s ease, opacity 0.3s ease;
transform-origin: center;
}
/* Hamburger → X animation */
.hamburger.is-active .hamburger-line:nth-child(1) {
transform: translateY(9px) rotate(45deg);
}
.hamburger.is-active .hamburger-line:nth-child(2) {
opacity: 0;
}
.hamburger.is-active .hamburger-line:nth-child(3) {
transform: translateY(-9px) rotate(-45deg);
}
/* --- Mobile Menu Overlay --- */
.mobile-overlay {
display: none;
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 140;
opacity: 0;
transition: opacity 0.3s ease;
}
.mobile-overlay.is-visible {
opacity: 1;
}
/* --- Mobile Nav Styles --- */
@media (max-width: 900px) {
.hamburger {
display: block;
}
.nav-links {
display: flex;
flex-direction: column;
position: fixed;
top: 0;
right: -280px;
width: 280px;
height: 100vh;
height: 100dvh;
background: var(--bg-secondary);
border-left: 1px solid var(--border-color);
padding: 80px 32px 32px;
gap: 0;
z-index: 150;
transition: right 0.3s ease;
overflow-y: auto;
}
.nav-links.is-open {
right: 0;
}
.nav-links li {
border-bottom: 1px solid var(--border-color);
}
.nav-links a {
display: block;
padding: 16px 0;
font-size: 1.05rem;
}
.mobile-overlay {
display: block;
pointer-events: none;
}
.mobile-overlay.is-visible {
pointer-events: auto;
}
/* Prevent body scroll when menu is open */
body.menu-open {
overflow: hidden;
}
}
</style>
</head>
<body>
<nav>
<div class="container">
<a href="/" 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="/#szolgaltatasok">Szolgáltatások</a></li>
<li><a href="/alkalmazasok">Alkalmazások</a></li>
<li><a href="/technologiak" class="active">Technológiák</a></li>
<li><a href="/biztonsagimentes">Mentések</a></li>
<li><a href="/gyik">GYIK</a></li>
<li><a href="/kapcsolat">Kapcsolat</a></li>
</ul>
<button class="hamburger" id="hamburger" aria-label="Menü megnyitása" 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>Alkalmazott <span>Technológiák</span></h1>
<p>Modern, bevált megoldások az otthoni szerverek üzemeltetéséhez. Íme, hogyan építjük fel a rendszereket.</p>
</div>
</section>
<!-- Table of Contents -->
<section class="content-section" style="padding-top: 0;">
<div class="container">
<div class="toc-nav">
<h3>Tartalom</h3>
<ul class="toc-links">
<li><a href="#kontenerek">Miért konténerek?</a></li>
<li><a href="#single-node">Egyszerű telepítés (Felhő Felügyelő)</a></li>
<li><a href="#proxmox">Virtualizáció (Proxmox)</a></li>
<li><a href="#kubernetes">Magas rendelkezésre állás (Kubernetes)</a></li>
<li><a href="#halozat">Hálózat és biztonság</a></li>
<li><a href="#tarolas">Tárolás</a></li>
<li><a href="#hardver">Hardver konfigurációk</a></li>
</ul>
</div>
</div>
</section>
<!-- Miért konténerek? -->
<section class="content-section alt-bg" id="kontenerek">
<div class="container">
<div class="section-header">
<h2>Miért <span>konténerek?</span></h2>
<p>A modern szerverüzemeltetés alapköve</p>
</div>
<div class="info-card">
<h3><span class="icon">📦</span> Mi az a konténer?</h3>
<p>Képzeld el, hogy minden alkalmazás egy saját, elszigetelt „dobozban" fut. Ez a doboz tartalmazza az alkalmazást és minden függőségét így garantáltan ugyanúgy működik bárhol, bármilyen szerveren.</p>
<p>A konténerek (Docker) forradalmasították a szerverüzemeltetést: egyszerűbb telepítés, könnyebb frissítés, és megbízhatóbb működés.</p>
<div class="highlight-box">
<p><strong>Analógia:</strong> Mintha minden alkalmazás a saját lakásában élne egy társasházban. Van saját bejárata, saját közműórája, és nem zavarja a szomszédokat de mégis egy épületen osztoznak.</p>
</div>
</div>
<div class="comparison-grid">
<div class="comparison-card">
<div class="card-icon">🖥️</div>
<h3>Hagyományos telepítés</h3>
<div class="subtitle">„Közvetlenül a rendszerre"</div>
<p>Az alkalmazások közvetlenül az operációs rendszerre települnek. Ütközhetnek egymással, nehéz eltávolítani őket.</p>
<ul class="feature-list cons">
<li>Függőségek összeakadhatnak</li>
<li>Nehéz reprodukálni más szerveren</li>
<li>Frissítés = kockázat</li>
<li>Eltávolítás „szemetet" hagy</li>
</ul>
</div>
<div class="comparison-card recommended">
<div class="card-icon">🐳</div>
<h3>Konténerizált telepítés</h3>
<div class="subtitle">Docker / Podman</div>
<p>Minden alkalmazás elszigetelten fut. Tiszta, rendezett, könnyen kezelhető rendszer.</p>
<ul class="feature-list">
<li>Teljesen izolált alkalmazások</li>
<li>Egy parancs = telepítés</li>
<li>Egyszerű frissítés és visszaállás</li>
<li>Bárhol reprodukálható</li>
</ul>
</div>
</div>
</div>
</section>
<!-- Single Node - Felhő Felügyelő -->
<section class="content-section" id="single-node">
<div class="container">
<div class="section-header">
<h2>Egyszerű telepítés: <span>Felhő Felügyelő</span></h2>
<p>A legtöbb otthoni felhasználónak ez a tökéletes választás</p>
</div>
<div class="info-card">
<h3><span class="icon">🎯</span> Mikor válaszd ezt?</h3>
<p>Ha egy szervered van és egyszerű, vizuális felületet szeretnél a konténerek kezeléséhez. A Felhő Felügyelő egy kimondottan otthoni szerverekre tervezett, magyar nyelvű webes felület, ahol pár kattintással telepíthetsz alkalmazásokat.</p>
<ul class="feature-list">
<li>Magyar nyelvű webes felület nincs szükség parancssor ismeretre</li>
<li>Alkalmazás katalógus 45+ app telepíthető pár kattintással</li>
<li>Erőforrás figyelés memória és tárhely használat valós időben</li>
<li>Automatikus mentések adatbázis és fájl backup, állapotfigyeléssel</li>
<li>Alkalmazás frissítések egy kattintással, naplózással</li>
<li>Rendszer monitoring folyamatos egészségfigyelés, riasztások</li>
</ul>
<div class="highlight-box">
<p><strong>Tökéletes:</strong> Otthoni média szerver, családi felhő, személyes projektek, kis irodai használat.</p>
</div>
</div>
<div class="stack-diagram">
<h3>Egyszerű telepítés felépítése</h3>
<div class="stack-layers">
<div class="stack-layer">
<div class="layer-label">Alkalmazások</div>
<div class="layer-content">
<div class="layer-name">Nextcloud, Jellyfin, Immich...</div>
<div class="layer-tech">Konténerizált appok</div>
</div>
</div>
<div class="stack-layer">
<div class="layer-label">Menedzsment</div>
<div class="layer-content highlight">
<div class="layer-name">Felhő Felügyelő</div>
<div class="layer-tech">Magyar nyelvű kezelő, mentés, monitoring</div>
</div>
</div>
<div class="stack-layer">
<div class="layer-label">Konténer motor</div>
<div class="layer-content">
<div class="layer-name">Docker</div>
<div class="layer-tech">Konténer futtatás</div>
</div>
</div>
<div class="stack-layer">
<div class="layer-label">OS</div>
<div class="layer-content">
<div class="layer-name">Linux (Ubuntu/Debian)</div>
<div class="layer-tech">Stabil, hosszú támogatás</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Proxmox -->
<section class="content-section alt-bg" id="proxmox">
<div class="container">
<div class="section-header">
<h2>Virtualizáció: <span>Proxmox</span></h2>
<p>Amikor több, mint konténerek kellenek</p>
</div>
<div class="info-card">
<h3><span class="icon">🔮</span> Mi az a Proxmox?</h3>
<p>A Proxmox egy ingyenes, professzionális virtualizációs platform. Lehetővé teszi, hogy egyetlen fizikai gépen több „virtuális gépet" (VM) futtass mintha több külön számítógéped lenne.</p>
<div class="warning-box">
<p>⚠️ <strong>Fontos:</strong> A legtöbb otthoni felhasználónak nincs szüksége Proxmoxra. A konténerek (Docker + Felhő Felügyelő) általában elegendőek és egyszerűbbek.</p>
</div>
</div>
<div class="info-card">
<h3><span class="icon">🎯</span> Mikor érdemes Proxmoxot használni?</h3>
<ul class="feature-list">
<li><strong>Windows alkalmazások</strong> ha szükséged van Windows-ra futó szoftverre</li>
<li><strong>Hálózati szolgáltatások</strong> pl. pfSense/OPNsense tűzfal, router</li>
<li><strong>Tesztelés és fejlesztés</strong> különböző rendszerek kipróbálása</li>
<li><strong>Erős elkülönítés</strong> amikor a konténer szintű izoláció nem elég</li>
</ul>
</div>
</div>
</section>
<!-- Kubernetes -->
<section class="content-section" id="kubernetes">
<div class="container">
<div class="section-header">
<h2>Magas rendelkezésre állás: <span>Kubernetes</span></h2>
<p>Amikor a megbízhatóság és a skálázhatóság kritikus</p>
</div>
<div class="info-card">
<h3><span class="icon">🚀</span> Mi az a Kubernetes?</h3>
<p>A Kubernetes (k8s) egy konténer „orkesztrátor" automatikusan kezeli, hogy hol és hogyan fussanak az alkalmazásaid. Ha egy szerver meghibásodik, automatikusan áthelyezi a szolgáltatásokat egy másikra.</p>
<div class="highlight-box">
<p><strong>Egyszerűen:</strong> Ha a Felhő Felügyelő egy „kézi sebességváltó", akkor a Kubernetes egy „automata" te csak megmondod mit szeretnél, és a rendszer megoldja a többit.</p>
</div>
</div>
<div class="info-card">
<h3><span class="icon">🎯</span> Mikor érdemes Kubernetes-t használni?</h3>
<ul class="feature-list">
<li><strong>Több szerver (node)</strong> 2+ gép együttműködése</li>
<li><strong>Magas rendelkezésre állás</strong> a szolgáltatás nem állhat le</li>
<li><strong>Automatikus helyreállítás</strong> ha valami elromlik, a rendszer javítja magát</li>
<li><strong>Rolling updates</strong> frissítés leállás nélkül</li>
</ul>
</div>
<div class="comparison-grid">
<div class="comparison-card recommended">
<div class="card-icon">🏠</div>
<h3>k3s</h3>
<div class="subtitle">Lightweight Kubernetes</div>
<p>Könnyűsúlyú Kubernetes disztribúció, tökéletes otthoni és edge környezetekhez.</p>
<ul class="feature-list">
<li>~512MB RAM-ból fut</li>
<li>Egyetlen bináris fájl</li>
<li>Beépített load balancer</li>
</ul>
</div>
<div class="comparison-card">
<div class="card-icon">🏢</div>
<h3>Teljes Kubernetes</h3>
<div class="subtitle">kubeadm / RKE2</div>
<p>Enterprise-grade megoldás nagyobb infrastruktúrához.</p>
<ul class="feature-list">
<li>Teljes funkciókészlet</li>
<li>Széles ökoszisztéma</li>
</ul>
<ul class="feature-list cons">
<li>Nagyobb erőforrás igény</li>
</ul>
</div>
</div>
</div>
</section>
<!-- Hálózat -->
<section class="content-section alt-bg" id="halozat">
<div class="container">
<div class="section-header">
<h2>Hálózat és <span>biztonság</span></h2>
<p>Hogyan éred el a szervered biztonságosan, bárhonnan?</p>
</div>
<div class="info-card">
<h3><span class="icon">🔄</span> Reverse Proxy</h3>
<p>A reverse proxy egy „kapus", aki fogadja a beérkező kéréseket és továbbítja a megfelelő alkalmazáshoz. Emellett kezeli a HTTPS titkosítást is.</p>
<div class="network-flow">
<div class="flow-node">
<div class="node-icon">🌍</div>
<div class="node-label">Internet</div>
</div>
<div class="flow-arrow"></div>
<div class="flow-node">
<div class="node-icon">🔐</div>
<div class="node-label">Reverse Proxy</div>
<div class="node-tech">Traefik / Nginx</div>
</div>
<div class="flow-arrow"></div>
<div class="flow-node">
<div class="node-icon">📦</div>
<div class="node-label">Alkalmazás</div>
</div>
</div>
<ul class="feature-list">
<li><strong>Traefik</strong> automatikus SSL, dinamikus konfiguráció</li>
<li><strong>Nginx Proxy Manager</strong> egyszerű webes felület</li>
<li><strong>Caddy</strong> minimalista, automatikus HTTPS</li>
</ul>
</div>
<div class="info-card">
<h3><span class="icon">🛡️</span> Tűzfal és védelem</h3>
<ul class="feature-list">
<li><strong>UFW tűzfal</strong> csak a szükséges portok nyitva</li>
<li><strong>Fail2ban</strong> brute-force támadások blokkolása</li>
<li><strong>Geo-blocking</strong> kérések szűrése földrajzi hely alapján</li>
<li><strong>Tailscale VPN</strong> biztonságos távoli elérés</li>
</ul>
</div>
</div>
</section>
<!-- Tárolás -->
<section class="content-section" id="tarolas">
<div class="container">
<div class="section-header">
<h2>Tárolás és <span>adatvédelem</span></h2>
<p>Hol és hogyan tárold az adataidat?</p>
</div>
<div class="comparison-grid">
<div class="comparison-card">
<div class="card-icon"></div>
<h3>SSD (NVMe/SATA)</h3>
<div class="subtitle">Gyors tárolás</div>
<ul class="feature-list">
<li>Operációs rendszer</li>
<li>Adatbázisok</li>
<li>Alkalmazások</li>
</ul>
</div>
<div class="comparison-card">
<div class="card-icon">🗄️</div>
<h3>HDD</h3>
<div class="subtitle">Nagy kapacitás</div>
<ul class="feature-list">
<li>Média könyvtár</li>
<li>Fotó archívum</li>
<li>Mentések</li>
</ul>
</div>
</div>
<div class="info-card" style="margin-top: 32px;">
<h3><span class="icon">🔄</span> RAID adatvédelem</h3>
<p>A RAID több merevlemezt fog össze, hogy védjen az adatvesztés ellen. Ha egy lemez meghibásodik, az adatok nem vesznek el.</p>
<div class="warning-box">
<p>⚠️ <strong>A RAID nem backup!</strong> Véd a hardver meghibásodás ellen, de nem a véletlen törlés vagy zsarolóvírus ellen. Mindig legyen külön mentés!</p>
</div>
</div>
</div>
</section>
<!-- Hardver konfigurációk -->
<section class="content-section alt-bg" id="hardver">
<div class="container">
<div class="section-header">
<h2>Hardver <span>konfigurációk</span></h2>
<p>Milyen gépre van szükséged? Néhány példa konfiguráció</p>
</div>
<div class="hardware-grid">
<div class="hardware-card">
<div class="hardware-card-header">
<div class="hw-icon">📦</div>
<h3>Mini PC + NAS</h3>
<div class="hw-subtitle">Kezdő / Otthoni</div>
</div>
<div class="hardware-card-body">
<p>Kompakt, halk, energiatakarékos megoldás.</p>
<ul class="spec-list">
<li><span class="spec-label">CPU</span><span class="spec-value">Intel N100</span></li>
<li><span class="spec-label">RAM</span><span class="spec-value">16-32 GB</span></li>
<li><span class="spec-label">SSD</span><span class="spec-value">256-512 GB</span></li>
<li><span class="spec-label">Fogyasztás</span><span class="spec-value">15-35W</span></li>
</ul>
<div class="price-range">
<div class="label">Becsült költség</div>
<div class="price">80.000 - 150.000 Ft</div>
</div>
</div>
</div>
<div class="hardware-card">
<div class="hardware-card-header">
<div class="hw-icon">🗼</div>
<h3>Tower szerver</h3>
<div class="hw-subtitle">Haladó / Családi</div>
</div>
<div class="hardware-card-body">
<p>Nagyobb teljesítmény és tárolókapacitás.</p>
<ul class="spec-list">
<li><span class="spec-label">CPU</span><span class="spec-value">Intel i5/i7</span></li>
<li><span class="spec-label">RAM</span><span class="spec-value">32-64 GB</span></li>
<li><span class="spec-label">Tárolás</span><span class="spec-value">4-8 TB (RAID)</span></li>
<li><span class="spec-label">Fogyasztás</span><span class="spec-value">50-120W</span></li>
</ul>
<div class="price-range">
<div class="label">Becsült költség</div>
<div class="price">200.000 - 400.000 Ft</div>
</div>
</div>
</div>
<div class="hardware-card">
<div class="hardware-card-header">
<div class="hw-icon">🏢</div>
<h3>Rack szerver</h3>
<div class="hw-subtitle">Pro / Kisvállalkozás</div>
</div>
<div class="hardware-card-body">
<p>Ipari minőség, nagy megbízhatóság.</p>
<ul class="spec-list">
<li><span class="spec-label">CPU</span><span class="spec-value">Xeon / EPYC</span></li>
<li><span class="spec-label">RAM</span><span class="spec-value">64-256 GB ECC</span></li>
<li><span class="spec-label">Tárolás</span><span class="spec-value">8-24 bay</span></li>
<li><span class="spec-label">Extra</span><span class="spec-value">IPMI, red. PSU</span></li>
</ul>
<div class="price-range">
<div class="label">Becsült költség (használt)</div>
<div class="price">150.000 - 600.000 Ft</div>
</div>
</div>
</div>
<div class="hardware-card">
<div class="hardware-card-header">
<div class="hw-icon">🔗</div>
<h3>Multi-node cluster</h3>
<div class="hw-subtitle">HA / Kubernetes</div>
</div>
<div class="hardware-card-body">
<p>Több gép együttműködése k3s-szel.</p>
<ul class="spec-list">
<li><span class="spec-label">Node-ok</span><span class="spec-value">3-5 mini PC</span></li>
<li><span class="spec-label">RAM/node</span><span class="spec-value">8-16 GB</span></li>
<li><span class="spec-label">Tárolás</span><span class="spec-value">Longhorn + NAS</span></li>
<li><span class="spec-label">Hálózat</span><span class="spec-value">Gigabit switch</span></li>
</ul>
<div class="price-range">
<div class="label">Becsült költség (3 node)</div>
<div class="price">200.000 - 350.000 Ft</div>
</div>
</div>
</div>
</div>
<div class="info-card" style="margin-top: 48px;">
<h3><span class="icon">💡</span> Melyiket válaszd?</h3>
<div class="highlight-box">
<p><strong>Tanácsunk:</strong> Kezdj kicsiben! Egy jó mini PC elegendő a legtöbb otthoni igényhez, és később bővítheted.</p>
</div>
</div>
</div>
</section>
<!-- CTA -->
<section class="cta-section">
<div class="container">
<h2>Nem vagy biztos, melyik <span>megoldás neked való?</span></h2>
<p>Beszéljük át az igényeidet, és segítünk megtalálni a tökéletes konfigurációt.</p>
<a href="/kapcsolat" class="cta-button">Kapcsolatfelvétel →</a>
<a href="/alkalmazasok" class="cta-button-secondary">Alkalmazások böngészése →</a>
</div>
</section>
</main>
<footer>
<div class="container">
<p>© 2026 felhom.eu — Saját felhőd, saját szabályaid</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', '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>
</body>
</html>
================================================================================
Summary: 13 files included, 218 skipped
================================================================================