Přehled odvedené práce
Systém pro revizní a údržbové protokoly + paměť o zákaznickém vybavení. Tento přehled shrnuje, co bylo vytvořeno, zabezpečeno a nasazeno — a co ještě zbývá ke spuštění.
Celá aplikace je funkčně hotová a ověřená.
| Oblast | Co je hotové |
|---|---|
| Přihlášení | E-mail + heslo + dvoufázové ověření (2FA / TOTP s QR kódem), záložní kódy, zámek účtu po neúspěšných pokusech, CAPTCHA (Turnstile) na přihlášení |
| Zákazníci | Vyhledávání podle IČO, jména i adresy (i bez diakritiky), detail zákazníka; data tažená z Fakturoidu (jen čtení) |
| Paměť o vybavení | Evidence zařízení u každého zákazníka; formulář se předvyplní z minulé návštěvy („Načíst předchozí") — klíčová funkce v1 |
| Šifrované poznámky | Poznámky u zákazníka (např. hesla zařízení) — historie změn, obnovení, vše šifrované |
| Šifrované přílohy | Nahrávání a stahování souborů (PDF / obrázky / text), kontrola typu i velikosti, limit na zákazníka, vše šifrované |
| Generování protokolů | Revize i údržba, všechny 4 moduly (CCTV / EKV / DT / Dveře) + HDD SMART, česká diakritika v PDF, odkazy na ČSN EN 50678 / ČSN 33 1600 ed.2 |
| Archiv | Každé PDF + data se ukládají trvale; filtrování (rok / modul / technik), náhled, znovuvygenerování s vodoznakem |
| Evidenční čísla | Přidělována serverem (bez možnosti kolize nebo přepsání) |
| Správa uživatelů | Zakládání, pozvánky, dvě role (admin / technik), deaktivace/aktivace účtů |
| Auditní log | Záznam citlivých operací (24+ typů událostí) |
| Automatické úlohy | Denní a týdenní úklid, týdenní export auditu, zálohování databáze |
Aplikace prošla úplnou bezpečnostní prověrkou (30. 5. 2026). Jádro přihlášení a oprávnění bylo shledáno v pořádku — žádné obejití rolí, žádný neověřený přístup k chráněným místům.
Nalezeno a opraveno:
unsafe-inline, COOP/CORP, ochrana proti XSS u poznámek).Aplikace byla původně postavená pro platformu Cloudflare. Na přání klienta („server, na který se dá přihlásit přes SSH") byla přenesena na vlastní server Hetzner — Node.js + PostgreSQL 16 + objektové úložiště, za webovým serverem Caddy.
Přenos byl podstatná inženýrská práce: cílem bylo, aby stejná aplikace běžela beze změny vnitřní logiky na nové platformě. Toho jsme dosáhli vrstvou „překladačů" mezi databázemi a úložišti — žádná z 13 služeb ani 11 cest v aplikaci se nemusela přepisovat.
Rozsah: ~162 souborů změněno, ~15 800 řádků. Aplikace odladěna a otestována na lokálním prostředí shodném s produkcí.
Server 167.233.22.168 (pořízen 1. 6. 2026) je zabezpečený a aplikace je na něj
nasazená a ověřená na zkušebním provozu — zatím dostupná jen lokálně na serveru, za firewallem,
ne ještě veřejně na internetu.
| Krok | Stav |
|---|---|
| Zrušeno uniklé heslo (zaslané kdysi e-mailem v otevřené podobě) | ✅ hotovo |
| Přihlášení na server pouze přes SSH klíč (heslo zakázáno a ověřeno) | ✅ hotovo |
| Firewall (SSH jen ze správcovské IP) | ✅ ověřeno |
| Instalace databáze (PostgreSQL 16), Node.js, webový server (Caddy) | ✅ hotovo |
| Vyladění serveru na 4 GB RAM (paměťové limity, odkládací prostor) | ✅ hotovo |
| Aktualizace systému + restart na nové jádro | ✅ ověřeno |
| Nasazení aplikace + spuštění jako systémové služby (23 tabulek) | ✅ běží |
| Zálohování + zkušební obnovení ze zálohy (šifrovaná záloha → úložiště → obnova) | ✅ ověřeno |
| Automatické zálohy (denně; úklid: 7 dní lokálně, 90 dní v úložišti) | ✅ zapnuto |
| Fakturoid — reálné přístupy nasazené a ověřené (viz sekce 5) | ✅ hotovo |
| Objektové úložiště + 3 oddíly (přílohy, archiv, zálohy) | ✅ funkční |
| Produkční HTTPS (Let's Encrypt) — k zapnutí po přesměrování domény | 🔧 dokončuje Petr |
Aplikace je nasazená, otestovaná a zálohovaná. K veřejnému spuštění zbývají už jen kroky na straně KAMSY — Petr je z venku udělat nemůže.
kamsy.cz je vedená u Webglobe.
Necháváme ji tam — aplikaci jen nasměrujeme na nový server jednou změnou DNS záznamu. HTTPS certifikát
si server vyřídí sám (Let's Encrypt, zdarma, automatické obnovení).| # | Krok | Kdo |
|---|---|---|
| 1 | Přesměrovat DNS — záznam protokoly u Webglobe na 167.233.22.168. Jen tento jeden záznam; smlouvy / e-mail / web zůstávají beze změny. | KAMSY (Webglobe) |
| 2 | Předat 4 přístupové klíče — Turnstile (2) + Telegram (2). Nyní běží na testovacích. | KAMSY → Petr |
| — | Před krokem 1 připraví Petr server (porty, HTTPS); po krocích 1–2 vloží klíče, ověří HTTPS a založí reálné uživatele. | Petr |
| Období | Práce |
|---|---|
| 10.–11. 5. | Vývoj jádra aplikace (protokoly, přihlášení, zákazníci, přílohy, audit, správa) + první bezpečnostní opravy |
| 24.–25. 5. | Přenos na Hetzner — databázová a runtime vrstva, ladění 9 platformových chyb, testovací sada, ruční testy (85/86) |
| 30. 5. | Optimalizace výkonu + úplná bezpečnostní prověrka a odstranění všech zjištění |
| 1.–2. 6. | Příprava produkčního serveru: zabezpečení, vyladění na 4 GB RAM, instalace databáze/Node/Caddy, dokumentace |
| 2.–3. 6. | Nasazení + zkušební provoz; ověřené zálohování a obnovení (oprava 4 chyb); reálné přístupy k Fakturoidu; příprava na DNS u Webglobe + HTTPS přes Let's Encrypt; aktualizace dokumentace a pokynů |