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 і перезапустіть nginx. |
Контейнер “падає” через декілька днів | OOM Killed у docker inspect |
Збільшіть обсяг RAM або задай ліміти mem_limit / memswap_limit . |
Офіційна документація