Laboratorium administratora systemów.

Własna infrastruktura serwerowa, którą projektuję i utrzymuję samodzielnie. Służy mi do codziennej pracy oraz do testowania rozwiązań przed wdrożeniem u klientów.

Zawodowo zajmuję się administracją systemów IT, a w ramach Supportly świadczę usługi informatyczne dla osób prywatnych i małych firm. Poniżej opisuję, jak zbudowane jest to środowisko i jakie zasady w nim stosuję.

Usługi

Ubuntu Server LTS, Docker
brzeg sieci
nginx-proxy-managerReverse proxy i certyfikaty SSL. Jedyny punkt wejścia z internetu.
utrzymanie
portainerZarządzanie kontenerami i stackami Docker Compose.
watchtowerAktualizacje wybranych usług z powiadomieniem e-mail.
uptime-kumaMonitoring dostępności usług.
aplikacje
pklabTa strona. Statyczny eksport Next.js serwowany przez nginx bez uprawnień roota.
supportlyStrona firmowa (Next.js, Express), budowana z repozytorium.
bookstackBaza wiedzy i dokumentacja techniczna.
mariadbBaza danych BookStack, w odizolowanej sieci wewnętrznej.
open-webuiInterfejs do pracy z modelami językowymi.
searxngMetawyszukiwarka bez śledzenia zapytań.
doclingKonwersja dokumentów do formatu przetwarzanego przez AI.
styk z internetem wyłącznie sieć wewnętrzna

Uzupełniają je kontenery pomocnicze, łącznie piętnaście usług.

Architektura dostępu

Ruch użytkowników i dostęp administracyjny są rozdzielone. Ruch z internetu kończy się na reverse proxy, a zarządzanie serwerem odbywa się wyłącznie przez VPN.

Ruch użytkowników

  1. Przeglądarkadowolny użytkownik
  2. Zapora sieciowaotwarte wyłącznie porty 80 i 443
  3. Reverse proxyterminacja SSL, routing po domenie
  4. Usługa w kontenerzebez portów publikowanych na hoście

Dostęp administracyjny

  1. Stacja administratoraw prywatnej sieci VPN
  2. Zapora sieciowaSSH dopuszczone wyłącznie z zaufanych sieci
  3. SerwerSSH niedostępne z publicznego internetu
  4. Panele administracyjnedostępne tylko przez tunel

Stosowane praktyki

Jeden punkt wejścia

Porty na hoście publikuje wyłącznie reverse proxy. Pozostałe usługi komunikują się w wewnętrznych sieciach Dockera, dzięki czemu żadna z nich nie omija zapory.

Kontrolowane aktualizacje

Automatycznie aktualizowane są tylko usługi, które przechodzą zmianę wersji bez migracji. Bazy danych mają przypiętą wersję i są aktualizowane ręcznie, po wykonaniu kopii.

Dwa poziomy kopii zapasowych

Codzienna kopia całego serwera zabezpiecza przed awarią, a osobny zrzut bazy danych gwarantuje spójność danych przy odtwarzaniu.

Limity logów

Rotacja logów na poziomie demona Dockera ogranicza ich rozmiar. Bez niej pojedynczy kontener może z czasem zapełnić dysk.

Infrastruktura opisana w plikach

Usługi są definiowane jako stacki Docker Compose, co pozwala odtworzyć środowisko z repozytorium, a nie z pamięci administratora.

Testy przed wdrożeniem

Rozwiązania, które rekomenduję klientom, najpierw działają w tym środowisku. Ewentualne problemy wychodzą tutaj, a nie w cudzej firmie.

Najnowsze wpisy w dzienniku

Wszystkie wpisy