Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Наблюдаемость и аудит

Uptime Kuma

Свой мониторинг аптайма и статус-страница на собственном сервере: проверки HTTP, TCP, DNS, ключевого слова и срока SSL-сертификата, уведомления в 90+ каналов. Развернули на Fatmetal Cloud Server, засеяли мониторы и сняли замеры с живого стенда.

Июль 2026 ~9 минут чтения Fatmetal Team
Мониторинг Лицензия: MIT Статус: запущен у нас, v2.4.0

Вердикт

Подходит
  • нужен свой мониторинг сайтов и сервисов без лимитов SaaS на число проверок и интервал
  • нужна публичная статус-страница вместо Statuspage.io
  • хочется алерт о протухающем SSL-сертификате и падении сервиса в Telegram или ntfy
Не подходит
  • нужны метрики нагрузки (CPU, RAM, диск) - это не про Uptime Kuma, тут Beszel или Prometheus
  • нужен мониторинг из нескольких географических точек одновременно
  • нужен полноценный APM и трейсинг запросов внутри приложения
Мин. тариф: CPU2-RAM4-DISK50 Рекомендуем: CPU2-RAM4-DISK50 Сложность: low Время запуска: ~4 минуты Главный риск: первый открывший URL заводит админа Прод-готовность: да (реверс-прокси с TLS уже в стеке)
Что это

Что это и какую задачу решает

Uptime Kuma - это self-hosted мониторинг доступности: он с заданным интервалом дергает ваши сайты и сервисы и показывает, живы ли они, как быстро отвечают и что происходит с SSL-сертификатом. По сути это своя замена облачным UptimeRobot, Pingdom и StatusCake, только без абонентской платы и без лимитов на число мониторов.

Проверки не ограничены пингом URL: есть HTTP(s) с проверкой кода и ключевого слова в ответе, TCP-порт, ping, запрос к DNS, срок действия SSL-сертификата, статус docker-контейнера, gRPC и другие. Когда монитор падает или сертификат подходит к концу, Uptime Kuma шлет уведомление - поддерживается больше 90 каналов, включая Telegram, ntfy, электронную почту, Slack и вебхуки. Поверх этого собирается публичная статус-страница, которую можно показывать пользователям.

Node.jsSQLitesocket.ioDockerCaddy
https://45-15-159-154.fatmetal.net/dashboard
Сводка Uptime Kuma: четыре монитора со статусом Доступен, аптайм 100% и лента событий
Сводка мониторов на нашем стенде: Uptime Kuma 2.4.0, тариф CPU2-RAM4-DISK50.
Сравнение

Чем отличается от платных аналогов

Сравнение с облачными мониторингами по тому, что реально влияет на выбор.

ПараметрUptime KumaUptimeRobot / Pingdom
Модель ценыбесплатно, свой серверподписка, тариф растет с числом мониторов
Число мониторовне ограниченолимит на бесплатном плане
Минимальный интервалот 20 секунд5 минут на бесплатном плане
Статус-страницавходит, без доплатчасто отдельный платный уровень
Где данныена вашем серверев чужом облаке
Точки проверкиодна (ваш сервер)несколько регионов

Минус на своей стороне один: мониторинг идет из одной точки - вашего сервера. Если нужен взгляд из нескольких стран, облачные сервисы тут выигрывают. Для «жив ли мой сервис и что с сертификатом» одной точки достаточно.

Под капотом

Тех-стек и архитектура

Сам Uptime Kuma - это одно Node.js-приложение, которое хранит все (мониторы, историю проверок, статус-страницы, настройки уведомлений) в файле SQLite в томе. Никакой отдельной СУБД поднимать не нужно. Веб-интерфейс живет на websocket через socket.io - это важно помнить при настройке реверс-прокси.

Мы развернули его в два контейнера: сам louislam/uptime-kuma:2, который слушает только localhost, и caddy:2 перед ним - Caddy выпускает Let's Encrypt-сертификат, отдает сервис по HTTPS и сам пробрасывает websocket. Такой связки достаточно для прода: наружу торчит только 80/443, приложение недоступно напрямую.

https://45-15-159-154.fatmetal.net/add
Экран создания монитора в Uptime Kuma: выбор типа проверки и HTTP-опции
Создание монитора: типы проверок (HTTP, TCP, ping, DNS, keyword, SSL) и параметры.
Конфигурация

