W dobie rosnącej liczby usług, aplikacji webowych i systemów rozproszonych, monitoring dostępności (uptime monitoring) staje się absolutną podstawą utrzymania infrastruktury IT. Niezależnie od tego, czy zarządzasz środowiskiem homelab, małą firmą czy produkcyjną platformą SaaS — musisz wiedzieć czy Twoje usługi działają i kiedy przestają działać.
Uptime Kuma to nowoczesne, lekkie i niezwykle przyjazne narzędzie typu self-hosted, które pozwala monitorować dostępność usług w czasie rzeczywistym — bez konieczności korzystania z rozwiązań SaaS.
Czym jest Uptime Kuma?
Uptime Kuma to open-source’owy system monitoringu dostępności, który można uruchomić lokalnie (np. na serwerze, VPS, NAS lub w Dockerze). Jest często porównywany do narzędzi takich jak Uptime Robot czy StatusCake, ale działa w pełni po Twojej stronie.
Najważniejsze cechy
- monitoring HTTP/HTTPS, TCP, Ping, DNS i innych
- alerty (Telegram, Discord, Slack, email, Webhook i więcej)
- dashboard w czasie rzeczywistym
- publiczne strony statusowe (status page)
- historia dostępności i wykresy
- prosty, nowoczesny interfejs webowy
- wsparcie dla SSL (Let’s Encrypt / reverse proxy)
- autoryzacja i konta użytkowników
Jak działa Uptime Kuma?
Mechanizm działania jest prosty:
- Definiujesz monitor (np. stronę www, API, port TCP)
- Uptime Kuma cyklicznie sprawdza dostępność (np. co 60 sekund)
- Jeśli usługa przestaje odpowiadać:
- zapisuje incydent
- wysyła powiadomienie
- Dane są wizualizowane na dashboardzie
Przykładowe zastosowania
- monitoring stron internetowych (np. WordPress, sklepy)
- kontrola API (REST, backend)
- sprawdzanie dostępności portów (SSH, RDP, DB)
- monitoring serwerów i usług w LAN
- status page dla klientów
Architektura i wymagania
Uptime Kuma jest bardzo lekki:
- RAM: ~100–200 MB
- CPU: minimalne
- Storage: zależny od historii (SQLite)
Może działać na:
- VPS (np. 1 vCPU, 1 GB RAM)
- Raspberry Pi
- NAS (Synology, QNAP)
- Proxmox (VM lub LXC)
- Docker / Docker Compose
Instalacja Uptime Kuma – Docker Compose (krok po kroku)
Najprostszy i najczęściej stosowany sposób wdrożenia. Na przykładzie Ubuntu.
1. Wymagania
- zainstalowany Docker
- zainstalowany Docker Compose
Skonfiguruj repozytorium apt dla Docker.
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
Zainstaluj pakiety Docker.
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Sprawdzenie:
docker --version
docker compose version
2. Struktura katalogów
Utwórz katalog projektu:
mkdir uptime-kuma
cd uptime-kuma
3. Plik docker-compose.yml
Utwórz plik:
nano docker-compose.yml
Wklej:
version: "3.8"
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: always
ports:
- "3001:3001" # This maps the container port "3001" to the host port "3001"
volumes:
- /path/to/data:/app/data # Configuring persistent storage
environment:
- TZ=UTC # Set the timezone (change to your preferred local timezone so monitoring times are the same)
- UMASK=0022 # Set your file permissions manually
networks:
- kuma_network # add your own custom network config
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3001"]
interval: 30s
retries: 3
start_period: 10s
timeout: 5s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
kuma_network:
driver: bridge
4. Uruchomienie kontenera
docker compose up -d

Sprawdzenie:
docker ps

5. Pierwsze uruchomienie
Wejdź w przeglądarce:
http://IP_SERWERA:3001

Zostaniesz poproszony o:
- utworzenie konta administratora
- konfigurację hasła
Po utworzeniu konta administratora, pojawi się panel administracyjny Uptime Kuma

Konfiguracja monitorów
Dodanie pierwszego monitora
- Kliknij Dodaj monitor
- Wybierz typ:
- HTTP(s)
- Nadaj Przyjazną nazwę
- Ustaw:
- URL / IP
- interwał (np. 60s) – najmniej 20s
- Zapisz

Po dodaniu monitora po lewej stronie masz status danego monitora, a po prawej stronie bardziej szczegółowe dane na temat danej usługi:

Po 20s (jeśli taki interwał ustawiłeś), pojawi się wykres. Przykład wykresu:

Dodanie minitora Ping
- Kliknij Dodaj monitor
- Wybierz typ:
- Ping
- Nadaj Przyjazną nazwę
- Ustaw:
- URL / IP
- interwał (np. 60s) – najmniej 20s
- Zapisz


Dodanie minitora DNS
- Kliknij Dodaj monitor
- Wybierz typ:
- DNS
- Nadaj Przyjazną nazwę
- Ustaw:
- URL / IP
- interwał (np. 60s) – najmniej 20s
- Zapisz


Dodanie minitora Kontener Dockera
- Kliknij Dodaj monitor
- Wybierz typ:
- Kontener Dockera
- Kliknij na plus przy Host Dockera

Skopiuj /var/run/docker.sock

Przejdź do serwera z zainstalowanym Uptime Kuma, ponownie wyedytuj plik docker-compose.yml i pod volumes dodaj oraz zapisz plik:
- /var/run/docker.sock:/var/run/docker.sock

Następnie wykonaj komendę:
docker compose up -d

Wróć do Uptime Kuma jeszcze raz dodaj monitor, wybierz Kontener Dockera, kliknij na plus, następie Test, pojawi się komunikat Connectes Successfully. Amount of containers: 1. Nadaj Przyjazna nazwa i Zapisz

