Uptime Kuma: мониторинг сайтов и серверов на своём VPS

Ставим Uptime Kuma в Docker за Caddy с автоматическим HTTPS, подключаем уведомления в Telegram, добавляем мониторы HTTP, TCP, ping и push.

31 октября 2026 г.·3 мин чтения·uptime-kuma, docker, caddy, telegram

Uptime Kuma — бесплатный self-hosted мониторинг: проверяет сайты, порты и серверы раз в 20–60 секунд и шлёт уведомления в Telegram, Discord, Slack или на почту, когда что-то упало и когда поднялось. Ниже установка в Docker за обратным прокси Caddy, который сам выпускает сертификат.

Если сервера ещё нет, VPS на tanaka.host создаётся за минуту с Ubuntu или Debian, а списание идёт по дням — удобно, чтобы просто попробовать.

Что нужно: VPS с Docker (1 vCPU и 1 ГБ хватает с запасом), поддомен вроде status.example.com с A-записью на сервер, аккаунт Telegram.

Ставьте монитор на отдельный сервер, не на тот, который он проверяет. Иначе при падении сервера вы не получите уведомление, потому что упадёт и монитор.

1. Запуск в Docker Compose

mkdir -p /opt/uptime-kuma && cd /opt/uptime-kuma
nano compose.yaml
services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    restart: unless-stopped
    volumes:
      - ./data:/app/data
    ports:
      - "127.0.0.1:3001:3001"

Порт привязан к 127.0.0.1: Docker обходит UFW, и без этого панель была бы открыта всему интернету без HTTPS.

docker compose up -d
docker compose ps
curl -I http://127.0.0.1:3001

Данные лежат в /opt/uptime-kuma/data — включите папку в бэкап.

2. Caddy как обратный прокси

Caddy выпускает сертификат Let’s Encrypt автоматически и умеет проксировать WebSocket, который нужен панели Kuma.

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install -y caddy

На Debian 12 и новее Caddy есть и в стандартном репозитории (apt install caddy), версия там чуть старше, но для прокси достаточно.

3. Домен

sudo nano /etc/caddy/Caddyfile
status.example.com {
    reverse_proxy 127.0.0.1:3001
}
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo systemctl reload caddy

Через несколько секунд https://status.example.com откроется с валидным сертификатом. Если нет — journalctl -u caddy -n 50: чаще всего A-запись ещё не обновилась.

4. Администратор

При первом открытии Kuma 2 спросит тип базы: для одного-двух десятков мониторов хватит SQLite. Создайте администратора с длинным паролем, в Settings → Security включите двухфакторную аутентификацию. В Settings → Reverse Proxy поставьте Trust Proxy = Yes, чтобы в журналах были настоящие IP, а не 127.0.0.1.

5. Уведомления в Telegram

  1. Напишите @BotFather, команда /newbot, скопируйте токен.
  2. Отправьте своему боту любое сообщение — иначе он не сможет писать вам первым.
  3. В Kuma: Settings → Notifications → Setup Notification.
  4. Тип Telegram, вставьте токен, нажмите Auto Get — Chat ID подставится.
  5. Включите «Default enabled» и «Apply on all existing monitors».
  6. Test — в Telegram должно прийти сообщение. Save.

6. Первые мониторы

Тип Для чего
HTTP(s) Сайты и API: код ответа, время, предупреждение об истечении сертификата
HTTP(s) – Keyword Страница должна содержать текст (ловит «белый экран» с кодом 200)
TCP Port SSH, базы, игровые серверы
Ping Сервер жив вообще
Push Наоборот: ваш скрипт (бэкап, cron) сам дёргает URL, а Kuma тревожится, если дёргать перестали

Добавьте монитор: Friendly Name, адрес, интервал (60 секунд для сайтов — нормально). Push-монитор отлично сочетается с ночным бэкапом restic: одна строка curl в конце службы, и вы узнаете о сломанном бэкапе на следующее утро.

Статусная страница

Status Pages → New: публичная страница с выбранными мониторами, можно повесить на отдельный домен и показывать клиентам.

Обновление

cd /opt/uptime-kuma
docker compose pull
docker compose up -d

Перед обновлением мажорной версии скопируйте папку data.