Build all apps from Markdown content; Compose Desktop replaces GTK on Linux and Windows

- content/ + scripts/build-content.py produce content.json for every app
- stable lesson IDs with one-time progress migration (Swift, Kotlin)
- shared answer-check tests (tests/answers.json) for Kotlin and Swift
- android/desktop: Compose app with updater, speech and GTK progress import
- CI packages AppImage and Windows zip with ProGuard, runs the tests

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
pepaskopec-blip 2026-10-09 20:40:37 +02:00
commit c3bc32113b
964 changed files with 57285 additions and 1156 deletions

View file

@ -0,0 +1,6 @@
---
nazev: VLANs and trunks
popis: Logical networks on one switch and a tagged link.
nazev_cviceni: Quiz: VLANs and trunks
nadpis_kvizu: Quiz on VLANs and trunks
---

View file

@ -0,0 +1,71 @@
---
id: site-2-vlan-a-trunk
puvodni: net2.1
nazev: VLAN a trunk
popis: Logické sítě na jednom přepínači a značkovaný spoj.
nazev_cviceni: Kvíz: VLAN a trunk
nadpis_kvizu: Kvíz k tématu VLAN a trunk
---
# Výklad
## Oddělení provozu
*VLAN*
- VLAN sdružuje porty do jedné vysílací domény.
- Počítače v různých VLAN spolu přímo na druhé vrstvě nemluví.
- Číslo VLAN se na trunku vozí ve značce 802.1Q.
- Nativní VLAN na trunku jede neznačkovaná. Na obou koncích musí sedět.
> Tip: VLAN není samostatný kabel, je to značka v rámci.
## Access a trunk
*Porty*
- Access port se připojuje ke koncovému zařízení.
- Trunk spojuje přepínače nebo přepínač s routerem.
- Povolené VLAN na trunku omezí, co smí přejít.
- Špatně nastavený trunk pustí cizí VLAN do špatné sítě.
> Tip: access port patří do jedné VLAN, trunk jich nese víc.
## K čemu se VLAN hodí
*Provoz*
- Hosté, škola a správa mohou sdílet jeden přepínač.
- Hlasová VLAN oddělí telefony od dat.
- Mezi VLAN se dostane jen směrovač nebo přepínač třetí vrstvy.
- VLAN zmenšuje broadcast, nenahrazuje firewall.
> Tip: oddělení hostů od školy nesmí stát jen na hesle Wi-Fi.
# Kvíz
## Co VLAN na přepínači dělá?
- [x] Sdruží porty do jedné vysílací domény
- Zrychlí procesor serveru
- Nahradí šifrování WPA3
- Přidělí veřejnou IPv4 adresu
> VLAN odděluje provoz na druhé vrstvě.
## Jak se VLAN pozná na trunku?
- [x] Značkou 802.1Q v rámci
- Jinou MAC adresou zdroje
- Jiným konektorem RJ11
- Bitem v ICMP
> 802.1Q vloží do ethernetového rámce číslo VLAN.
## Kam patří access port?
- [x] Ke koncovému počítači v jedné VLAN
- Jen mezi dvěma routery
- Na optický spoj s vlnovým multiplexem
- Do napájecího zdroje
> Access port má jednu VLAN a značku obvykle sundá.
## Jak spolu mluví dvě různé VLAN?
- [x] Přes směrování, ne přímo na druhé vrstvě
- Samy od sebe, VLAN je jen barva kabelu
- Jedině přes ARP broadcast do všech VLAN
- Jen když mají stejnou MAC adresu
> Mezi VLAN je potřeba router nebo L3 switch.

View file

@ -0,0 +1,6 @@
---
nazev: STP and loops
popis: Why a layer-2 loop takes the network down, and how STP breaks it.
nazev_cviceni: Quiz: STP and loops
nadpis_kvizu: Quiz on STP and loops
---

View file

