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 и перезапустить прокси.
Контейнер «падает» через пару дней OOM Killed в docker inspect Увеличьте RAM или задайте лимиты mem_limit / memswap_limit.

Официальная документация