Mój tech stack

Mój tech stack
Photo by Taylor Vick / Unsplash

Fundamenty Prywatnej Chmury i Aplikacji

Od lat stawiam na niezależność, wydajność i pełną kontrolę, dlatego mój stack firmowy opiera się w dużej mierze na rozwiązaniach open-source i self-hosted. Całość działa na własnych serwerach w dwóch niezależnych centrach danych, wspieranych przez VPS-y w Hetznerze, tworząc solidną, prywatną chmurę na której rozwijam i hostuje komercyjne usłgi, aplikacje.

Poniżej znajdziesz listę kluczowych narzędzi, z których korzystam na co dzień, podzieloną według ich zastosowania. To nie jest wszystko ale będę dodawał z czasem.

I. Fundamenty: Infrastruktura i Wirtualizacja

Podstawą wszystkiego jest stabilna i wydajna platforma do wirtualizacji oraz niezawodny system backupu. To one zapewniają ciągłość działania i bezpieczeństwo danych.

  • Proxmox Virtual Environment (VE)
    Otwartoźródłowa platforma do wirtualizacji, która łączy maszyny wirtualne (KVM) i kontenery (LXC). Działa w klastrze z High Availability (HA), co gwarantuje, że awaria jednego serwera nie powoduje przerwy w działaniu usług.
    Strona oficjalna Proxmox VE

  • Proxmox Backup Server (PBS)
    Dedykowane rozwiązanie do backupu, idealnie integrujące się z Proxmox VE. Umożliwia tworzenie przyrostowych, deduplikowanych i szyfrowanych kopii zapasowych, minimalizując zużycie przestrzeni dyskowej.
    Strona oficjalna Proxmox Backup Server

II. Sieć i Bezpieczeństwo

Warstwa sieciowa to pierwsza linia obrony i kręgosłup komunikacji. Korzystam z zaawansowanych firewalli i nowoczesnych rozwiązań VPN, aby zapewnić bezpieczeństwo i elastyczność.

  • OPNsense / pfSense
    Potężne, otwartoźródłowe firewalle, które służą jako główna brama sieciowa, router i serwer VPN. Dzięki wbudowanym funkcjom, takim jak WAF (Web Application Firewall) i integracji z HAProxy, chronią aplikacje webowe przed atakami.
    Strona oficjalna OPNsense | Strona oficjalna pfSense

  • HAProxy
    Niezwykle szybki i niezawodny load balancer oraz serwer proxy. Rozdziela ruch pomiędzy serwery aplikacyjne, zapewniając wysoką dostępność i skalowalność publicznie dostępnych usług.
    Strona oficjalna HAProxy

  • Tailscale
    Nowoczesna sieć VPN typu mesh oparta na protokole WireGuard. Umożliwia tworzenie bezpiecznej, płaskiej sieci prywatnej łączącej wszystkie moje serwery i urządzenia, niezależnie od ich fizycznej lokalizacji.
    tailscale/tailscale na GitHub

III. Bazy Danych i Przechowywanie Danych

Dane to najcenniejszy zasób. Korzystam z redundantnych klastrów baz danych oraz skalowalnych systemów do przechowywania plików.

  • MySQL & PostgreSQL Cluster (HA)
    Dwa najpopularniejsze systemy relacyjnych baz danych, działające w klastrach z wysoką dostępnością (High Availability). Zapewniają niezawodność i spójność danych dla moich aplikacji.
    Strona oficjalna MySQL | Strona oficjalna PostgreSQL

  • Minio
    Wysokowydajny, rozproszony system przechowywania obiektów, kompatybilny z API S3. Działa w klastrze z replikacją, służąc jako prywatne miejsce na backupy i pliki multimedialne oraz CDN dla stron i aplikacji dockerowych.
    minio/minio na GitHub

IV. Orkiestracja, Wdrożenia i Zarządzanie Aplikacjami