@ -0,0 +1,71 @@
---
id: site-2-stp-a-smycky
puvodni: net2.2
nazev: STP a smyčky
popis: Proč smyčka na druhé vrstvě shodí síť a jak ji STP přeruší.
nazev_cviceni: Kvíz: STP a smyčky
nadpis_kvizu: Kvíz k tématu STP a smyčky
---
# Výklad
## Broadcastová bouře
*Smyčka*
- Dva kabely mezi stejnými přepínači vytvoří smyčku.
- Broadcast se kopíruje na všechny porty a vrátí se zpět.
- Přepínač se zahltí a přestane přenášet užitečný provoz.
- Na třetí vrstvě paket TTL snižuje, ethernetový rámec ne.
> Tip: na druhé vrstvě není TTL, rámec může kroužit donekonečna.
## Jedna aktivní cesta
*STP*
- Přepínače si volí root bridge, obvykle nejnižší bridge ID.
- Některé porty zůstanou ve stavu blocking a rámce nepřeposílají.
- Když aktivní linka spadne, blocking port se může otevřít.
- RSTP reaguje rychleji než původní STP.
> Tip: STP nevybírá nejrychlejší cestu pro data, brání smyčce.
## Porty, které nemají přepínat
*Ochrana*
- PortFast na access portu zrychlí připojení počítače.
- BPDU Guard port shodí, když na něm přijde BPDU.
- Root Guard brání tomu, aby se cizí switch stal rootem.
- Záložní kabel má smysl, ale jen se zapnutým STP.
> Tip: port k tiskárně nemá poslouchat cizí BPDU.
# Kvíz
## Proč je smyčka na přepínačích nebezpečná?
- [x] Broadcast může kroužit bez omezení TTL
- IPv4 přestane mít masku
- DNS přejmenuje domény
- Procesor v počítači se vypne
> Ethernetový rámec nemá TTL.
## Co STP s nadbytečným portem udělá?
- [x] Nechá ho blokovat, aby nevznikla smyčka
- Zdvojnásobí rychlost obou kabelů
- Smaže MAC tabulku navždy
- Přesměruje port na VLAN 1 a vypne ostatní
> Blocking port rámce nepřeposílá, dokud není potřeba.
## K čemu je BPDU Guard?
- [x] Shodí access port, na kterém se objeví cizí přepínač
- Šifruje heslo k Wi-Fi
- Přiděluje IPv6 adresy
- Měří útlum optiky
> Na portu pro počítač nemá co dělat protokol přepínačů.
## Které tvrzení o RSTP sedí?
- [x] Na výpadek reaguje rychleji než původní STP
- Ruší potřebu VLAN
- Funguje jen na IPv6
- Nahrazuje směrovací tabulku
> RSTP zkracuje čekání při změně topologie.

View file

@ -0,0 +1,6 @@
---
nazev: DHCP and DNS
popis: Who hands out an address, and who translates a name.
nazev_cviceni: Quiz: DHCP and DNS
nadpis_kvizu: Quiz on DHCP and DNS
---

View file

