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