Petr Jurásek · Infrastruktura a Platform Engineering

Stavím systémy
které vydrží.

Student navazujícího magisterského studia aplikované informatiky se zaměřením na návrh a provoz produkční infrastruktury — hypervizory, síťová segmentace pomocí VLAN, zero-trust přístup a plnohodnotný observability stack, vše navržené a provozované vlastnoručně.

Proxmox VE TrueNAS SCALE Traefik v3 Cloudflare Tunnel UniFi / VLANs Prometheus · Grafana · Wazuh
LinkedIn GitHub Forgejo O mně ↓ Zobrazit lab ↓
2
uzly clusteru
6
VLAN
25+
služeb
0
otevřených WAN portů†

† s výjimkou Plexu, Teamspeak 6 a VPN serveru, které jsou záměrně port-forwardované

Kdo za tím stojí

Petr Jurásek

Jmenuji se Petr a jsem student posledního ročníku navazujícího magisterského studia aplikované informatiky na Univerzitě Palackého v Olomouci. Moje akademické zaměření je na vývoj softwaru, ale nejvíce mě zajímá oblast na pomezí softwaru a infrastruktury — tedy vrstva, kde se skutečně prosazuje spolehlivost, bezpečnost a provozní disciplína.

Tento homelab je způsob, jak propojuji teorii s praxí. Každé rozhodnutí v návrhu odpovídá tomu, co byste očekávali v produkčním prostředí: segmentace sítě pomocí VLAN s default-deny firewall politikou, HA-aware rozmístění služeb napříč dvouuzlovým Proxmox clusterem, zero-trust přístup z internetu přes Cloudflare tunnel bez otevřených WAN portů a plnohodnotný observability stack — Prometheus, Grafana a Wazuh — který mi poskytuje reálný přehled o stavu systému. Cílem je vybudovat si praktické návyky, které samotná teorie neposkytuje.

Nejvíce mě zajímají role na pomezí spolehlivosti infrastruktury a správy dat — správa sítí, správa hypervizorů a Linux systémů nebo data infrastruktura se zaměřením na řízení přístupu, strukturování dat a jejich zabezpečení při uložení i přenosu. Pokud Váš tým tyto oblasti bere vážně, rád se spojím.

Vzdělání
Mgr - Aplikovaná informatika
Vývoj software · Univerzita Palackého v Olomouci
2024 – 2026

Bc — Informační technologie
Univerzita Palackého v Olomouci
2021 – 2024
Hledám uplatnění v
Správa sítí Linux / systémová správa Virtualizace / hypervizory Datová infrastruktura Úložiště & řízení přístupu Infrastructure engineer
01 / Infrastruktura

Výpočetní výkon & úložiště

Dvouuzlový Proxmox VE cluster se sdíleným TrueNAS úložištěm, dedikovaným backup serverem a Raspberry Pi jako quorum zařízením, které zabraňuje split-brain situacím při výpadku jednoho uzlu.

lenovo1 · primární
Proxmox icon
Proxmox VE
10.169.91.70
Primární uzel clusteru. Hostuje většinu produkčních LXC kontejnerů. Veškeré DNS směřuje na předem přidělenou keepalived VIP, takže failover nevyžaduje žádné změny DNS.
Proxmox 9 VLAN 169 cluster primary
lenovo2 · sekundární
Proxmox icon
Proxmox VE
10.169.91.71
Sekundární uzel a HA failover cíl. Plánovaný host pro druhý Traefik node + keepalived, čímž se eliminuje reverse proxy jako single point of failure.
Proxmox 9 VLAN 169 HA failover Traefik node 2 (plánovaný)
truenas · hlavní úložiště
TrueNAS icon
TrueNAS SCALE
10.169.69.69
Sdílené úložiště přes NFS a SMB. Nativně vystavuje vlastní ACME certifikáty. Jediný zdroj pravdy pro persistentní data.
NFS SMB ACME certs VLAN 169
pbs · backup
Proxmox Backup Server icon
Proxmox Backup Server
10.169.173.99
Pravidelné inkrementální zálohy všech LXC a VM s deduplikací. Kritické konfigurační cesty jsou ověřovány. Data jsou ukládána na oddělený hardware mimo výpočetní uzly.
incremental dedup scheduled VLAN 169
rpi5b · quorum
Raspberry Pi icon
Raspberry Pi 5B
10.169.91.72
Quorum zařízení clusteru — zabraňuje split-brain situacím při výpadku jednoho uzlu. U dvouuzlového clusteru je tiebreaker nutný pro správnou funkci HA.
quorum split-brain prevention
ubiquiti · routing & switching
UniFi icon
UniFi Network
všechny VLANy
Veškerý routing a switching běží na UniFi hardware. Zone-based firewall s default-deny mezi VLANy a pouze explicitně povolenými pravidly. Žádná implicitní důvěra mezi VLAN segmenty.
zone firewall default-deny 6 VLANs
02 / Síťová architektura