@ -0,0 +1,71 @@
---
id: site-2-dhcp-a-dns
puvodni: net2.3
nazev: DHCP a DNS
popis: Kdo přiděluje adresu a kdo překládá jméno.
nazev_cviceni: Kvíz: DHCP a DNS
nadpis_kvizu: Kvíz k tématu DHCP a DNS
---
# Výklad
## Adresa bez opisování
*DHCP*
- Klient pošle broadcast a hledá server.
- Nabídka obsahuje adresu, masku, bránu a DNS.
- Zapůjčení má dobu platnosti a klient ji obnovuje.
- Rezervace přiváže adresu ke konkrétní MAC adrese.
> Tip: DHCP dává adresu na čas, ne navždy.
## Co se nesmí překrývat
*Rozsah*
- Rozsah musí ležet v síti, kterou má brána.
- Statické adresy serverů do rozsahu nepatří, nebo se vyloučí.
- Špatná brána v nabídce odřízne celou VLAN od internetu.
- DHCP relay přenese požadavek z VLAN, kde server není.
> Tip: dva servery se stejnou adresou v jedné síti si škodí.
## Jméno na adresu
*DNS*
- A záznam ukazuje na IPv4, AAAA na IPv6.
- Reverzní PTR překládá adresu zpět na jméno.
- Rekurzivní resolver se ptá dál, autoritativní server zónu vlastní.
- TTL u záznamu říká, jak dlouho se smí odpověď cacheovat.
> Tip: DNS není totéž co DHCP. Jedno dává adresu, druhé jméno.
# Kvíz
## Co klient od DHCP obvykle dostane?
- [x] Adresu, masku, bránu a DNS
- Jen heslo k Wi-Fi
- Novou MAC adresu
- Kořenový certifikát webu
> To jsou čtyři údaje, bez kterých stanice v síti nepracuje.
## Proč se rezervace v DHCP hodí?
- [x] Zařízení s danou MAC dostane pořád stejnou adresu
- Vypne potřebu masky
- Nahradí směrování
- Zašifruje disk
> Rezervace je vhodná pro tiskárny a kamery.
## Čím se liší A a AAAA?
- [x] A je IPv4, AAAA je IPv6
- A je pošta, AAAA je web
- A je jméno VLAN, AAAA je číslo portu
- Oba ukazují jen na IPv4
> Čtyři A v názvu připomínají delší IPv6 adresu.
## K čemu je DHCP relay?
- [x] Pošle požadavek z jiné VLAN k serveru
- Překládá jména bez DNS
- Blokuje STP
- Mění rychlost portu na 10 Gb/s
> Broadcast DHCP jinak VLAN neopustí.

View file

@ -0,0 +1,6 @@
---
nazev: NAT and PAT
popis: One public address for many computers.
nazev_cviceni: Quiz: NAT and PAT
nadpis_kvizu: Quiz on NAT and PAT
---

View file

@ -0,0 +1,71 @@
---
id: site-2-nat-a-pat
puvodni: net2.4
nazev: NAT a PAT
popis: Jedna veřejná adresa pro mnoho počítačů.
nazev_cviceni: Kvíz: NAT a PAT
nadpis_kvizu: Kvíz k tématu NAT a PAT
---
# Výklad
## Soukromé adresy ven
*NAT*
- NAT přepíše zdrojovou adresu při odchodu z lokální sítě.
- Zpět router podle tabulky překladů provoz vrátí.
- Zvenku nikdo sám od sebe spojení dovnitř nenaváže.
- To je vedlejší efekt, ne náhrada firewallu.
> Tip: 192.168.0.0/16 a 10.0.0.0/8 na internetu směrovat nejdou.
## Mnoho počítačů, jedna adresa
*PAT*
- Více vnitřních adres sdílí jednu veřejnou.
- Rozliší je zdrojový port.
- Domácí router dělá téměř vždy PAT, ne čistý NAT jedna ku jedné.
- Dojdou-li porty, nová spojení se neotevřou.
> Tip: PAT si pamatuje i číslo portu, ne jen adresu.
## Když má server být vidět
*Dovnitř*
- Port forward pošle příchozí port na vnitřní adresu.
- Na serveru pak musí poslouchat daná služba a firewall ji pustit.
- DMZ na domácím routeru vystaví jeden počítač hodně otevřeně.
- Lepší je konkrétní port než celá DMZ.
> Tip: přesměrování portu otevře jen tu službu, kterou opravdu chcete.
# Kvíz
## Proč stanice s adresou 192.168.1.20 není z internetu vidět přímo?
- [x] Je to soukromá adresa a ven jde až přes NAT
- IPv4 takové adresy nezná
- MAC adresa se na internetu nesmí použít jako jméno
- DNS soukromé adresy maže
> Soukromé rozsahy se mezi poskytovateli nesměrují.
## Čím se PAT liší od NAT jedna ku jedné?
- [x] Více vnitřních adres sdílí jednu veřejnou a liší se portem
- PAT šifruje provoz
- PAT funguje jen pro IPv6
- PAT ruší potřebu brány
> Překlad zahrnuje adresu i port.
## K čemu je přesměrování portu?
- [x] Příchozí spojení na daný port pošle na vnitřní server
- Přidělí VLAN
- Zapne STP
- Změní masku celé školy na /8
> Bez něj zvenku na vnitřní web sami nedosáhnete.
## Proč NAT není firewall?
- [x] Jen překládá adresy, pravidla provozu řeší firewall
- NAT umí totéž co antivir
- NAT kontroluje hesla uživatelů
- NAT šifruje Wi-Fi
> Nechtěný publikovaný port NAT klidně pustí.

