8.2.19 Розгортання Uptime Kuma

The Host Banner Uptime Kuma

Uptime Kuma — легка self-hosted система моніторингу (HTTP/HTTPS, TCP, ICMP, DNS, PUSH), яка відображає аптайм сервісів у реальному часі й надсилає сповіщення при збоях. Інструкція допоможе швидко розгорнути її на Ubuntu 22.04/24.04 за допомогою Docker Compose — без складного встановлення залежностей вручну.

Переваги

  • Контроль доступності сайтів / API / серверів 24×7
  • Миттєві сповіщення в Telegram, Discord, Slack, Email, Pushover
  • Єдина панель із графіками затримки та журналом інцидентів

Підготовка сервера

Вимоги

Змінні, які потрібно замінити

  • DATA — шлях для зберігання даних (наприклад /opt/uptime-kuma)
  • HTTP_PORT — зовнішній порт (типово 3001)
  • YOUR_DOMAIN — домен, якщо буде використовуватись зворотній проксі
  • SERVER_IP — IP-адреса вашого сервера

Створення робочого каталогу та мережі

sudo mkdir -p /home/uptimeKuma/data
sudo chown -R $USER:$USER /home/uptimeKuma/data

За потреби створіть окрему Docker-мережу для сервісів моніторингу:

docker network create monitor-net

docker_network_create

Безпека

Відкрийте лише той порт, який буде використовуватись для веб-інтерфейсу.

UFW:

sudo ufw allow HTTP_PORT/tcp   # HTTP UI
sudo ufw reload

iptables:

sudo iptables -A INPUT -p tcp --dport HTTP_PORT -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -P INPUT DROP

Встановлення

Створіть файл docker-compose.yml:

version: "3.9"

services:
  uptime-kuma:
    image: louislam/uptime-kuma
    container_name: uptime-kuma
    restart: unless-stopped
    volumes:
      - ./data:/app/data
    networks:
      - monitor-net
    ports:
      - "HTTP_PORT:3001"

networks:
  monitor-net:
    external: true

Пояснення параметрів:

  • louislam/uptime-kuma:2 — фіксуємо версію v2, щоб уникнути проблем з оновленнями.
  • volumes — зберігаємо базу, налаштування та резервні копії поза контейнером.
  • restart: unless-stopped — автоматичний запуск після перезавантаження сервера.

Запускаємо стек, Compose завантажить образ (~200 МБ) та створить контейнер:

cd /home/uptimeKuma/data
docker compose up -d

Автоматичне оновлення через Watchtower

Watchtower кожні 6 годин перевіряє оновлення образів і перезапускає контейнер у разі виходу нових версій:

docker run -d --name watchtower \
  --restart unless-stopped \
  -v /var/run/docker.sock:/var/run/docker.sock \
  containrrr/watchtower \
  --cleanup --interval 21600

Перевірка роботи

  1. Відкрийте браузер:
http://SERVER_IP:HTTP_PORT
  1. Створіть обліковий запис адміністратора та увійдіть у панель.

  1. Додайте тестовий монітор (наприклад, https://google.com) і переконайтесь, що статус — UP.

Test Kuma

  1. Перевірка логів контейнера:
docker compose logs -f uptime-kuma

Поширені помилки
Проблема Симптоми Рішення
Порт уже зайнятий bind: address already in use у логах Змініть HTTP_PORT або вимкніть інший сервіс, що працює на цьому порту.
Permission denied при записі Контейнер завершився з кодом 13 Перевірте власника каталогу DATA і надайте права chown $USER:$USER.
UI недоступний через домен 502/404 від проксі Вкажіть у конфігурації Nginx upstream http://127.0.0.1:HTTP_PORT і перезапустіть nginx.
Контейнер “падає” через декілька днів OOM Killed у docker inspect Збільшіть обсяг RAM або задай ліміти mem_limit / memswap_limit.

Офіційна документація