Segmentace pomocí VLAN

Každá třída workloadů běží ve vlastní VLAN se specifickými firewall pravidly. Tím se minimalizuje blast radius při kompromitaci služby a zároveň se vynucuje least-privilege networking jako výchozí stav.

VLAN mapa — šest segmentů
20
proxy
10.20.0.0/16
Ingress vrstva — jediný vstupní bod pro veškerý proxovaný provoz
Traefik Cloudflared keepalived VIP 10.20.0.10
30
media
10.30.0.0/16
Media stack — izolovaný, bez outbound komunikace do jiných VLAN
Plex Sonarr Radarr Prowlarr Seerr qBittorrent
40
game
10.40.0.0/16
Herní servery — izolované, port-forwardované přímo (mimo Traefik)
TeamSpeak 6 AMP
50
services
10.50.0.0/16
Hlavní aplikační VLAN — interní a split-horizon služby
Immich Authentik OpenWebUI Docmost FoundryVTT Netbox N8N +more
55
exposed
10.55.0.0/16
Internet-facing služby s přísnější izolací od VLAN 50
NextcloudForgejoForgejo runnerPortfolio
169
infra
10.169.0.0/16
Infrastruktura — hypervizory, storage, DNS a monitoring
Proxmox TrueNAS PBS Technitium Prometheus Grafana Wazuh
Firewall pravidla

Inter-VLAN pravidla

ALLOWDNS dotazy z libovolné VLAN → Technitium (VLAN 169)
ALLOWVLAN 20 → backend VLANy pouze na specifických portech
ALLOWCloudflare IP adresy → pouze VLAN 20
DENYVLAN 30 (Media) → jakákoliv jiná VLAN
DENYVLAN 40 (Game) → jakákoliv jiná VLAN
DENYVeškerý ostatní inter-VLAN provoz (default)

WAN ingress

ALLOW9987/UDP → TS6 (voice)
ALLOW32400/TCP → Plex (direct streaming)
ALLOW3478, 5349 → Nextcloud (STUN/TURN)
DENYVeškerý ostatní inbound WAN provoz
Split-horizon DNS

Technitium DNS server

10.169.188.49 · primární
10.169.139.122 · sekundární
10.154.222.213 · offsite failover
Autoritativní pro local.screedy.com. Forwarder zóna pro screedy.com — lokální override směřuje na Traefik VIP (10.20.0.10), neznámé záznamy jsou přeposílány na Cloudflare. Sekundární Technitium synchronizuje zónu pomocí zone transferu.

Konvence domén

*.local.screedy.com
Pouze interní. Autoritativní v Technitium. Nikdy není publikováno do Cloudflare DNS. Z principu nedostupné z internetu.
*.screedy.com
Veřejné nebo split-horizon. Technitium override pro interní klienty + Cloudflare DNS pro externí. Stejná doména, rozdílné IP adresy v závislosti na zdroji dotazu.
03 / Služby

Nasazené aplikace

25+ self-hosted služeb napříč šesti VLANy, všechny dostupné přes Traefik s wildcard TLS certifikáty vydanými pomocí Cloudflare DNS challenge — bez potřeby otevřených WAN portů pro webový přístup.

