Jak to działa
Moje projekty i ta strona działają na infrastrukturze, którą sam zbudowałem i utrzymuję. Najpierw po ludzku, potem technicznie.
W skrócie
- Dwa klastry Kubernetes: jeden w domu, do nauki i testów, drugi produkcyjny, na serwerach dedykowanych.
- Cały stan klastrów jest zapisany w gicie. Zmiany wprowadzam przez repozytorium, a każde wdrożenie uruchamiam świadomie, więc każdą zmianę da się przejrzeć i cofnąć.
- Monitoring sprawdza strony z zewnątrz, certyfikaty, dyski i bazy danych, a alerty przychodzą na telefon.
- Bazy danych i pliki aplikacji mają automatyczne kopie zapasowe. Jeśli świeżej kopii brakuje, też dostaję alert.
- Aktualizacje zależności przychodzą same jako propozycje zmian. Nic nie scala się automatycznie: każdą przeglądam i wdrażam sam.
Warstwa techniczna
- System na serwerach
- Talos Linux
- Orkiestracja
- Kubernetes
- Sieć i polityki ruchu
- Cilium
- Wdrożenia z gita (GitOps)
- Argo CD
- Sekrety w repozytorium
- Sealed Secrets
- Monitoring i alerty
- Prometheus, Grafana, Alertmanager
- Ruch z internetu
- Traefik, cert-manager
- Kod, rejestr obrazów i CI
- Gitea, Gitea Actions
- Aktualizacje zależności
- Renovate
- Bazy danych
- operatory CloudNativePG i MariaDB
- Serwery i konfiguracja
- Ansible, OpenTofu
Jak powstaje ta strona
- To statyczna strona w Astro: sam HTML i CSS. Jedyny skrypt to przełącznik jasnego i ciemnego motywu.
- Nie ma panelu administracyjnego ani bazy danych. Cała treść to pliki w repozytorium.
- Zmiana trafia na produkcję dopiero po testach i moim przeglądzie. Strona jest serwowana z obrazu kontenera z serwerem Caddy.
- Wdrożenie to zmiana wersji obrazu w gicie; po przejrzeniu synchronizuję ją w Argo CD.
Jak agenci AI aktualizują tę stronę
- Tę stronę aktualizują agenci AI, pracując na repozytorium w gicie: wpisy na blogu, statusy projektów, zrzuty ekranu i listę umiejętności.
- Każdą zmianę sprawdzam, zanim trafi na stronę. Bez mojej akceptacji nic nie jest publikowane.
- Przy wpisie agent zbiera materiał z historii moich repozytoriów i notatek, proponuje 2–3 tematy, a po moim wyborze pisze szkic po polsku i po angielsku, zawsze z prawdziwym zapisem z terminala albo zrzutem ekranu.
- Skrypt sprawdza każdą zmianę pod kątem danych, których nie publikuję (adresy, nazwy wewnętrznych maszyn), i pustych fraz.
- Od tej wersji strony tak wygląda każda aktualizacja. Agent robi żmudną część, a ja decyduję, sprawdzam i odpowiadam za efekt.