Files
felhom.eu/website/szolgaltatasok-nonpublic.html
T
2026-02-26 13:21:55 +01:00

1352 lines
59 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">
<meta name="description" content="Felhom.eu - Szolgáltatások és árak. Otthoni szerver telepítés, üzemeltetés, monitoring és támogatás.">
<title>Szolgáltatások - Felhom.eu</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<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_favicon_2.svg">
<!-- analytics intentionally omitted for draft page -->
<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 32px; }
/* --- Section Headers --- */
.section-header { text-align: center; margin-bottom: 60px; }
.section-header h2 { font-size: 2.2rem; font-weight: 700; margin-bottom: 16px; letter-spacing: -0.02em; }
.section-header p { color: var(--text-secondary); font-size: 1.1rem; max-width: 600px; margin: 0 auto; }
/* --- Content Sections --- */
.content-section { padding: 80px 0; }
.content-section.alt-bg { background: var(--bg-secondary); }
/* --- Draft banner --- */
.draft-banner {
background: linear-gradient(135deg, rgba(210, 153, 34, 0.15), rgba(210, 153, 34, 0.05));
border: 1px solid var(--warning-orange);
border-radius: 12px;
padding: 20px 28px;
margin-bottom: 48px;
display: flex;
align-items: center;
gap: 12px;
max-width: 700px;
margin-left: auto;
margin-right: auto;
}
.draft-banner .draft-icon { font-size: 1.5rem; flex-shrink: 0; }
.draft-banner p { color: var(--text-secondary); font-size: 0.9rem; line-height: 1.5; }
.draft-banner strong { color: var(--warning-orange); }
/* --- Pricing disclaimer --- */
.pricing-note {
background: linear-gradient(135deg, rgba(0, 136, 204, 0.1), rgba(0, 136, 204, 0.05));
border: 1px solid var(--border-color);
border-radius: 12px;
padding: 24px 32px;
margin-bottom: 48px;
max-width: 800px;
margin-left: auto;
margin-right: auto;
}
.pricing-note p { color: var(--text-secondary); font-size: 0.95rem; line-height: 1.6; }
.pricing-note strong { color: var(--text-primary); }
/* --- Service cards --- */
.service-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
gap: 24px;
margin-bottom: 16px;
}
.service-card {
background: var(--bg-card);
border: 1px solid var(--border-color);
border-radius: 12px;
padding: 28px;
transition: border-color 0.3s ease, transform 0.3s ease;
display: flex;
flex-direction: column;
}
.service-card:hover { border-color: var(--accent-blue); transform: translateY(-4px); }
.service-card-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
margin-bottom: 16px;
}
.service-card-icon {
font-size: 2rem;
line-height: 1;
flex-shrink: 0;
}
.service-card-badge {
font-size: 0.7rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
padding: 4px 10px;
border-radius: 6px;
flex-shrink: 0;
}
.badge-onetime {
background: rgba(35, 134, 54, 0.2);
color: var(--success-green);
border: 1px solid rgba(35, 134, 54, 0.3);
}
.badge-monthly {
background: rgba(0, 136, 204, 0.2);
color: var(--accent-light);
border: 1px solid rgba(0, 136, 204, 0.3);
}
.badge-ondemand {
background: rgba(210, 153, 34, 0.2);
color: var(--warning-orange);
border: 1px solid rgba(210, 153, 34, 0.3);
}
.badge-free {
background: rgba(35, 134, 54, 0.2);
color: #3fb950;
border: 1px solid rgba(63, 185, 80, 0.3);
}
.service-card h3 {
font-size: 1.15rem;
font-weight: 600;
margin-bottom: 10px;
color: var(--text-primary);
}
.service-card .description {
color: var(--text-secondary);
font-size: 0.9rem;
line-height: 1.6;
flex-grow: 1;
margin-bottom: 16px;
}
.service-card .includes {
list-style: none;
margin-bottom: 20px;
display: flex;
flex-direction: column;
gap: 6px;
}
.service-card .includes li {
color: var(--text-secondary);
font-size: 0.85rem;
display: flex;
align-items: flex-start;
gap: 8px;
line-height: 1.4;
}
.service-card .includes li::before {
content: '✓';
color: var(--success-green);
font-weight: bold;
flex-shrink: 0;
margin-top: 1px;
}
.service-card .price-box {
background: var(--bg-secondary);
border: 1px solid var(--border-color);
border-radius: 8px;
padding: 14px 18px;
margin-top: auto;
}
.price-box .price-label {
font-size: 0.75rem;
color: var(--text-muted);
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: 4px;
}
.price-box .price-value {
font-family: 'JetBrains Mono', monospace;
font-size: 1.3rem;
font-weight: 600;
color: var(--accent-light);
}
.price-box .price-unit {
font-size: 0.8rem;
color: var(--text-secondary);
font-family: 'Plus Jakarta Sans', sans-serif;
}
.price-box .price-note {
font-size: 0.78rem;
color: var(--text-muted);
margin-top: 4px;
line-height: 1.4;
}
/* --- Package cards --- */
.package-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
margin-top: 48px;
}
.package-card {
background: var(--bg-card);
border: 1px solid var(--border-color);
border-radius: 16px;
padding: 32px 28px;
transition: border-color 0.3s ease, transform 0.3s ease;
display: flex;
flex-direction: column;
position: relative;
}
.package-card:hover { border-color: var(--accent-blue); transform: translateY(-4px); }
.package-card.featured {
border-color: var(--accent-blue);
box-shadow: 0 0 40px var(--accent-glow);
}
.package-card.featured::before {
content: '★ Legnépszerűbb';
position: absolute;
top: -12px;
left: 50%;
transform: translateX(-50%);
background: linear-gradient(135deg, var(--accent-blue), var(--accent-light));
color: white;
font-size: 0.75rem;
font-weight: 600;
padding: 4px 16px;
border-radius: 20px;
white-space: nowrap;
}
.package-card .package-icon {
font-size: 2.5rem;
margin-bottom: 16px;
}
.package-card h3 {
font-size: 1.4rem;
font-weight: 700;
margin-bottom: 8px;
}
.package-card .package-tagline {
color: var(--text-secondary);
font-size: 0.9rem;
margin-bottom: 20px;
line-height: 1.5;
}
.package-card .package-price {
font-family: 'JetBrains Mono', monospace;
font-size: 2rem;
font-weight: 700;
color: var(--accent-light);
margin-bottom: 4px;
}
.package-card .package-price-note {
font-size: 0.8rem;
color: var(--text-muted);
margin-bottom: 24px;
}
.package-card .package-features {
list-style: none;
display: flex;
flex-direction: column;
gap: 10px;
flex-grow: 1;
margin-bottom: 24px;
}
.package-card .package-features li {
color: var(--text-secondary);
font-size: 0.88rem;
display: flex;
align-items: flex-start;
gap: 10px;
line-height: 1.4;
}
.package-card .package-features li::before {
content: '✓';
color: var(--success-green);
font-weight: bold;
flex-shrink: 0;
}
.package-card .package-features li.na {
color: var(--text-muted);
}
.package-card .package-features li.na::before {
content: '';
color: var(--text-muted);
}
.package-cta {
display: block;
text-align: center;
padding: 12px 24px;
border-radius: 8px;
text-decoration: none;
font-weight: 600;
font-size: 0.95rem;
transition: all 0.2s ease;
margin-top: auto;
}
.package-cta-secondary {
background: transparent;
color: var(--accent-light);
border: 2px solid var(--accent-blue);
}
.package-cta-secondary:hover { background: var(--accent-blue); color: white; }
.package-cta-primary {
background: linear-gradient(135deg, var(--accent-blue), var(--accent-light));
color: white;
border: none;
box-shadow: 0 4px 20px var(--accent-glow);
}
.package-cta-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 30px var(--accent-glow); }
/* --- Domain highlight section --- */
.domain-section {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
align-items: center;
}
.domain-text h2 {
font-size: 2rem;
font-weight: 700;
margin-bottom: 16px;
letter-spacing: -0.02em;
}
.domain-text p {
color: var(--text-secondary);
font-size: 1rem;
line-height: 1.7;
margin-bottom: 16px;
}
.domain-visual {
display: flex;
flex-direction: column;
gap: 16px;
}
.domain-example {
background: var(--bg-card);
border: 1px solid var(--border-color);
border-radius: 12px;
padding: 20px 24px;
display: flex;
align-items: center;
gap: 16px;
}
.domain-example .domain-icon {
font-size: 1.5rem;
flex-shrink: 0;
}
.domain-example .domain-url {
font-family: 'JetBrains Mono', monospace;
font-size: 0.95rem;
color: var(--accent-light);
}
.domain-example .domain-desc {
font-size: 0.82rem;
color: var(--text-muted);
margin-top: 2px;
}
/* --- Process timeline --- */
.process-timeline {
display: flex;
flex-direction: column;
gap: 0;
max-width: 700px;
margin: 0 auto;
position: relative;
}
.process-timeline::before {
content: '';
position: absolute;
left: 24px;
top: 40px;
bottom: 40px;
width: 2px;
background: var(--border-color);
}
.process-step {
display: flex;
align-items: flex-start;
gap: 24px;
padding: 20px 0;
}
.step-number {
width: 48px;
height: 48px;
border-radius: 50%;
background: var(--bg-card);
border: 2px solid var(--accent-blue);
display: flex;
align-items: center;
justify-content: center;
font-family: 'JetBrains Mono', monospace;
font-weight: 700;
font-size: 1rem;
color: var(--accent-light);
flex-shrink: 0;
position: relative;
z-index: 1;
}
.step-content h4 {
font-size: 1.05rem;
font-weight: 600;
margin-bottom: 6px;
color: var(--text-primary);
}
.step-content p {
color: var(--text-secondary);
font-size: 0.9rem;
line-height: 1.5;
}
/* --- CTA Section --- */
.cta-section {
text-align: center;
padding: 80px 0;
}
.cta-box {
background: linear-gradient(135deg, rgba(0, 136, 204, 0.1), rgba(0, 136, 204, 0.03));
border: 1px solid var(--border-color);
border-radius: 16px;
padding: 48px;
}
.cta-box h2 {
font-size: 2rem;
font-weight: 700;
margin-bottom: 16px;
}
.cta-box p {
color: var(--text-secondary);
font-size: 1.05rem;
margin-bottom: 32px;
max-width: 500px;
margin-left: auto;
margin-right: auto;
}
.cta-buttons {
display: flex;
gap: 16px;
justify-content: center;
flex-wrap: wrap;
}
.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;
}
.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; }
/* --- Responsive --- */
@media (max-width: 768px) {
.package-grid { grid-template-columns: 1fr; }
.domain-section { grid-template-columns: 1fr; gap: 32px; }
.service-grid { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) and (min-width: 769px) {
.package-grid { grid-template-columns: 1fr 1fr; }
}
/* --- 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">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>
<!-- Page Header -->
<section class="page-header">
<div class="container">
<h1>Szolgáltatások és <span>Árak</span></h1>
<p>Átlátható árazás, tiszta feltételek. Tudod, mire fizetsz — sem több, sem kevesebb.</p>
<!-- Draft banner - remove when going live -->
<div class="draft-banner">
<span class="draft-icon">🚧</span>
<p><strong>Belső tesztoldal</strong> — Ez az oldal még nem publikus. Az árak tájékoztató jellegűek, a végleges árazás a piaci visszajelzések alapján alakul.</p>
</div>
<div class="pricing-note">
<p>Az árak bruttó, végfelhasználói árak forintban. A feltüntetett összegek <strong>tájékoztató jellegűek</strong> és az adott szerver konfiguráció, az alkalmazások összetettsége, valamint a migrálandó adatmennyiség függvényében változhatnak. Minden projekt egyedi árajánlattal indul — a végső ár a konzultáció után kerül meghatározásra.</p>
</div>
</div>
</section>
<!-- =============================================
SECTION: Indulócsomagok (Starter Packages)
============================================= -->
<section class="content-section alt-bg" id="csomagok">
<div class="container">
<div class="section-header">
<h2>Induló <span>csomagok</span></h2>
<p>Válaszd ki az igényeidhez legjobban illő csomagot — mindegyik tartalmazza a teljes rendszer telepítését</p>
</div>
<div class="package-grid">
<!-- Alap csomag -->
<div class="package-card">
<div class="package-icon">🌱</div>
<h3>Alap</h3>
<p class="package-tagline">Kezdj kicsiben — próbáld ki az önhostolást néhány alkalmazással.</p>
<div class="package-price">~75 000 Ft</div>
<p class="package-price-note">egyszeri telepítési költség</p>
<ul class="package-features">
<li>Hardver ellenőrzés és stresszteszt</li>
<li>Operációs rendszer + infrastruktúra telepítés</li>
<li>3 alkalmazás telepítése és konfigurálása</li>
<li>Domain regisztráció és beállítás</li>
<li>SSL tanúsítvány (automatikus)</li>
<li>1 hónap monitoring szolgáltatás</li>
<li class="na">Adatmigráció nem tartalmazza</li>
<li class="na">Mentés tárhely nem tartalmazza</li>
</ul>
<a href="/kapcsolat" class="package-cta package-cta-secondary">Ajánlatot kérek →</a>
</div>
<!-- Komfort csomag -->
<div class="package-card featured">
<div class="package-icon">🏠</div>
<h3>Komfort</h3>
<p class="package-tagline">A legtöbb család számára ideális. Felhő-kiváltás, teljes kényelemmel.</p>
<div class="package-price">~130 000 Ft</div>
<p class="package-price-note">egyszeri telepítési költség</p>
<ul class="package-features">
<li>Hardver ellenőrzés és stresszteszt</li>
<li>Operációs rendszer + infrastruktúra telepítés</li>
<li>6 alkalmazás telepítése és konfigurálása</li>
<li>Domain regisztráció és beállítás</li>
<li>SSL tanúsítvány (automatikus)</li>
<li>Adatmigráció 500 GB-ig</li>
<li>VPN / távoli hozzáférés beállítás</li>
<li>2 hónap monitoring szolgáltatás</li>
</ul>
<a href="/kapcsolat" class="package-cta package-cta-primary">Ajánlatot kérek →</a>
</div>
<!-- Prémium csomag -->
<div class="package-card">
<div class="package-icon">🚀</div>
<h3>Prémium</h3>
<p class="package-tagline">Teljes digitális függetlenség — minden szolgáltatás, maximális támogatás.</p>
<div class="package-price">~200 000 Ft</div>
<p class="package-price-note">egyszeri telepítési költség</p>
<ul class="package-features">
<li>Hardver ellenőrzés és stresszteszt</li>
<li>Operációs rendszer + infrastruktúra telepítés</li>
<li>10 alkalmazás telepítése és konfigurálása</li>
<li>Domain regisztráció és beállítás</li>
<li>SSL tanúsítvány (automatikus)</li>
<li>Adatmigráció 2 TB-ig</li>
<li>VPN / távoli hozzáférés beállítás</li>
<li>3 hónap monitoring + 100 GB mentés tárhely</li>
</ul>
<a href="/kapcsolat" class="package-cta package-cta-secondary">Ajánlatot kérek →</a>
</div>
</div>
</div>
</section>
<!-- =============================================
SECTION: Egyszeri szolgáltatások (One-time)
============================================= -->
<section class="content-section" id="egyszeri">
<div class="container">
<div class="section-header">
<h2>Egyszeri <span>szolgáltatások</span></h2>
<p>Egyszer fizeted, tartósan élvezed. A szervered felállításához szükséges lépések.</p>
</div>
<div class="service-grid">
<!-- Hardver ellenőrzés -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon">🔍</span>
<span class="service-card-badge badge-onetime">Egyszeri</span>
</div>
<h3>Hardver ellenőrzés és stresszteszt</h3>
<p class="description">Mielőtt bármit telepítünk, alaposan leteszteljük a hardvered. CPU, memória, tárolóeszközök, hőmérséklet — mindent ellenőrzünk, hogy a szervered megbízhatóan működjön éveken át.</p>
<ul class="includes">
<li>CPU és memória stresszteszt (terheléspróba)</li>
<li>Tárolóeszközök SMART állapotfelmérése</li>
<li>Hőmérséklet monitoring terhelés alatt</li>
<li>Hálózati teljesítmény ellenőrzés</li>
<li>Részletes állapotjelentés</li>
</ul>
<div class="price-box">
<div class="price-label">Induló ár</div>
<div class="price-value">15 000 Ft</div>
<div class="price-note">Saját hardver használata esetén kötelező. Általunk javasolt új hardvernél nem szükséges.</div>
</div>
</div>
<!-- Rendszer telepítés -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon">⚙️</span>
<span class="service-card-badge badge-onetime">Egyszeri</span>
</div>
<h3>Rendszer telepítés és konfigurálás</h3>
<p class="description">Az operációs rendszer telepítésétől a teljes infrastruktúra kialakításáig — tűzfal, hálózat, tárhelykezelés, automatikus SSL tanúsítványok. Amikor elkészül, kész fogadni az alkalmazásokat.</p>
<ul class="includes">
<li>Operációs rendszer telepítés és hardening</li>
<li>Konténer infrastruktúra kialakítás</li>
<li>Tűzfal és hálózat konfiguráció</li>
<li>Automatikus SSL tanúsítvány kezelés</li>
<li>Tárhely kezelés (SSD/HDD optimalizálás)</li>
<li>Alapvető monitoring beüzemelés</li>
</ul>
<div class="price-box">
<div class="price-label">Induló ár</div>
<div class="price-value">35 000 Ft</div>
<div class="price-note">Csomagban kedvezőbb — lásd az indulócsomagokat.</div>
</div>
</div>
<!-- Alkalmazás telepítés -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon">📦</span>
<span class="service-card-badge badge-onetime">Egyszeri / alkalmazás</span>
</div>
<h3>Alkalmazás telepítés</h3>
<p class="description">Minden alkalmazás egyedi telepítést és konfigurálást igényel. Az árba beletartozik az alkalmazás beüzemelése, alapkonfiguráció, első felhasználó létrehozása és a működés ellenőrzése.</p>
<ul class="includes">
<li>Alkalmazás telepítés és konfigurálás</li>
<li>Felhasználói fiók létrehozás</li>
<li>Reverz proxy és SSL beállítás</li>
<li>Mentési házirend beállítás</li>
<li>Működés ellenőrzés és dokumentáció</li>
</ul>
<div class="price-box">
<div class="price-label">Alkalmazásonként</div>
<div class="price-value">5 000 15 000 Ft</div>
<div class="price-note">Egyszerű alkalmazások (pl. Vaultwarden): ~5 000 Ft. Komplex rendszerek (pl. Nextcloud, Immich, média automatizáció): ~12 00015 000 Ft.</div>
</div>
</div>
<!-- Adatmigráció -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon">📤</span>
<span class="service-card-badge badge-onetime">Egyszeri</span>
</div>
<h3>Adatmigráció</h3>
<p class="description">Költöztesd át az adataidat a nagy felhőszolgáltatóktól (Google Photos, iCloud, Dropbox, OneDrive…) vagy helyi forrásokból a saját szerveredre. Az árat a migrálandó adatmennyiség határozza meg.</p>
<ul class="includes">
<li>Felhőszolgáltató export és letöltés</li>
<li>Adatstruktúra átalakítás szükség szerint</li>
<li>Import a célalkalmazásba</li>
<li>Integritás ellenőrzés (nincs adatvesztés)</li>
<li>Helyi adathordozóról migráció is lehetséges</li>
</ul>
<div class="price-box">
<div class="price-label">Adatmennyiség alapján</div>
<div class="price-value">8 000 35 000 Ft</div>
<div class="price-note">100 GB-ig: ~8 000 Ft · 100500 GB: ~15 000 Ft · 500 GB 1 TB: ~25 000 Ft · 1 TB felett: egyedi árazás</div>
</div>
</div>
<!-- Domain regisztráció -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon">🌐</span>
<span class="service-card-badge badge-free">Ajándék</span>
</div>
<h3>Domain regisztráció és DNS kezelés</h3>
<p class="description">Minden ügyfél kap egy saját domaint, amit mi regisztrálunk és kezelünk. Ez nem csak kényelmes — a saját domain elengedhetetlen az SSL tanúsítványokhoz, és biztosítja, hogy minden alkalmazásod egyszerűen elérhető legyen.</p>
<ul class="includes">
<li>Domain regisztráció (pl. .hu, .com, .eu)</li>
<li>DNS kezelés és karbantartás</li>
<li>Minden alkalmazáshoz saját aldomain</li>
<li>SSL tanúsítvány minden aldomainhez</li>
</ul>
<div class="price-box">
<div class="price-label">Az első évben</div>
<div class="price-value">0 Ft</div>
<div class="price-note">Az első év domain költségét mi álljuk. Megújítás éves szinten: ~3 0006 000 Ft/év (domainnév típustól függően), amit költségen továbbadunk.</div>
</div>
</div>
<!-- VPN / távoli hozzáférés -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon">🔒</span>
<span class="service-card-badge badge-onetime">Egyszeri</span>
</div>
<h3>VPN / Távoli hozzáférés beállítás</h3>
<p class="description">Biztonságos hozzáférés a szerverhez otthonról távol is — VPN kapcsolaton keresztül, mintha otthon lennél. Ideális, ha utazás közben vagy munkahelyről is elérnéd az alkalmazásaidat.</p>
<ul class="includes">
<li>VPN szerver telepítés (WireGuard)</li>
<li>Kliens konfiguráció (telefon, laptop, tablet)</li>
<li>Biztonságos távoli elérés beállítás</li>
<li>Használati útmutató</li>
</ul>
<div class="price-box">
<div class="price-label">Induló ár</div>
<div class="price-value">10 000 Ft</div>
<div class="price-note">Komfort és Prémium csomagban benne van.</div>
</div>
</div>
</div>
</div>
</section>
<!-- =============================================
SECTION: Havi szolgáltatások (Monthly)
============================================= -->
<section class="content-section alt-bg" id="havi">
<div class="container">
<div class="section-header">
<h2>Havi <span>szolgáltatások</span></h2>
<p>A szervered folyamatosan működik — mi pedig folyamatosan figyelünk rá.</p>
</div>
<div class="service-grid">
<!-- Monitoring -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon">📊</span>
<span class="service-card-badge badge-monthly">Havi</span>
</div>
<h3>Rendszer monitoring és karbantartás</h3>
<p class="description">Folyamatos figyelés, hogy ne kelljen neked. Automatikus riasztások, ha bármi rendellenességet észlelünk — és rendszeres frissítések, hogy minden naprakész maradjon.</p>
<ul class="includes">
<li>24/7 rendszer állapot monitoring</li>
<li>Tárhely, CPU, memória figyelés</li>
<li>Mentések sikerességének ellenőrzése</li>
<li>SSL tanúsítvány lejárat figyelés</li>
<li>Biztonság-kritikus frissítések telepítése</li>
<li>Alkalmazás frissítések (negyedéves ciklusban)</li>
<li>Havi állapotjelentés e-mailben</li>
</ul>
<div class="price-box">
<div class="price-label">Havi díj</div>
<div class="price-value">5 000 Ft <span class="price-unit">/ hó</span></div>
<div class="price-note">Éves előfizetéssel: 4 500 Ft/hó (10% kedvezmény). Az első 1-3 hónap a csomagban benne van.</div>
</div>
</div>
<!-- Mentés tárhely -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon">☁️</span>
<span class="service-card-badge badge-monthly">Havi</span>
</div>
<h3>Offsite mentés tárhely</h3>
<p class="description">A 3-2-1 mentési szabály utolsó pillére: az adataid egy másolata egy teljesen független, távoli szerveren. Így még katasztrófa esetén sem vész el semmi.</p>
<ul class="includes">
<li>Titkosított offsite mentés</li>
<li>Automatikus napi szinkronizáció</li>
<li>Visszaállítási lehetőség igény szerint</li>
<li>Földrajzilag elkülönített tárolás</li>
</ul>
<div class="price-box">
<div class="price-label">Adatmennyiség alapján</div>
<div class="price-value">1 500 Ft <span class="price-unit">/ 100 GB / hó</span></div>
<div class="price-note">Példa: 500 GB offsite mentés = 7 500 Ft/hó. Az első 100 GB a Prémium csomagban benne van.</div>
</div>
</div>
</div>
</div>
</section>
<!-- =============================================
SECTION: Eseti szolgáltatások (On-demand)
============================================= -->
<section class="content-section" id="eseti">
<div class="container">
<div class="section-header">
<h2>Eseti <span>szolgáltatások</span></h2>
<p>Ha változtatni szeretnél, vagy valami nem stimmel — itt vagyunk.</p>
</div>
<div class="service-grid">
<!-- Konfiguráció módosítás -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon">🔧</span>
<span class="service-card-badge badge-ondemand">Igény szerint</span>
</div>
<h3>Konfiguráció módosítás</h3>
<p class="description">Az alkalmazások kezdeti beállítása a telepítésben benne van. Ha utólag szeretnél módosítani (pl. új felhasználó, integráció, beállítás változtatás), azt külön kérésként kezeljük.</p>
<ul class="includes">
<li>Alkalmazás beállítás módosítás</li>
<li>Új felhasználó vagy jogosultság kezelés</li>
<li>Integráció más alkalmazásokkal</li>
<li>Téma / megjelenés testreszabás</li>
</ul>
<div class="price-box">
<div class="price-label">Kérésenként</div>
<div class="price-value">5 000 Ft <span class="price-unit">/ módosítás</span></div>
<div class="price-note">Egy kérés = egy logikailag összetartozó változtatás. Összetett módosítások esetén előre egyeztetünk.</div>
</div>
</div>
<!-- Incidens kezelés -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon">🚨</span>
<span class="service-card-badge badge-ondemand">Igény szerint</span>
</div>
<h3>Incidens kezelés és hibaelhárítás</h3>
<p class="description">Ha valami nem működik, nem az idő számít — a megoldás számít. Ezért esetnként számlázunk, nem óra alapon. Így nincs vita, nem kell az órát figyelni, és tudom, mit fogok számlázni.</p>
<ul class="includes">
<li>Hibadiagnosztika és elhárítás</li>
<li>Alkalmazás vagy szolgáltatás újraindítás</li>
<li>Adatvisszaállítás mentésből</li>
<li>Rendszer helyreállítás incidens után</li>
</ul>
<div class="price-box">
<div class="price-label">Esetenként</div>
<div class="price-value">8 000 20 000 Ft</div>
<div class="price-note">Egyszerű hiba (alkalmazás újraindítás, konfig javítás): ~8 000 Ft. Komplex incidens (adatvisszaállítás, rendszer helyreállítás): ~15 00020 000 Ft.</div>
</div>
</div>
<!-- Új alkalmazás telepítés (utólag) -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon"></span>
<span class="service-card-badge badge-ondemand">Igény szerint</span>
</div>
<h3>Új alkalmazás telepítés (utólag)</h3>
<p class="description">Találtál egy új alkalmazást, amit ki szeretnél próbálni? Bármikor bővítheted a szervered újabb alkalmazásokkal — ugyanolyan feltételekkel, mint az első telepítésnél.</p>
<ul class="includes">
<li>Ugyanaz, mint az induló alkalmazás telepítésnél</li>
<li>Meglévő rendszerbe integrálás</li>
<li>Mentési házirend kiterjesztés</li>
</ul>
<div class="price-box">
<div class="price-label">Alkalmazásonként</div>
<div class="price-value">5 000 15 000 Ft</div>
<div class="price-note">Az összeg az alkalmazás összetettségétől függ, megegyezik az induló telepítési árakkal.</div>
</div>
</div>
<!-- Alkalmazás eltávolítás -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon">🗑️</span>
<span class="service-card-badge badge-ondemand">Igény szerint</span>
</div>
<h3>Alkalmazás eltávolítás</h3>
<p class="description">Ha már nincs szükséged egy alkalmazásra, tisztán eltávolítjuk — beleértve az adatokat, konfigurációt és a hozzá tartozó erőforrásokat.</p>
<ul class="includes">
<li>Alkalmazás és konfiguráció eltávolítás</li>
<li>Kapcsolódó adatok törlése vagy archiválása</li>
<li>Erőforrások felszabadítása</li>
</ul>
<div class="price-box">
<div class="price-label">Alkalmazásonként</div>
<div class="price-value">3 000 Ft</div>
<div class="price-note">Adatok törlés előtti exportálása igény szerint, az adatmigráció árazás szerint.</div>
</div>
</div>
<!-- Éves rendszerfelülvizsgálat -->
<div class="service-card">
<div class="service-card-header">
<span class="service-card-icon">🩺</span>
<span class="service-card-badge badge-ondemand">Éves</span>
</div>
<h3>Éves rendszerfelülvizsgálat</h3>
<p class="description">Évente egyszer mélyreható átvizsgálás: hardver állapot, tárhely kapacitás, biztonsági állapot, teljesítmény optimalizáció. Megelőzés, hogy ne legyen meglepetés.</p>
<ul class="includes">
<li>Hardver állapotfelmérés (SMART, hőmérséklet)</li>
<li>Tárhely kapacitás és növekedés elemzés</li>
<li>Biztonsági audit és javaslatok</li>
<li>Teljesítmény optimalizáció</li>
<li>Írásos jelentés és javaslatok</li>
</ul>
<div class="price-box">
<div class="price-label">Évente</div>
<div class="price-value">15 000 Ft</div>
<div class="price-note">Monitoring előfizetőknek: 10 000 Ft/év (kedvezményes).</div>
</div>
</div>
</div>
</div>
</section>
<!-- =============================================
SECTION: Miért saját domain?
============================================= -->
<section class="content-section alt-bg" id="domain">
<div class="container">
<div class="domain-section">
<div class="domain-text">
<h2>Miért kapsz <span>saját domaint?</span></h2>
<p>A saját domain nem luxus — hanem a megbízható rendszer alapja. Az SSL tanúsítványok, a biztonságos HTTPS hozzáférés és az alkalmazásaid egyszerű elérhetősége mind ezen múlik.</p>
<p>Az első évi domain regisztrációt mi álljuk. Utána a domain éves díját (jellemzően 3 0006 000 Ft) költségen adjuk tovább — semmi rejtett felár.</p>
<p style="color: var(--text-muted); font-size: 0.9rem;">Meglévő domained is használhatjuk, ha van — ilyenkor a DNS beállítást mi végezzük el.</p>
</div>
<div class="domain-visual">
<div class="domain-example">
<span class="domain-icon">📷</span>
<div>
<div class="domain-url">photos.pelda-csalad.hu</div>
<div class="domain-desc">Immich — családi fotók</div>
</div>
</div>
<div class="domain-example">
<span class="domain-icon">📁</span>
<div>
<div class="domain-url">cloud.pelda-csalad.hu</div>
<div class="domain-desc">Nextcloud — fájlok és naptár</div>
</div>
</div>
<div class="domain-example">
<span class="domain-icon">🎬</span>
<div>
<div class="domain-url">media.pelda-csalad.hu</div>
<div class="domain-desc">Jellyfin — filmek és sorozatok</div>
</div>
</div>
<div class="domain-example">
<span class="domain-icon">🔐</span>
<div>
<div class="domain-url">vault.pelda-csalad.hu</div>
<div class="domain-desc">Vaultwarden — jelszókezelő</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- =============================================
SECTION: Hogyan működik? (Process)
============================================= -->
<section class="content-section" id="folyamat">
<div class="container">
<div class="section-header">
<h2>Hogyan <span>működik?</span></h2>
<p>Az első megkereséstől a működő rendszerig — lépésről lépésre</p>
</div>
<div class="process-timeline">
<div class="process-step">
<div class="step-number">1</div>
<div class="step-content">
<h4>Konzultáció</h4>
<p>Megbeszéljük, mire van szükséged: milyen alkalmazásokat használnál, mennyi adatod van, milyen hardvered van (vagy szeretnél). Ingyenes, kötelezettség nélkül.</p>
</div>
</div>
<div class="process-step">
<div class="step-number">2</div>
<div class="step-content">
<h4>Árajánlat</h4>
<p>A konzultáció alapján részletes árajánlatot küldünk — pontosan tudni fogod, mit kapsz és mennyiért. Semmi apróbetű.</p>
</div>
</div>
<div class="process-step">
<div class="step-number">3</div>
<div class="step-content">
<h4>Hardver ellenőrzés</h4>
<p>Átvesszük vagy szállíttatjuk a hardvert, és alapos tesztelés után megkezdjük a telepítést. Ha problémát találunk, egyeztetünk a megoldásról.</p>
</div>
</div>
<div class="process-step">
<div class="step-number">4</div>
<div class="step-content">
<h4>Telepítés és konfiguráció</h4>
<p>Az operációs rendszertől az utolsó alkalmazásig mindent beüzemelünk, leteszteljük és dokumentáljuk. Az adatmigrációt is ebben a fázisban végezzük.</p>
</div>
</div>
<div class="process-step">
<div class="step-number">5</div>
<div class="step-content">
<h4>Átadás és oktatás</h4>
<p>Visszaszállítjuk a szervert, bekötjük a hálózatba, és végigvezetünk az alkalmazások használatán. Kérdéseiddel bármikor fordulhatsz hozzánk.</p>
</div>
</div>
<div class="process-step">
<div class="step-number">6</div>
<div class="step-content">
<h4>Folyamatos monitoring</h4>
<p>Ha választod a monitoring szolgáltatást, a háttérben figyeljük a szervered állapotát, és proaktívan avatkozunk be, ha szükséges.</p>
</div>
</div>
</div>
</div>
</section>
<!-- =============================================
SECTION: CTA
============================================= -->
<section class="cta-section alt-bg">
<div class="container">
<div class="cta-box">
<h2>Kérdésed van? <span>Beszéljünk!</span></h2>
<p>Az egyedi árajánlat ingyenes és kötelezettségmentes. Írd meg, mire lenne szükséged — mi pedig megmondjuk, mennyibe kerül.</p>
<div class="cta-buttons">
<a href="/kapcsolat" class="cta-button">📝 Ajánlatot kérek</a>
<a href="mailto:info@felhom.eu" class="cta-button-secondary">✉️ info@felhom.eu</a>
</div>
</div>
</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>