Skip to content

Uptime Kuma

Instalacja

Uptime Kuma służy do monitorowania dostępności usług (HTTP/TCP/Ping) i wysyłania powiadomień o awariach.

Założenia konfiguracyjne:

  • Plik Compose znajduje się w /srv/docker/compose/uptime-kuma
  • Dane aplikacji znajdują się w /srv/docker/data/uptime-kuma
  • Sekrety (zmienne środowiskowe) znajdują się w /srv/docker/secrets/uptime-kuma/app.env
  • Aplikacja łączy się z MariaDB po sieci Dockera internal
  • Uptime Kuma jest wystawiany przez reverse proxy po sieci Dockera proxy
  • Logi dostępne są przez docker logs (bez osobnego katalogu logów)

Dostęp do sieci Docker

Wymagany dostęp do sieci proxy oraz internal

Aby udostępnić aplikację publicznie oraz komunikować się z innymi kontenerami, aplikacja wymaga dostępu do sieci Docker proxy i internal.

Tworzenie sieci Docker


Tworzenie katalogów

Tworzymy katalog dla Compose:

sudo mkdir -p /srv/docker/compose/uptime-kuma
sudo chown -R "$USER:$USER" /srv/docker/compose/uptime-kuma

Tworzymy katalog na dane aplikacji:

sudo mkdir -p /srv/docker/data/uptime-kuma
sudo chown -R "$USER:$USER" /srv/docker/data/uptime-kuma

Tworzymy katalog na sekrety:

sudo mkdir -p /srv/docker/secrets/uptime-kuma
sudo chown -R "$USER:$USER" /srv/docker/secrets/uptime-kuma

Dostęp do bazy MariaDB

Kontener aplikacji zawiera wbudowaną bazę danych, jednak w tym wdrożeniu korzystamy z osobnego kontenera MariaDB.

Wymagany dostęp do bazy MariaDB

Aplikacja wymaga dostępu do bazy danych MariaDB.

Tworzenie bazy MariaDB


Tworzenie pliku app.env

Tworzymy i edytujemy plik app.env:

micro /srv/docker/secrets/uptime-kuma/app.env

W pliku umieszczamy:

app.env
TZ=Europe/Warsaw

UPTIME_KUMA_DB_TYPE=mariadb
UPTIME_KUMA_DB_HOSTNAME=mariadb
UPTIME_KUMA_DB_PORT=3306
UPTIME_KUMA_DB_NAME=kuma
UPTIME_KUMA_DB_USERNAME=kuma
UPTIME_KUMA_DB_PASSWORD=TU_SILNE_HASLO

Zapisujemy plik i wychodzimy z edytora.


Konfiguracja Docker Compose

Przechodzimy do katalogu Compose:

cd /srv/docker/compose/uptime-kuma

Tworzymy i edytujemy plik compose.yaml:

micro compose.yaml

W pliku umieszczamy:

compose.yaml
services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    restart: unless-stopped

    env_file:
      - /srv/docker/secrets/uptime-kuma/app.env

    volumes:
      - /srv/docker/data/uptime-kuma:/app/data

    networks:
      - proxy
      - internal

networks:
  proxy:
    external: true
  internal:
    external: true

Zapisujemy plik i wychodzimy z edytora.


Uruchomienie kontenera

Uruchamiamy Uptime Kuma:

docker compose up -d

Sprawdzamy, czy kontener działa:

docker ps | grep uptime-kuma

Konfiguracja Caddy

Dodajemy wpis do Caddyfile (aplikacja nie wspiera reverse proxy w podkatalogu, używamy domeny lub subdomeny):

Caddyfile
status.fulc.ro {
  reverse_proxy uptime-kuma:3001
}

Przeładowujemy Caddy:

docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile

Alternatywnie, jeśli mamy skonfigurowany alias.

caddy-reload

Test działania

Sprawdzamy, czy panel odpowiada:

https://status.fulc.ro

Podgląd logów

Podglądamy logi Uptime Kuma:

docker logs -f uptime-kuma

Monitorowanie stron WordPress

Do monitorowania stron opartych na WordPress najlepiej wykorzystywać dedykowany endpoint /health, który umożliwia weryfikację działania aplikacji z minimalnym obciążeniem serwera i z pominięciem mechanizmów cache.

Konfiguracja endpointu health

Przed dodaniem monitora w Uptime Kuma należy skonfigurować endpoint /health po stronie WordPress.

Healthcheck dla WordPress