View file

@ -0,0 +1,6 @@
---
nazev: IPv6 basics
popis: A longer address, a different notation, and what stays the same.
nazev_cviceni: Quiz: IPv6 basics
nadpis_kvizu: Quiz on IPv6 basics
---

View file

@ -0,0 +1,71 @@
---
id: site-2-ipv6-zaklady
puvodni: net2.5
nazev: IPv6 základy
popis: Delší adresa, jiný zápis a co se nemění.
nazev_cviceni: Kvíz: IPv6 základy
nadpis_kvizu: Kvíz k tématu IPv6 základy
---
# Výklad
## 128 bitů
*Adresa*
- Adresa má osm skupin po čtyřech hexadecimálních číslicích.
- Prefix se píše jako /64, ne jako stará maska 255.255.255.0.
- Link-local adresa fe80:: platí jen na tom spoji.
- Globální adresa je vidět i mimo místní spoj.
> Tip: nuly v jedné skupině za sebou smí zkrátit :: jen jednou.
## SLAAC a DHCPv6
*Přidělení*
- Router advertisement řekne prefix a jestli se stanice smí nastavit sama.
- SLAAC složí adresu z prefixu a identifikátoru rozhraní.
- DHCPv6 přidá adresu nebo jen DNS, podle příznaků.
- Obě varianty mohou běžet vedle sebe.
> Tip: výchozí bránu v IPv6 často ohlašuje router, ne DHCP.
## Dual stack
*Vedle IPv4*
- Počítač může mít IPv4 i IPv6 naráz.
- DNS AAAA záznam rozhoduje, jestli se klient zkusí spojit po IPv6.
- NAT u IPv6 není nutný tak jako u IPv4, ale firewall ano.
- Ping na IPv6 je jiný příkaz než ping na IPv4, podle systému.
> Tip: IPv6 nevypínejte jen proto, že mu nerozumíte. Rozbitý IPv6 zpomalí i weby.
# Kvíz
## Jak je IPv6 adresa dlouhá?
- [x] 128 bitů
- 32 bitů
- 48 bitů
- 256 bitů
> IPv4 má 32 bitů, IPv6 čtyřikrát tolik.
## Která adresa je link-local?
- [x] fe80::1
- 192.168.1.1
- 8.8.8.8
- 255.255.255.255
> fe80:: platí jen na místním spoji.
## Kdo v IPv6 často oznámí prefix?
- [x] Router advertisement
- ARP request
- STP hello
- Jen ruční zápis do hosts
> Router říká stanicím, jaký prefix na spoji platí.
## Co znamená dual stack?
- [x] Zařízení používá IPv4 i IPv6
- Dva switche v jedné VLAN
- Dvě masky u jedné IPv4 adresy
- Záloha jen na pásku
> Oba protokoly běží současně.

View file

@ -0,0 +1,6 @@
---
nazev: Static routing
popis: A hand-written route, the metric, and when it is no longer enough.
nazev_cviceni: Quiz: Static routing
nadpis_kvizu: Quiz on Static routing
---

View file

