8.2.19 Развёртывание 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
- Единая панель с графиками задержки и журналом инцидентов
Подготовка сервера
Требования
- Виртуальный или Выделенный сервер
- Минимум 1 vCPU, 1 ГБ RAM, 5 ГБ SSD
- Наличие root доступа либо пользователя с правами sudo
- Перед началом обязательно установить Docker и Docker Compose
Переменные, которые нужно заменить
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

Безопасность
Открываем только тот порт, который будете использовать для веб-интерфейса.
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

Проверка работы
- Откройте браузер:
http://SERVER_IP:HTTP_PORT
- Создайте учётную запись администратора и войдите в панель.

- Добавьте тестовый монитор (например,
https://google.com) и убедитесь, что статус — UP.

- Проверка логов контейнера:
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. |
Официальная документация