Przejdź do serwera gdzie masz uruchomione instancje dokera (pamiętaj w pliku docker-compose.yml dodaj ścieżkę – /var/run/docker.sock:/var/run/docker.sock i uruchomić docker compose up -d !).
Ja posłużę się przykładem monitorowania samego Uptime Kuma, gdzie już mam dodaną ścieżkę w monitorze.
Wpisz komendę:
docker ps
Skopiuj nazwę kontenera lub CONTAINER ID

Wklej nazwę kontenera lub CONTAINER ID w Nazwa kontenera / ID, nadaj Przyjazną nazwę i kliknij Zapisz

Kontener już jest monitorowany:

Konfiguracja powiadomień (alertów)
Uptime Kuma wspiera wiele integracji.
Przykład: Telegram
- Utwórz bota przez BotFather
- Pobierz token
- Dodaj w Uptime Kuma:
- Settings → Notifications → Add New
- wybierz Telegram
- wklej token + chat ID
Strony statusów (publiczna strona statusu)
Możesz udostępnić klientom status usług.
- Wejdź w Strony statusów
- Utwórz nową stronę
- Dodaj monitory
- Udostępnij link

Przykład strony statusu:

Reverse Proxy (Cloudflare)
Aby wystawić usługę przez HTTPS:
Przejdź do ikony użytkownika / Ustawienia

Wybierz Zwrotny serwer proxy, zauważ cloudflared: Zainstalowany, potrzebujemy skonfigurować i uzyskać Cloudflare Tunnel Token

Zaloguj się na Swoim koncie Cloudflare, wybierz Networks / Connectors

Kliknij:


Nadaj nazwę tunelowi:

Kliknij:

Skopiuj komendę:

Wklej komendę pod Cloudflare Tunnel Token, kliknij Start cloudflared, chwilę poczekaj i kliknij Zapisz

Przejdź do Claudflare, pojawi się zestawione połączenie, kliknij Next

Nadaj nazwę subdomenie, wybierz Swoją domenę. ustaw typ Service na HTTP i podaj adres IP serwera na którym zainstalowałeś Uptime kuma + port 3001 i kliknij Complete setup

Dzięki temu po wpisaniu w przeglądarkę uptimekuma.Twoja_domena, masz zdalny szyfrowany dostęp do Uptime Kuma z każdego miejsca na ziemi dzięki reverse proxy Cloudflare ! Wystarczy że się zalogujesz 😉

Zalecane:
- certyfikat Let’s Encrypt
- Cloudflare Tunnel (dla homelabów)
Backup danych
Dane są przechowywane w katalogu:
./data
Backup:
tar -czvf uptime-kuma-backup.tar.gz data/
Aktualizacja Uptime Kuma
docker compose pull
docker compose up -d
Tryb produkcyjny – rekomendacje
- reverse proxy + HTTPS
- monitoring samego Uptime Kuma (np. zewnętrzny node)
- backup danych
- ograniczenie dostępu (VPN / firewall)
Zalety i wady
Zalety
- darmowy i open source
- prosty w konfiguracji
- self-hosted (pełna kontrola)
- bogate powiadomienia
- estetyczny UI
Wady
- brak zaawansowanej analizy (to nie Zabbix/Prometheus)
- brak auto-discovery
- pojedynczy node (brak HA bez kombinacji)
Uptime Kuma vs inne narzędzia
| Narzędzie | Typ | Zastosowanie |
|---|---|---|
| Uptime Kuma | uptime | prosty monitoring dostępności |
| Zabbix | full stack | monitoring infrastruktury |
| Prometheus | metryki | monitoring metryk i alertów |
| Uptime Robot | SaaS | monitoring zewnętrzny |
Dobre praktyki
- ustaw sensowny interwał (30–60s)
- unikaj zbyt wielu monitorów na małym VPS
- konfiguruj alerty tylko dla krytycznych usług
- używaj tagów i grup
- regularnie testuj powiadomienia
Podsumowanie
Uptime Kuma to idealne narzędzie dla:
- administratorów
- DevOpsów
- właścicieli stron i usług
Sprawdza się wszędzie tam, gdzie potrzebujesz szybkiej odpowiedzi na pytanie:
„Czy to jeszcze działa?”
Jeśli szukasz lekkiego, estetycznego i skutecznego monitoringu dostępności — trudno o lepszy wybór w świecie self-hosted.
Uptime Kuma to lekkie, open-source narzędzie typu self-hosted służące do monitorowania dostępności usług i systemów IT. Umożliwia kontrolowanie działania stron internetowych, API, portów sieciowych oraz serwerów w czasie rzeczywistym, bez konieczności korzystania z zewnętrznych usług SaaS. System działa poprzez cykliczne sprawdzanie zdefiniowanych monitorów (np. HTTP, TCP, Ping), rejestrowanie incydentów oraz wysyłanie powiadomień w przypadku niedostępności. Oferuje przejrzysty interfejs webowy, historię uptime, wykresy oraz możliwość tworzenia publicznych stron statusowych.
Narzędzie cechuje się niskimi wymaganiami sprzętowymi i może być uruchamiane m.in. na VPS, Dockerze, NAS czy w środowiskach takich jak Proxmox. Instalacja najczęściej odbywa się przy użyciu Docker Compose. Uptime Kuma wspiera integracje powiadomień (np. Telegram, email), umożliwia monitorowanie kontenerów Dockera oraz konfigurację dostępu przez reverse proxy i HTTPS. Do jego głównych zalet należą prostota, pełna kontrola nad danymi i brak kosztów, natomiast ograniczenia obejmują brak zaawansowanej analizy, auto-discovery oraz wysokiej dostępności bez dodatkowej konfiguracj

