1. Jak se přihlásit
Nový web aeroklubu nepoužívá hesla. Místo nich máš čtyři způsoby, jak se dostat dovnitř. Vyber si ten, který ti je nejbližší — všechny vedou ke stejnému cíli a všechny jsou bezpečnější než klasické heslo.
Začínáš vždy na adrese /clenove/prihlasit . Tam uvidíš čtyři dlaždice.
🟦 Přihlášení přes Google (nejjednodušší)
Klikneš na tlačítko „Pokračovat přes Google". Web tě přesměruje na známou Googlí přihlašovací obrazovku. Vybereš svůj účet (ten, který má klub v evidenci) a Google nás jen ujistí, že to jsi opravdu ty. Žádné heslo nikam nezadáváš — Google si svého uživatele ohlídá sám.
Pro koho: Pokud používáš Gmail nebo Android telefon, máš to nejjednodušší.
✉️ Přihlašovací odkaz v emailu („Magic link")
Klikneš na „Pošli mi přihlašovací odkaz emailem", napíšeš svůj email a stiskneš Odeslat. Během chvilky ti přijde email s velkým oranžovým tlačítkem. Klikneš na tlačítko a jsi přihlášený. Hotovo.
- Odkaz platí 15 minut a dá se použít jen jednou.
- Email chodí z adresy
noreply@info.aeroklubhranice.cz. - Pokud ti nepřišel, podívej se do složky Spam nebo Hromadná pošta.
Pro koho: Pokud nepoužíváš Google ani moderní telefon, magic link funguje vždycky — jen potřebuješ přístup ke svému emailu.
🔑 Passkey — otisk prstu nebo obličej
Passkey je novější způsob, který využije čtečku otisku prstu na telefonu, snímač obličeje (Face ID) nebo Windows Hello na počítači. Místo psaní hesla se jen krátce přihlásíš tím, čím už se odemyká tvůj telefon nebo počítač.
První použití: Po přihlášení jiným způsobem (Google nebo magic link) si v profilu klikneš na „Přidat passkey". Tvůj telefon nebo počítač si tě ověří (otisk, obličej, PIN) a od té chvíle se příští přihlášení už děje jen tím gestem.
Pro koho: Pokud chceš nejrychlejší a nejbezpečnější přihlášení a máš modernější telefon/notebook (iPhone od 2018, Android od 2019, Windows 10/11 s Hello, Mac s Touch ID).
📱 QR kód — přihlášení z cizího počítače
Stalo se ti, že potřebuješ na klubový web z cizího počítače (v knihovně, kanceláři, u kamaráda)? Nemusíš ani zadávat email.
- Na cizím počítači klikneš na „Přihlásit přes QR z mobilu" — objeví se QR kód.
- Naskenuješ ho fotoaparátem na svém telefonu (kde už jsi přihlášený).
- Telefon se zeptá: „Schválit přihlášení z PC?" — Potvrdíš (otiskem prstu nebo PINem).
- PC se sám přihlásí. Žádné psaní emailu na cizí klávesnici.
Pro koho: Kdykoliv jsi mimo svůj počítač a nechceš riskovat, že by někdo viděl, co píšeš na klávesnici.
2. Veřejná část webu
Tyhle sekce uvidí každý, kdo na web zavítá — i bez přihlášení. Slouží návštěvníkům, zájemcům o lety a samozřejmě i nám pilotům pro rychlý přehled před letem.
🏠 Hlavní stránka
/ — pohled na letiště přes 2 živé webkamery, mapa letadel, která jsou právě ve vzduchu, dlaždice na seznamovací lety, výcvik a flotilu, nejnovější novinky a rychlý briefing pro piloty.
🌤️ Briefing
/briefing — nejdůležitější sekce pro piloty. Najdeš tu:
- METAR a TAF z okolních letišť (aktuální + předpověď)
- VÍTR karta — graficky znázorněný směr větru, slovní popis („slabý jihovýchodní"), boční složka pro RWY 05/23
- VFR banner — modrý/zelený podle podmínek (CAVOK / MVFR / IFR)
- Vývoj během dne — graf teploty, větru a podmínek 06-20 LT
- NOTAMy v okolí 100 km od LKHN (oznámení o uzavřeních, omezeních; jen FIR LKAA, méně šumu)
- Aktivní vzdušné prostory dnes (TSA, TRA) na mapě v okruhu 150 km — pokrývá Česko + Slovensko + Polsko. Aktivace dnes ukazujeme z aup.ans.cz (CZ) a airspace.pansa.pl (PL). Slovenské polygony jsou statické bez denní aktivity (sleduj NOTAM).
- Astronomická data — východ/západ slunce, soumrak (předpis L8030)
- ATIS a frekvence náhradních letišť
- Letadla ve vzduchu — kombinovaný zdroj OpenSky (Mode-S) + OGN (FLARM)
Briefing aktualizujeme na serveru každých 30 minut, takže otevřením stránky vidíš čerstvá data bez čekání.
🌦️ Soaring předpověď
/pocasi — pětidenní plachtařská předpověď z německých modelů DWD ICON-D2 (jemné rozlišení ~2 km na příští 48 h) + ICON-EU (~7 km na den 3-5). Aktualizováno automaticky 8× denně.
- Pět karet (dnes + 4 dny dopředu) s plachtařským indexem 0-15 a barevným odlišením (zelená = perfektní, červená = nelétat)
- Gridová mapa termiky / báze cumulu / Hcrit / 80% Espy v poloměru 150 km od LKHN (CZ + SK + PL), s krajskými hranicemi a ATZ/CTR zónami pro orientaci
- Detail dne — graf w* / báze / indexu po hodinách 06-20 LT, s grafickým profilem vystoupání na 13:00
- Vysvětlivky pod každou kartou, mapou a grafem (i pro začátečníky)
Bookmark URL pro konkrétní den: /pocasi/YYYY-MM-DD.
🏆 Soutěže
/souteze — žebříčky našich pilotů ve dvou systémech bodování:
- WeGlide (mezinárodní, volné lety) — top piloti klubu, heatmap aktivity, top let týdne, statistika letiště LKHN
- CPS — Celostátní plachtařská soutěž (oficiální bodování Aeroklubu ČR, přísnější varianta než WeGlide) — klubový žebříček + top 5 letů sezóny. Aktivních 18 pilotů klubu 2026.
Pro detail klikneš na pilota a otevře se jeho profil na WeGlide / cpska.cz.
✈️ Letadla
/letadla — flotila rozdělená na kluzáky, motorová a hosty (soukromá letadla na LKHN). U každého letadla najdeš technická data, vlastníka, fotky a — u typů, které jsou na WeGlide — i statistiky klubových letů tento rok (počet letů, body, nejdelší let s odkazem).
📜 O nás
/o-nas — historie letiště (od r. 1914) a klubu (od r. 1946) ve formě časové osy, klíčové milníky, podstatné události.
📰 Novinky
/blog — zprávy ve třech kategoriích:
- Z domácího hangáru — naše vlastní články o LKHN, soutěžích, letadlech
- Česko-Slovensko — akce konané v ČR a SR (Aeroklub.cz, domácí soutěže)
- Svět — zahraniční novinky automaticky překládané do češtiny (AI od Googlu)
📷 Galerie
/galerie — fotky z klubových akcí (MČR, IMAC, polétání). Klikneš na album → galerie → klikneš na fotku → fullscreen lightbox.
🎁 Lety pro veřejnost
/lety-pro-verejnost — katalog dárkových poukazů (3× kluzákový + 6× motorový okruh). Vyplníš poptávkový formulář → na email přijde vzorové PDF (vodoznak) → po zaplacení dostane zákazník platný poukaz s QR kódem.
🛬 Letiště LKHN
/letiste-lkhn — pilotní info: dráha 05/23 (735×150 m, tráva), paliva (AVGAS 100LL, Natural 95), poplatky, omezení, mapy ADC + VOC přímo z AIM RLP.
📅 Akce
/akce — kalendář klubových a externích akcí (soutěže, soustředění, výcvikové dny).
3. Členská sekce
Po přihlášení tě web pustí do /clenove — rozcestníku členské sekce. Najdeš tu dlaždice na všechny funkce, ke kterým máš podle své role přístup. Co konkrétně to znamená vidíš v tabulce rolí.
👤 Můj profil
/clen/profil — uprav si telefon, funkci v klubu, licence a kvalifikace, adresu, fotku. Přidej passkey pro rychlé přihlašování. Vidíš své aktivní sessions (kde jsi přihlášený) — můžeš se odhlásit ze všech zařízení najednou.
👥 Adresář členů
/clenove/adresar — kontakty na ostatní členy (jméno, foto, telefon, kvalifikace). Ideální když potřebuješ rychle někoho najít a zavolat mu.
📹 Kamery
/clenove/kamery — všechny klubové kamery pohromadě, včetně neveřejných pohledů.
📄 Dokumenty
/clen/dokumenty — archiv zápisů z Rady, VČS, výročních zpráv, manuálů letadel (POH). Filtrovatelné dle kategorie, vyhledávání podle názvu.
📅 Kalendář služeb
/clen/sluzby — rozpis služeb (HRANICE RADIO + TOW vlekař) ve formě grid kalendáře. Přepnutím „Jen moje" vidíš celý rok jen své služby.
💡 Tip: Stránka má tvoji osobní ICS adresu — zkopírovatelný odkaz, který si vložíš do Google Kalendáře, Outlooku nebo iOS Kalendáře. Tvoje služby ti budou chodit automaticky do telefonu jako události s připomínkou.
📷 Moje galerie
/clen/galerie (aktivní členové) — vytvoř si vlastní fotogalerii z akce nebo letu. Fotky můžeš přetáhnout myší (drag&drop), web zvládne i fotky z iPhonu (formát HEIC). Můžeš měnit pořadí, vybrat hlavní fotku, popsat každou fotku. Až bude galerie hotová, klikni Publikovat — objeví se v hlavní /galerie sekci, kde si ji mohou prohlédnout všichni návštěvníci.
🎟️ Dárkové poukazy
/clen/poukazy (jen vlekaři + admin) — mobilní obrazovka pro vlekaře: vyhledat poukaz dle jména zákazníka, zobrazit detail letu, tlačítko Realizovat po dokončení letu (zapíše čas do databáze).
📋 Nástěnka
/clenove/nastenka — interní oznámení klubu (brigády, technika, soutěže). Aktuálně placeholder, plné funkce přibudou v dalších iteracích.
4. Role a oprávnění
Každý člen má jednu nebo víc rolí. Role rozhodují, co může v aplikaci dělat. Role se neslučují — admin má přístup ke všemu, editor k obsahu, létající a nelétající členové ke společné členské sekci. Hosté projdou login, ale vidí jen veřejnou část (typicky čekají na schválení).
Aktivní účet
Účet smí provést login (Google / magic link / passkey / QR cross-device) a používat členskou sekci v rozsahu rolí.
Neaktivní účet
Bývalí členové, blokované účty, dočasné suspenze. Login bude odmítnut, ale historie členství zůstává v evidenci klubu. Aktivní sessions zůstávají do vypršení (max 30 dní).
| Co | Admin | Editor | Létající | Nelétající | Host |
|---|---|---|---|---|---|
| Veřejná část Homepage, Briefing, Letadla, O nás, Galerie | ✓ | ✓ | ✓ | ✓ | ✓ |
| Členská sekce /clenove — adresář, kamery, dokumenty, profil | ✓ | ✓ | ✓ | ✓ | — |
| Vidět dokumenty Zápisy Rady, VČS, výroční zprávy, manuály letadel | ✓ | ✓ | ✓ | ✓ | — |
| Stahovat manuály letadel (POH) Pilotní příručky pro Blaník, Cessna, Cirrus, Discus… | ✓ | ✓ | ✓ | — | — |
| Nahrávat / mazat dokumenty Upload PDF (zápisy Rady, výroční zprávy) | ✓ | ✓ | — | — | — |
| Editovat klubový obsah (CMS) Akce, blog, historie, novinky, údaje klubu | ✓ | ✓ | — | — | — |
| Spravovat členskou kartotéku Vytvořit / upravit / deaktivovat účet, fotky, GDPR údaje | ✓ | — | — | — | — |
| Editovat svůj profil Emaily, passkeys, telefon, foto | vlastní | vlastní | vlastní | vlastní | vlastní |
| Healthcheck / Audit log / Parametry Stav stacku, přihlašovací události, env switche | ✓ | — | — | — | — |
✓ = role tu má oprávnění · — = nemá · vlastní = jen u svého záznamu (např. svůj profil, ne cizí).
5. Jak je web zabezpečený
Stručný přehled vrstev ochrany. Klubový web hostí citlivá data (členská kartotéka, dokumenty Rady, kamery LKHN), takže security není okrajová věc — je to vícevrstvá kombinace technických opatření.
Bez hesel — 4 metody přihlášení
Klubový web nemá hesla. Login probíhá přes Google OAuth, magic link (jednorázový odkaz v emailu), passkey (Face ID / Touch ID / Windows Hello) nebo QR cross-device. Žádné hashe hesel ani přenos hesel po síti — celá kategorie útoků (brute-force, credential stuffing, slabá hesla) odpadá.
Anti-enumeration
Magic link i Google OAuth flow vrací stejnou odpověď bez ohledu na to, jestli email v evidenci je nebo ne. Útočník nemůže postupně zkoušet emaily a zjišťovat, kdo je členem klubu — rychlá reakce vs pomalá reakce, či explicitní „neexistuje" jsou eliminovány.
Geo-block na login endpoiny
Caddy + MaxMind GeoLite2 blokuje přístup na všechny /api/auth/* endpointy
z Ruska, Číny, Severní Koreje, Íránu a Běloruska — regiony
s minimem legitimního klubového provozu, ale značným podílem
automatizovaných botů. Skript-kiddie scanner ze stovek IP
v RU se ani nedostane k API.
Rate limit + Cloudflare Turnstile
Magic link: max 5× za hodinu na 1 email + 10× za hodinu na 1 IP.
QR cross-device: 10× za hodinu na 1 IP. Captcha (Turnstile)
před odesláním poptávky — bez clicku se request neodešle.
Pomalý útok přes proxy nebo z více IP narazí na sčítání
v SQLite tabulce rate_limits.
Bezpečné session cookies
Session token je 32 bajtů náhodných hexa znaků (256 bit entropie — neguessable). Cookie je HttpOnly (JavaScript se k tokenu nedostane → XSS nepomůže), Secure (jen přes HTTPS), SameSite=Lax (CSRF ochrana proti cross-site POST). Tokens jsou v SQLite, manuální revoke kdykoli přes Odhlásit ze všech zařízení v profilu.
Audit log všech akcí
Každý login, neúspěšný pokus, změna profilu, registrace passkey, upload dokumentu — vše se zapisuje do append-only audit logu (IP, user-agent, čas, typ akce). Admin má dashboard k filtrování a vyhledávání podezřelých vzorů. Slouží i jako důkaz pro GDPR — kdo kdy získal přístup k členské kartotéce.
HTTPS všude + DKIM/SPF/DMARC
Caddy automaticky obnovuje Let's Encrypt certifikát.
Veřejný HTTP přesměruje na HTTPS. Magic link emaily
jdou z noreply@info.aeroklubhranice.cz
s plnou DKIM podpisem + SPF + DMARC — neoddělatelná
podpis serveru, příjemce vidí ✓ ověřeno (Gmail, Outlook
i Seznam).
Denní zálohy do GCS
Každý den ve 3:00 ráno systemd timer na VM zazálohuje SQLite DB
(členové, sessions, audit, dokumenty metadata) přes
.backup + gzip
do Google Cloud Storage. Retence 3-tier:
30 daily / 90 weekly / 365 monthly. Disaster recovery test
v runbooku.
Healthcheck — 19 kontrol stavu
Každých 15 min systemd timer kontroluje: aktuálnost briefingu, běh všech systemd timerů (briefing, aircraft, healthcheck, backup), dostupnost veřejných URL, NOAA/AUP zdroje, čerstvost JSON snapshotů, MJPEG kamer, GitLab Runner. Admin má dashboard.
Open source + GitLab CI/CD
Celý kód je na GitLabu pod kontrolou klubu, žádné closed-source černé skříňky. Každá změna je zaznamenaná v gitu (kdo, kdy, co). Continuous deployment přes self-hosted runner — žádné zpětné úpravy „přímo na serveru" které by se nedaly dohledat.
Co web ne-řeší zcela: VPN abuse — útočník v Rusku s evropským VPN exit nodem projde geo-blockem. Pro klub o 120 členech je to akceptovaný residual risk (paid threat-intel feed by stál neúměrně oproti pravděpodobnosti cíleného útoku). Vrstvená obrana (Turnstile + rate limit + bezhesla auth + audit) je dostatečná. Cloudflare migrace s bot-managementem je strategický next step.
6. Tvoje zpětná vazba
Nový web je nový — ne všechno bude napoprvé fungovat dokonale, a ne všechno tě bude bavit. Tvoje připomínky mě zajímají.
V pravém dolním rohu obrazovky vidíš oranžové tlačítko 💬 „Mám nápad / chybu". Klikni na něj kdykoliv — ať jsi kdekoliv na webu — a otevře se ti formulář.
Můžeš nahlásit:
- Chybu — něco nefunguje, špatně se zobrazuje, padá
- Návrh — co bys přidal, co chybí, co by mohlo být lepší
- Dotaz — něco nechápeš, něco nenajdeš
- Jiné — cokoliv mě napadne
Jméno a kontakt jsou volitelné. Pokud chceš odpověď, napiš email nebo telefon. Zprávy řeší správce klubu.