@ -0,0 +1,71 @@
---
id: site-2-staticke-smerovani
puvodni: net2.6
nazev: Statické směrování
popis: Ruční cesta, metrika a kdy přestane stačit.
nazev_cviceni: Kvíz: Statické směrování
nadpis_kvizu: Kvíz k tématu Statické směrování
---
# Výklad
## Kam s paketem
*Trasa*
- Záznam říká síť, masku nebo prefix a další skok.
- Další skok musí být dosažitelný na přímo připojeném rozhraní.
- Výchozí trasa 0.0.0.0/0 chytí vše, co nemá přesnější záznam.
- Přesnější prefix vyhraje nad kratším.
> Tip: směrovací tabulka se dívá na síť, ne na jednu adresu stanice.
## Když je cest víc
*Metrika*
- Statická trasa má lepší vzdálenost než OSPF nebo RIP.
- Metrika porovnává trasy ze stejného zdroje.
- Plovoucí statická trasa má horší vzdálenost a čeká jako záloha.
- Špatný další skok vytvoří černou díru: paket odejde a ztratí se.
> Tip: nižší administrativní vzdálenost znamená důvěryhodnější zdroj trasy.
## Kdy ruční tabulka nestačí
*Meze*
- Statika je přehledná v malé síti a na okraji k poskytovateli.
- Neumí sama obejít spadlou cestu, pokud záloha není připravená.
- Na směrovači musí sedět trasa tam i zpět, jinak odpověď nepřijde.
- Změna adresace znamená obejít všechny ruční záznamy.
> Tip: deset poboček se statickými trasami neudržíte po každé změně.
# Kvíz
## Na co se směrovač dívá při výběru trasy?
- [x] Na síť a prefix, ne na jméno počítače
- Na barvu kabelu
- Na VLAN jméno v DNS
- Jen na MAC adresu cíle
> Třetí vrstva směruje podle prefixu.
## Která trasa je výchozí?
- [x] 0.0.0.0/0
- 255.255.255.255/32
- 192.168.1.1/32
- ::1/128
> Nulová síť s nulovým prefixem chytí zbytek.
## Co je plovoucí statická trasa?
- [x] Záložní ruční trasa s horší vzdáleností
- Trasa, která plave mezi VLAN bez routeru
- Automatický OSPF
- Záznam jen v ARP
> Nastoupí, až když zmizí lepší cesta.
## Proč odpověď ze serveru nedorazí, i když tam paket došel?
- [x] Chybí zpáteční trasa
- TCP nemá porty
- IPv4 neumí odpovědi
- Switch maže cílové MAC adresy
> Cesta musí existovat oběma směry.

View file

@ -0,0 +1,6 @@
---
nazev: ACLs and filtering
popis: A list that permits traffic or drops it.
nazev_cviceni: Quiz: ACLs and filtering
nadpis_kvizu: Quiz on ACLs and filtering
---

View file

@ -0,0 +1,71 @@
---
id: site-2-acl-a-filtrovani
puvodni: net2.7
nazev: ACL a filtrování
popis: Seznam, který provoz pustí a který zahodí.
nazev_cviceni: Kvíz: ACL a filtrování
nadpis_kvizu: Kvíz k tématu ACL a filtrování
---
# Výklad
## Pořadí rozhoduje
*Pravidla*
- ACL zkouší řádky shora dolů.
- Na konci bývá tiché zamítnutí všeho ostatního.
- Pravidlo umí adresu, protokol a port.
- Jedno špatné pořadí otevře službu, kterou jste chtěli zavřít.
> Tip: první shoda vyhrává. Obecné povolení na začátku pozdější zákaz schová.
## Dovnitř a ven
*Směr*
- Příchozí ACL sedí na paketech, které do rozhraní vcházejí.
- Odchozí ACL sedí na paketech, které rozhraní opouštějí.
- Filtr na VLAN rozhraní hlídá provoz mezi sítěmi.
- ACL na směrovači nevidí provoz, který zůstane uvnitř jednoho switche.
> Tip: blíž zdroji filtrujte to, co nemá vůbec vstoupit.
## Co obvykle pustit
*Praxe*
- Správa směrovače nemá poslouchat z hostovské VLAN.
- Do serverové sítě pusťte jen porty služeb, které tam jsou.
- ICMP můžete omezit, ale úplný zákaz ztíží hledání chyb.
- Po změně ACL ověřte, že legitimní provoz pořád prochází.
> Tip: nejdřív povolte, co potřebujete, a zbytek nechte spadnout.
# Kvíz
## Jak ACL vybírá pravidlo?
- [x] Použije první řádek, který sedí
- Sečte všechny řádky a udělá průměr
- Vždy použije poslední řádek
- Ptá se DNS
> Pořadí je součást významu seznamu.
## Co udělá tiché zamítnutí na konci?
- [x] Zahodí provoz, který žádný řádek nepovolil
- Povolí všechno, co zbylo
- Přepne port do trunku
- Pošle paket do IPv6
> Co není povoleno, neprojde.
## Proč ACL na routeru nehlídá dva počítače v jedné VLAN?
- [x] Jejich rámce jdou jen přes switch a k routeru nemusí
- ACL umí jen Wi-Fi
- VLAN nemá MAC adresy
- TCP takový provoz šifruje před switchem
> Provoz uvnitř VLAN zůstane na druhé vrstvě.
## Kam nepatří správa routeru?
- [x] Do hostovské sítě
- Na konzolový port technika
- Do správní VLAN
- Na šifrované SSH z dohledu
> Host nemá mít cestu na správu infrastruktury.