Produktivita & znalosti
Nextcloud icon
Nextcloud
split-horizon
nextcloud.screedy.com
Kompletní self-hosted cloud — synchronizace souborů, kalendář, kontakty, kolaborativní editace a videohovory. STUN/TURN port-forwardy obcházejí Traefik kvůli real-time komunikaci.
VLAN 55 Cloudflare tunnel STUN/TURN
Docmost icon
Docmost
split-horizon
docmost.screedy.com
Kolaborativní wiki a dokumentační platforma dostupná externě přes Cloudflare tunnel.
VLAN 50 Cloudflare tunnel
Immich icon
Immich
internal
immich.local.screedy.com
Self-hosted alternativa ke Google Photos s ML rozpoznáváním obličejů, EXIF vyhledáváním a mobilním backupem. Data uložená přes NFS na TrueNAS. Migrace z VLAN 169 do VLAN 50.
VLAN 50 NFS storage ML faces
Booklore icon
Booklore
internal
booklore.local.screedy.com
Self-hosted správa knihovny a čtečka e-booků s metadata enrichmentem a sledováním průběhu čtení.
VLAN 50
Kiwix icon
Kiwix
internal
wiki.local.screedy.com
Offline Wikipedia a referenční obsah. Využitelné při nedostupnosti internetu.
VLAN 50 Doomsday Preparation
AI & automatizace
OpenWebUI icon
OpenWebUI
split-horizon
ai.screedy.com
Webové rozhraní pro lokální LLM běžící přes LiteLLM proxy. Podporuje přepínání modelů, historii konverzací a RAG pipeline, dostupné přes Cloudflare tunnel.
VLAN 50 Cloudflare tunnel LiteLLM
N8N icon
N8N
internal
n8n.local.screedy.com
Low-code platforma pro automatizaci workflow.
VLAN 50 migrating
Changedetection icon
Changedetection
internal
changedetection.local.screedy.com
Monitoring změn webových stránek s alertingem. Sleduje upstream změny, CVE a infrastrukturní advisories.
VLAN 50 monitoring
Infrastruktura & provoz
Traefik icon
Traefik v3
internal
traefik.local.screedy.com
traefik.screedy.com
Reverse proxy a TLS termination pro všechny interní i split-horizon služby. Wildcard certifikáty přes Cloudflare DNS challenge. Dynamická konfigurace bez restartu. Proxmox HA zajišťuje automatický failover.
VLAN 20 Proxmox HA wildcard TLS metrics
Authentik icon
Authentik
internal
auth.screedy.com
Identity provider a SSO. Plánovaný forward auth middleware pro Traefik — ochrana služeb bez vlastního auth. Expozice přes Cloudflare tunnel je v plánu.
VLAN 50 SSO forward auth planned
Netbox icon
Netbox
internal
netbox.local.screedy.com
Source of truth pro síť — dokumentace VLAN, inventář zařízení a rack diagramy.
VLAN 50
Technitium DNS icon
Technitium DNS
internal
10.169.188.49
Primární DNS server se split-horizon zónami. Autoritativní pro local.screedy.com, forwarder pro screedy.com. Sekundární uzel zajišťuje HA pro DNS resolution.
VLAN 169 split-horizon zone transfer
Forgejo icon
Forgejo
split-horizon
forgejo.screedy.com
Vlastní git forge. Hostuje veškerý kód infrastruktury a aplikací, včetně CI/CD pipeline, která nasazuje toto portfolio. Actions runner ve VLAN 55 se připojuje přes SSH do cílových LXC kontejnerů pro bezprostojové nasazení.
VLAN 55Cloudflare tunnelActions runner
Media (VLAN 30 — izolovaná)
Plex icon
Plex
split-horizon
plex.screedy.com
Media server. Port-forward pro přímý streaming — záměrně obchází Traefik kvůli minimalizaci overheadu u velkých streamů. Izolováno ve VLAN 30.
VLAN 30 port-forward isolated
Arr stack
internal
*.local.screedy.com
Sonarr, Radarr, Prowlarr, Seerr, qBittorrent, Flaresolverr — plně automatizovaný pipeline pro získávání médií. Vše běží ve VLAN 30 bez přístupu do ostatních VLAN.
VLAN 30 isolated NFS storage
Gaming a zábava
FoundryVTT icon
FoundryVTT
split-horizon
vtt.screedy.com
Self-hosted virtual tabletop pro TTRPG. Externě dostupné přes Cloudflare tunnel s WebSocket podporou přes Traefik. Split-horizon DNS zajišťuje nízkou latenci pro lokální hráče.
VLAN 50 WebSocket Cloudflare tunnel
TeamSpeak 6 icon
TeamSpeak 6
port-forward
ts6.screedy.com
Voice server pro gaming. Přímý port-forward pro minimální latenci.
VLAN 40 port-forward isolated
04 / Zabezpečení

Security posture

Defence in depth přístup — od segmentace sítě na úrovni VLAN přes zero-trust přístup, automatizované TLS, SIEM monitoring až po řízení přístupu na úrovni jednotlivých služeb.