Минимальная конфигурация

Реальные требования против официального минимума.

Официальный минимум1 GB RAM, 1 CPU
Реально в простое (два контейнера)~163 MiB RAM
Рекомендуем тарифCPU2-RAM4-DISK50
Диск под данныеSQLite, растет от истории проверок
i

Важно: по памяти Uptime Kuma нетребователен и заводится даже на 1 GB, но берем тариф CPU2-RAM4-DISK50 за 500 руб/мес с запасом - под рост истории проверок и Caddy рядом. Диск съедает не приложение, а накопленная история пингов: на десятках мониторов это все равно десятки мегабайт.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий домен, валидный TLS и файл с доступами.

Рекомендуемая конфигурация:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe от 450 ₽/мес

В маркетплейс →
Развертывание

Развертывание на Fatmetal

Базовый путь - Cloud Server + Ubuntu 24.04 + Docker, приложение за Caddy с авто-TLS.

  1. Создать сервер

    Fatmetal Cloud Server на Ubuntu 24.04, тариф CPU2-RAM4-DISK50. Дальше все по SSH под root.

  2. Подготовить docker-compose

    Uptime Kuma слушает только localhost, наружу его выводит Caddy.

    mkdir -p /opt/uptime-kuma/data && cd /opt/uptime-kuma
    cat > docker-compose.yml <<'YML'
    name: uptime-kuma
    services:
      uptime-kuma:
        image: louislam/uptime-kuma:2
        restart: unless-stopped
        volumes: ["./data:/app/data"]
        ports: ["127.0.0.1:3001:3001"]
      caddy:
        image: caddy:2
        restart: unless-stopped
        ports: ["80:80","443:443"]
        command: caddy reverse-proxy --from ВАШ-ДОМЕН --to uptime-kuma:3001
    YML
  3. Поднять стек

    docker compose pull
    docker compose up -d

    Caddy сам выпустит Let's Encrypt для домена и пробросит websocket. Проверка: docker compose ps - оба контейнера up, uptime-kuma healthy.

  4. Завести администратора

    Откройте домен в браузере. В версии 2 мастер идет в два шага: сначала выбор БД (для чистой установки - SQLite), затем создание логина и пароля админа. Кто первым открыл адрес, тот и заводит админа - делайте это сразу.

https://45-15-159-154.fatmetal.net/status/fatmetal-status
Публичная статус-страница Uptime Kuma: Все системы работают, группа сервисов
Публичная статус-страница нашего стенда: «Все системы работают».
Замеры

Что измерили после запуска

Цифры с живого стенда: docker stats, время установки, проверка TLS.