View file

@ -0,0 +1,6 @@
---
nazev: Enterprise Wi-Fi
popis: SSIDs, WPA3, and why one password on the wall is not enough.
nazev_cviceni: Quiz: Enterprise Wi-Fi
nadpis_kvizu: Quiz on Enterprise Wi-Fi
---

View file

@ -0,0 +1,71 @@
---
id: site-2-podnikova-wi-fi
puvodni: net2.8
nazev: Podniková Wi-Fi
popis: SSID, WPA3 a proč jedno heslo na nástěnce nestačí.
nazev_cviceni: Kvíz: Podniková Wi-Fi
nadpis_kvizu: Kvíz k tématu Podniková Wi-Fi
---
# Výklad
## Více sítí, jedna infrastruktura
*SSID*
- Jedno rádio může ohlašovat víc SSID.
- Každé SSID se mapuje na VLAN.
- Schované SSID není zabezpečení, jméno jde pořád zachytit.
- Stejné SSID na více přístupových bodech umožní přechod.
> Tip: hostovské SSID má skončit v jiné VLAN než učitelé.
## WPA2 a WPA3
*Klíče*
- WPA2-Personal sdílí jedno heslo.
- WPA2-Enterprise ověřuje uživatele přes RADIUS.
- WPA3 lépe chrání i slabší hesla a má lepší dopředné utajení.
- Starý WEP se nepoužívá.
> Tip: společné heslo PSK se nedá vzít jednomu člověku, aniž by ho dostali všichni.
## Kanály a přechod
*Pokrytí*
- Pásmo 2,4 GHz má málo nepřekrývajících se kanálů.
- 5 GHz má víc kanálů a hůř prochází zdí.
- Výkon nesmí být zbytečně vysoký, jinak buňky slyší i cizí provoz.
- Roaming funguje, když se SSID a zabezpečení shodují.
> Tip: dva sousední body na stejném kanále si překážejí.
# Kvíz
## Kam má vést hostovské SSID?
- [x] Do vlastní VLAN, oddělené od školní sítě
- Do stejné sítě jako ředitelna
- Přímo do správy routeru
- Do sítě bez DHCP i bez izolace
> Host nemá vidět školní servery.
## Čím se liší WPA2-Enterprise od společného hesla?
- [x] Každý uživatel se ověřuje zvlášť, často přes RADIUS
- Nemá šifrování
- Funguje jen na 2,4 GHz
- Sdílí jeden klíč napsaný na tabuli
> Účet jde odebrat jednomu člověku.
## Proč schované SSID není ochrana?
- [x] Jméno sítě jde při připojení stejně zachytit
- Skryté SSID nejde vůbec použít
- WPA3 ho zakazuje
- Switch ho vyhlásí v STP
> Utajené jméno není šifra.
## Co vadí dvěma sousedním AP na stejném kanále?
- [x] Slyší se a kazí si přenos
- Smažou si VLAN
- Přestanou dělat DHCP
- Změní IPv6 na IPv4
> Kanály se mají plánovat, ne nechat náhodě.