Silesian SolutionsPorozmawiajmy o projekcie
Wszystkie realizacje

System dedykowany

Cyber Katalog

Serwis o polskim rynku cyberbezpieczeństwa: wyszukiwarka firm, profile z danymi rejestrowymi, aktualności, oferty pracy, słownik i narzędzia. Dane pochodzą z kilku źródeł i odświeżają się zaplanowanymi zadaniami, a ich poprawności pilnują testy w CI.

Cyber Katalog na ekranie komputera i telefonu: strona główna z nagłówkiem serwisu oraz kafelkami katalogu firm, aktualności, ofert pracy i narzędzi.
Cyber Katalog na komputerze i telefonie.

Ponad sto zweryfikowanych firm w ośmiu kategoriach, słownik pojęć i kilkadziesiąt walidatorów pilnujących każdego builda - tyle waży dziś Cyber Katalog, serwis o polskim rynku cyberbezpieczeństwa. Pod cyberkatalog.pl stoi wyszukiwarka firm razem z zapleczem wiedzy: aktualnościami, ofertami pracy, słownikiem i narzędziami. API odpowiada pod api.cyberkatalog.pl, a osobne proxy pod cert.cyberkatalog.pl doprowadza Listę Ostrzeżeń CSIRT NASK.

Lista firm z sektora cyberbezpieczeństwa z filtrami i kategoriami w Cyber Katalog
Filtry po kategorii usług, certyfikatach oraz statusie w rejestrze VAT i REGON. Status stoi przy każdej firmie.

Skąd biorą się dane

Redakcyjna część katalogu żyje z kanałów RSS, instytucjonalnych i branżowych. Powstają z nich aktualności, zbierane cyklicznie i wiązane z identyfikatorami CVE, bez ręcznego kroku po drodze.

Widok redakcyjny aktualności w Cyber Katalog
Sekcja aktualności: własne opracowania, obok nich słownik i kalendarz wydarzeń.

Każdy profil niesie dane rejestrowe. Pochodzą z GUS/REGON oraz z białej listy podatników VAT Ministerstwa Finansów, dociągane po numerze NIP. Osobne, cykliczne zadanie sprawdza, czy firma nadal istnieje w rejestrze, więc katalog nie zbiera martwych wpisów.

Blok danych z rejestru VAT na profilu firmy w Cyber Katalogu
Profil firmy schodzi do rejestru VAT: status podatnika, NIP i REGON dociągane po numerze NIP.

Oferty pracy zbierane są automatycznie. Każda zmiana treści oferty zapisuje nową wersję rekordu z odsyłaczem do poprzedniej, po skrócie treści, więc historia oferty nie znika przy edycji.

Frontend, mapa i telefon

Frontend napisany jest w SvelteKit z adapter-static (Svelte 5, Tailwind CSS 4, TypeScript, Vite) i renderuje się w całości statycznie na etapie builda. Cloudflare Workers serwuje gotowe pliki przez Static Assets, a build stoi na Node 24.

Strona główna Cyber Katalogu na telefonie: nagłówek, opis serwisu i kafelki katalogu w układzie jednokolumnowym
Strona główna Cyber Katalog na telefonie - ten sam build co na desktopie.

Rozmieszczenie firm na mapie obsługuje Leaflet. To jedyne miejsce w interfejsie, gdzie cały katalog widać naraz w układzie geograficznym, a nie w postaci listy z filtrami.

Mapa firm z sektora cyberbezpieczeństwa w Cyber Katalog
Mapa firm zbudowana na Leaflet - te same dane co w wyszukiwarce, inny układ.

Zaplecze wiedzy domyka słownik. Linkują do jego haseł artykuły i profile narzędzi, więc czytelnik nie musi wychodzić z serwisu, żeby sprawdzić skrót.

Słownik pojęć cyberbezpieczeństwa w Cyber Katalog
Słownik: definicje po polsku, z wyszukiwarką po terminach i skrótach.

Architektura na Cloudflare

Na Cloudflare stoją trzy usługi. Serwis pod cyberkatalog.pl jest w całości prerenderowany i serwowany przez Workers Static Assets. API pod api.cyberkatalog.pl czyta z trzech baz D1, rozdzielonych według rodzaju danych: aktualności, oferty pracy i firmy. Trzecia usługa to proxy Listy Ostrzeżeń CSIRT NASK pod cert.cyberkatalog.pl. Stoi osobno, bo ma inne źródło danych i inny cykl życia niż API firm.

Diagram architektury Cyber Katalog: źródła danych, zaplanowane przebiegi GitHub Actions, trzy bazy D1 i workery obsługujące trzy domeny
Droga danych od źródła do przeglądarki. Podział idzie według źródła danych, nie według warstwy.

API działa w trybie Smart Placement, z włączoną obserwowalnością. Runtime nie trzyma żadnych sekretów: build jest statyczny, Worker serwuje pliki, a dane idą z API. Im mniej rzeczy potrafi wyciec z runtime, tym mniej trzeba pilnować. Od takiego podziału odpowiedzialności zaczynamy przegląd architektury u klienta.

Tabela Listy Ostrzeżeń CSIRT NASK w Cyber Katalogu, z domenami i datami wpisu
Lista Ostrzeżeń CSIRT NASK podana przez własne proxy: domena, data wpisu i status blokady.

Harmonogram i pipeline

Cała warstwa danych stoi na zaplanowanych przebiegach GitHub Actions, wyzwalanych cronem. Każde źródło ma własny przebieg i własny harmonogram, rozsunięty względem pozostałych, żeby zadania nie konkurowały o te same zasoby, a awaria jednego źródła nie zatrzymywała reszty. Osobne przebiegi zajmują się utrzymaniem: weryfikacją wpisów w rejestrach, audytem domen i czyszczeniem tego, co wygasło. Ten sam wzorzec zaplanowanych zadań wchodzi u nas w automatyzację procesów.

Nieudany przebieg dowolnego z tych zadań woła na Slacka, więc awaria źródła nie czeka, aż ktoś zajrzy do logów.

Bramki jakości

CI uruchamia się na każdym pull requeście, osobno dla backendu i frontendu. W backendzie walidatory pilnują rzeczy, które łatwo przeoczyć przy ręcznym review: przypięcia akcji GitHuba do konkretnej wersji, pokrycia ponawianiem zapytań do D1, podpięcia migracji D1 i tras sitemapy. Do tego typy i testy.

Frontend ma osobne etapy: walidatory źródeł i wyniku, lint z progiem zero, testy oraz pełny build z generowaniem obrazków Open Graph. Bramka zbiorcza na końcu przepuszcza tylko komplet zielonych etapów.

Co z tego wynika

Każda z tych decyzji ma swoją cenę. Harmonogram bez ręcznych kroków wymaga alarmu, który ktoś odbierze. Bramka, która nie przepuszcza kompromisów, czasem zatrzyma pilną zmianę. Ten sam rachunek robimy przy cyberbezpieczeństwie i zgodności.

Wykorzystane technologie

  • SvelteKit
  • Cloudflare Workers
  • Cloudflare D1
  • TypeScript
  • Svelte
  • Node.js
  • Tailwind CSS
  • GitHub Actions

Zobacz wdrożenie