Segmentace sítě
  • Šest VLAN odděluje workloady podle rizika a účelu
  • Default-deny mezi všemi VLAN — pouze explicitní allow pravidla
  • VLAN 30 (Media) a 40 (Game) nemají outbound přístup do interních služeb
  • VLAN 55 (Exposed) dále izoluje veřejně dostupné služby od VLAN 50
  • Traefik ve VLAN 20 je jediný ingress bod pro webový provoz
Zero-trust přístup
  • Cloudflare Tunnel — žádné inbound WAN porty pro webové služby
  • Veškerý externí provoz končí na Cloudflare edge
  • *.local.screedy.com není nikdy publikováno do veřejného DNS — z principu nedostupné z internetu
  • Cloudflared LXC je izolovaný od backend VLAN — povolen pouze přístup k Traefiku
TLS všude
  • Wildcard certifikáty pro *.local.screedy.com a *.screedy.com přes Cloudflare DNS challenge
  • Bez HTTP-01 challenge — WAN porty 80/443 zůstávají uzavřené
  • Certifikáty spravované centrálně v Traefiku, automatická obnova před expirací
  • HTTPS backendy využívají serversTransport s odpovídající validací certifikátů
  • HSTS, XSS protection, frame options a referrer policy vynuceny pomocí Traefik middleware
SIEM & monitoring přístupu
  • Wazuh agent na Traefik LXC odesílá access logy a daemon logy ve formátu JSON
  • Custom Wazuh pravidla (ID 100200–100207): brute force, 5xx výkyvy, blokované přístupy, anomálie v odezvě
  • Traefik access log obsahuje ClientHost, X-Forwarded-For, DownstreamStatus, Duration, RouterName
  • Prometheus sbírá metriky z Traefiku — Grafana dashboardy pro request rate a error spiky
  • Rate-limit middleware v Traefiku: 100 req/s průměr, burst 50
  • Basic auth pro Prometheus endpoint vynucen přes Traefik middleware
05 / Observability

Monitoring & alerting

Metriky, logy a bezpečnostní události agregované do jednotné observability pipeline — problémy se tak projeví dříve, než ovlivní dostupnost služeb.

Prometheus
Sběr metrik
Sbírá metriky z Traefiku (/metrics na :8080), Unpolleru (UniFi metriky) i sebe samotného. Basic auth vynucen pomocí Traefik middleware.
Grafana
Dashboards
Datasource napojený přímo na Prometheus (obchází Traefik auth vrstvu). Dashboardy pro UniFi (AP/klienti), Traefik request rate, error rate a percentily odezvy.
Wazuh
SIEM / EDR
Agent na Traefik LXC s custom JSON decoderem pro Traefik access logy. Vlastní rule ID detekují brute-force patterny, nárůsty 5xx chyb, blokované přístupy a anomálie v odezvě.
Unpoller
Metriky sítě
Exporter pro UniFi controller napojený na Prometheus. Sleduje per-client a per-AP provoz, kvalitu signálu a využití kanálů. Pouze exporter — bez UI.
Beszel
Host monitoring
Lightweight agent-based monitoring hostů. Sleduje CPU, paměť, disk I/O a síť na úrovni LXC a VM. Nižší overhead než plné node_exporter řešení.
Loki (plánováno)
Log aggregation
Plánované rozšíření pro centralizaci logů z LXC a VM do Grafany. Aktuálně jsou logy analyzovány per-host; Loki umožní label-based dotazování napříč celým clusterem.
06 / Engineering decisions

Proč právě takto?

Klíčová architektonická rozhodnutí a trade-offy, které formovaly tento setup.