Większość moich aplikacji działa w kontenerach. Te narzędzia automatyzują i upraszczają proces ich wdrażania i zarządzania.

  • Docker Swarm
    Natywne narzędzie do orkiestracji kontenerów Docker. Prostota i łatwość zarządzania Swarmem idealnie pasują do mojej skali operacji, zapewniając skalowalność i odporność na awarie.
    Dokumentacja Docker Swarm

  • Komodo
    Hostowana we własnym zakresie platforma do zarządzania serwerami, wdrożeniami i automatyzacją. Komodo integruje w jednym miejscu zarządzanie serwerami (z alertami), budowanie obrazów Docker z kodu, wdrażanie stacków Docker Compose oraz centralne zarządzanie konfiguracją.
    komodo-web/komodo na GitHub

  • Coolify
    Otwartoźródłowa alternatywa dla Heroku/Vercel, również hostowana u siebie. Podobnie jak Komodo, upraszcza proces wdrażania aplikacji prosto z repozytoriów Git, automatyzując cały cykl życia aplikacji.
    coollabsio/coolify na GitHub

V. Automatyzacja i DevOps

Automatyzacja jest kluczem do efektywnego i bezbłędnego zarządzania infrastrukturą.

  • Ansible
    Narzędzie do automatyzacji i zarządzania konfiguracją (Infrastructure as Code). Wykorzystuję playbooki Ansible do instalacji, konfiguracji i utrzymania praktycznie każdego elementu mojego stacku.
    ansible/ansible na GitHub

  • Gitea
    Lekki, szybki i hostowany na własnym serwerze serwis Git. Służy jako centralne repozytorium dla wszystkich moich projektów, skryptów Ansible i kodu źródłowego oraz prowadzenia projektów dla klientów.
    go-gitea/gitea na GitHub

  • n8n
    Platforma do automatyzacji przepływów pracy (workflow automation). Pozwala łączyć różne aplikacje i usługi (API) w zautomatyzowane procesy, oszczędzając czas na powtarzalnych zadaniach.
    n8n-io/n8n na GitHub

VI. Monitoring i Diagnostyka

Wiedza o tym, co dzieje się z infrastrukturą i aplikacjami, jest niezbędna do utrzymania ich stabilności.

  • OpenSearch
    Rozproszony silnik analityczny i wyszukiwania. Używam go do centralnego zbierania, analizowania i przeszukiwania logów z całej infrastruktury, co ułatwia diagnostykę i monitorowanie. Również jak silnik wyszukiwarki dla np Shopware
    opensearch-project/OpenSearch na GitHub

  • Uptime Kuma
    Proste narzędzie do monitorowania dostępności usług (tzw. "heartbeat monitoring"). Sprawdza, czy moje strony internetowe i API działają poprawnie, i wysyła powiadomienia w razie awarii. Monitoruje usługi, domeny, api.
    louislam/uptime-kuma na GitHub

  • Beszel
    Lekkie i proste narzędzie do monitorowania serwerów i kontenerów. Śledzi zużycie CPU, pamięci i sieci dla każdego kontenera, oferując konfigurowalne alerty bez konieczności wystawiania go na publiczny internet. Kiedyś korzystałem z Zabbix, ale łatwność i to czego potrzebuje skierowała mnie do Beszel.
    henrygd/beszel na GitHub

  • Sentry
    Platforma do monitorowania błędów i wydajności aplikacji w czasie rzeczywistym. Dzięki Sentry natychmiast dowiaduję się o problemach w kodzie, co pozwala na szybką reakcję i naprawę. Wiem o błędach zanim klient mi to zgłosi :)
    getsentry/sentry na GitHub

VII. Aplikacje Użytkowe

Na mojej infrastrukturze działają również aplikacje, które wspierają mnie w pracy, komunikacji czy zarządzaniu prywatnymi danymi.

  • Listmonk
    Hostowany we własnym zakresie system do zarządzania newsletterami. Daje pełną kontrolę nad danymi subskrybentów i wysyłką wiadomości.
    knadh/listmonk na GitHub

  • SFTPGo
    Elastyczny serwer do bezpiecznego transferu plików (SFTP, FTP/S, WebDAV). Używam go do bezpiecznego udostępniania plików, np. dokumentów dla księgowości.
    drakkan/sftpgo na GitHub

  • Immich (w ramach OpenMediaServer)
    Doskonała, hostowana we własnym zakresie alternatywa dla Google Photos, działająca na moim serwerze NAS z OpenMediaServer i Dockerem. Automatycznie tworzy kopie zapasowe zdjęć i filmów z telefonów. Kiedyś miałem w iCloud pakiet 2TB na rodzine teraz starcza mi 200GB, na iCloud trzymam tylko zdjęcia z ostatniego roku cała historia jest u mnie na serwerzez zewnętrzną kopią :)
    immich-app/immich na GitHub