Установка (скрипт целиком)~245 c
RAM: uptime-kuma~151 MiB
RAM: caddy~12 MiB
RAM: два контейнера суммарно~163 MiB
Контейнеров в стеке2
TLS (Let's Encrypt)verify=0, код 302
i

Главное: установка почти целиком - это docker pull образов и выпуск сертификата, само приложение отвечает в пределах минуты после старта. По памяти стек предельно легкий: даже через сутки аптайма с четырьмя мониторами оба контейнера вместе держатся около 163 MiB. Это один из самых недорогих по ресурсам сервисов, что мы разбирали.

https://45-15-159-154.fatmetal.net/dashboard/1
Деталь монитора в Uptime Kuma: отклик, аптайм за 24 часа, 30 дней и год, срок сертификата и график пинга
Деталь монитора: отклик, аптайм за 24ч/30д/1г, срок сертификата и домена, график пинга.

Проверено на версии 2.4.0, июль 2026. На новых версиях результаты могут отличаться.

Подводные камни

Где может сломаться

Реальные грабли, на которые стоит смотреть заранее.

!

Мастер администратора открыт всем. Пока вы не создали первого админа, это может сделать любой, кто откроет URL. В проде откройте адрес и заведите админа сразу после установки, а не «потом».

!

Уведомления молчат, пока не настроен канал. Мониторинг без алертов наполовину бессмыслен: заведите Telegram-бота, ntfy или SMTP в разделе Settings - Notifications и привяжите к мониторам, иначе о падении узнаете, только зайдя в интерфейс.

UI висит на «Connecting...» за реверс-прокси

Причина. Интерфейс Uptime Kuma работает через websocket (socket.io). Если прокси не пробрасывает Upgrade-заголовки, страница грузится, но не подключается к бэкенду.

Решение. Caddy пробрасывает websocket сам - с ним проблемы нет. На ручном nginx добавьте в location проброс Upgrade и Connection, иначе UI не оживет.

Безопасность

Безопасность и обновления

Обновление - это подтянуть свежий образ и пересоздать контейнер. Тег :2 держит вас на стабильной второй ветке, ломающих смен мажора не будет:

docker compose pull && docker compose up -d

Бэкап предельно простой - вся база это каталог с SQLite. Останавливаем стек и копируем том:

docker compose stop
tar czf uptime-kuma-backup.tgz /opt/uptime-kuma/data
docker compose start

Что закрыть перед продом: сервис только за HTTPS (в нашем стеке это Caddy), приложение не торчит наружу напрямую (порт на 127.0.0.1), первый админ заведен сразу и с сильным паролем, включена двухфакторка в профиле, регулярный бэкап тома data, настроен хотя бы один канал уведомлений.

Рядом

Связь с другими стеками

Uptime Kuma отвечает на вопрос «жив ли сервис и что с сертификатом». Полную картину наблюдаемости он не закрывает - рядом обычно ставят:

  • Beszel - метрики ресурсов (CPU, RAM, диск, сеть) серверов, чего Uptime Kuma не умеет.
  • ntfy - свой сервер пуш-уведомлений, удобный приемник алертов Uptime Kuma на телефон.
  • Wazuh - аудит безопасности и события, если нужен не только аптайм, но и мониторинг угроз.
  • Caddy - реверс-прокси с авто-TLS, уже используется в этом стеке для HTTPS и websocket.
Ограничения

Когда это НЕ ваш выбор

Нужны метрики нагрузки

Uptime Kuma не показывает, сколько сервер ест CPU, RAM и диска. Для этого нужен Beszel, Netdata или связка Prometheus с Grafana.

Нужны проверки из разных регионов

Мониторинг идет из одной точки - вашего сервера. Если важно видеть доступность из нескольких стран, тут выигрывают облачные UptimeRobot или Pingdom с их сетью точек.

Нужен APM и трейсинг

Это мониторинг снаружи, а не профилирование внутри приложения. Разобрать медленный запрос по спанам он не поможет - это задача для OpenTelemetry, Jaeger или Sentry.

FAQ

Частые вопросы

Можно поставить без Docker?

Да, есть установка через Node.js напрямую, но docker-вариант проще и воспроизводимее - его и рекомендуют в проекте.

Хватит ли 1 GB RAM?

Хватит: в простое два контейнера держатся около 163 MiB. Мы берем тариф CPU2-RAM4-DISK50 с запасом под рост истории проверок.

Можно в продакшен?

Да. Нужен реверс-прокси с TLS (в нашем стеке Caddy), сразу заведенный админ, бэкап тома и настроенные уведомления.

Как обновлять?

docker compose pull и up -d. Тег :2 держит на стабильной второй ветке без ломающих смен мажора.

Как делать бэкап?

Вся база - это каталог data с SQLite. Останавливаете стек, копируете каталог, запускаете обратно.

Какие каналы уведомлений поддерживаются?

Больше 90: Telegram, ntfy, email, Slack, Discord, вебхуки и другие. Настраиваются в Settings - Notifications.

Какая лицензия?

MIT - свободное использование, включая коммерческое.

Итог

Uptime Kuma - легкий и удобный способ поднять свой мониторинг аптайма и статус-страницу без SaaS-лимитов. Два контейнера, около 163 MiB RAM в простое, установка за несколько минут, проверки HTTP, TCP, DNS, keyword и SSL, уведомления в 90+ каналов. Первый и самый узнаваемый кирпич стека наблюдаемости - и один из самых недорогих по ресурсам сервисов, что мы разворачивали. Заводится на тарифе CPU2-RAM4-DISK50, реверс-прокси с TLS уже в стеке, так что путь до прода короткий.

Рекомендуемая конфигурация для установки:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe

Не хотите устанавливать вручную?

Запустите Uptime Kuma на этой конфигурации автоматически - от 450 ₽/мес.

Запустить Uptime Kuma →
Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли баг в гайде - напишите, поправим в течение дня.

Спросить инженера в TelegramМы на связи