LXC místo VM pro většinu služeb
LXC kontejnery sdílí kernel hosta, díky čemuž startují výrazně rychleji a mají mnohem nižší nároky na RAM — což je u dvouuzlového clusteru zásadní omezení. Proxmox HA funguje i pro LXC, takže failover zůstává automatický. VM jsou vyhrazené pouze pro workloady, které skutečně vyžadují izolaci na úrovni kernelu, například Nextcloud.
Cloudflare Tunnel místo otevřených WAN portů
Pro webové služby nejsou potřeba žádná inbound WAN pravidla. Veškerý provoz končí na Cloudflare edge — origin IP není na tomto místě veřejně vystavena. DDoS ochrana, WAF i rate-limiting jsou řešeny na straně Cloudflare. Trade-offem je závislost na dostupnosti Cloudflare pro veřejně přístupné služby, což je v kontextu homelabu akceptovatelné riziko.
DNS challenge pro wildcard TLS
Použití Cloudflare DNS-01 ACME challenge znamená, že pro vydávání ani obnovu certifikátů není potřeba otevírat žádné porty. Jeden wildcard cert pokrývá všechny subdomény a jeho obnova je plně automatizovaná přímo v Traefiku — bez nutnosti manuálního zásahu.
VIP definovaná ještě před nasazením HA
Všechny DNS záznamy směřují na 10.20.0.10 (budoucí keepalived VIP) ještě před tím, než existuje druhý Traefik node. Jakmile bude na lenovo2 nasazen Traefik a nakonfigurován keepalived, není potřeba měnit žádné DNS záznamy — přechod proběhne zcela transparentně.
Split-horizon DNS místo oddělených domén
Interní klienti dostávají privátní záznam pro service.screedy.com na Traefik VIP pomocí Technitium forwarder zóny, zatímco externí klienti dostávají veřejný záznam z Cloudflare. Stejná doména, rozdílné resolution path — žádný hairpin přes Cloudflare a žádný rozdíl v uživatelském zážitku.
Quorum zařízení pro dvouuzlový cluster
Proxmox vyžaduje quorum pro provádění HA operací. U dvou uzlů vzniká při rozdělení sítě situace — bez tiebreakeru není možné bezpečně rozhodnout, který uzel má převzít kontrolu. Raspberry Pi tuto situaci řeší s minimálními náklady i spotřebou energie.
Samostatná VLAN 55 pro internet-facing služby
Nextcloud využívá STUN/TURN port-forwardy přímo z WAN a běží jako AiO container, který vystavuje větší attack surface. Umístění do VLAN 55 místo VLAN 50 omezuje blast radius při kompromitaci — služba nemá přístup k ostatním aplikačním službám.
07 / Technologie

Technologický stack

Přehled technologií, které v tomto prostředí aktivně používám, spravuji nebo provozuji.

Proxmox logo
Proxmox VE
Hypervisor
TrueNAS logo
TrueNAS
Storage OS
Proxmox Backup Server logo
PBS
Backup server
Traefik logo
Traefik v3
Reverse proxy
Cloudflare logo
Cloudflare
DNS / Tunnel / TLS
UniFi logo
UniFi
Switching & routing
Technitium logo
Technitium
DNS server
Prometheus logo
Prometheus
Metrics
Grafana logo
Grafana
Dashboards
Wazuh logo
Wazuh
SIEM / EDR
Authentik logo
Authentik
Identity / SSO
Docker Compose logo
Docker Compose
Container management
Nextcloud logo
Nextcloud AiO
Cloud suite
Immich logo
Immich
Photo management
Plex logo
Plex
Media server
OpenWebUI logo
OpenWebUI
AI frontend
LiteLLM logo
LiteLLM
LLM proxy
Netbox logo
Netbox
IPAM / DCIM
N8N logo
N8N
Workflow automation
Netbird logo
Netbird
WireGuard mesh
Docmost logo
Docmost
Wiki
FoundryVTT logo
FoundryVTT
Virtual tabletop
TeamSpeak logo
TeamSpeak 6
Voice comms
Matrix logo
Matrix Synapse
Chat server
Forgejo logo
Forgejo
Git forge / CI
Prowlarr logo
Prowlarr
Index management
Seerr logo
Seerr
Request management
And more...
08 / Roadmapa

Co dál

Aktuální migrace a plánovaná vylepšení směřující k plně HA a zero-trust architektuře.

Rozpracováno

Migrace Grafana, Prometheus, Wazuh a Immich do VLAN 50 — sjednocení všech aplikačních služeb mimo infrastrukturní VLAN

Plánováno

Druhý Traefik node na lenovo2 + keepalived VIP (10.20.0.10) — eliminace reverse proxy jako single point of failure
Authentik forward auth middleware v Traefiku — SSO ochrana pro služby bez vlastního autentizačního mechanismu
Grafana Loki — centralizovaná agregace logů napříč LXC a VM, nahrazující per-host analýzu logů
Aktivace Netbird — WireGuard mesh overlay pro bezpečný cross-VLAN admin přístup a remote management bez port-forwardingu
Expozice Authentiku — umožní SSO pro externí uživatele u split-horizon služeb přes Cloudflare tunnel