Что такое Uptime Kuma?

Uptime Kuma — это инструмент мониторинга с самостоятельным размещением. Он через регулярные интервалы проверяет веб-сайты, TCP-порты, записи DNS, контейнеры Docker и многое другое, отправляет уведомления при сбоях и может публиковать страницы состояния. Проект предоставляет официальный образ louislam/uptime-kuma, который прослушивает порт 3001 и хранит все данные в папке /app/data.

Описание инструмента

Этот инструмент создаёт файл compose.yaml для Uptime Kuma. Он использует файл из репозитория Uptime Kuma и добавляет настройки, которые обычно необходимы: версию и вариант образа, порт хоста и адрес привязки, место хранения данных, доступ к сокету Docker для мониторов хоста Docker и базу данных. При выборе MariaDB в отдельном контейнере инструмент добавляет второй сервис с проверкой состояния, поэтому Uptime Kuma запускается только после готовности базы данных. Настройки, для которых в форме нет отдельного поля, можно добавить в виде переменных окружения. Всё создаётся в браузере.

Возможности

  • Теги образов 2, 1 и beta, а также стандартный, облегчённый, rootless и облегчённый rootless варианты версии 2
  • Порт хоста и адрес привязки, например 127.0.0.1, для использования за обратным прокси
  • Папка данных на хосте или именованный том Docker, который будет объявлен автоматически
  • Необязательный доступ к /var/run/docker.sock для мониторов хоста Docker с предупреждением о предоставляемых возможностях
  • SQLite, встроенная MariaDB, контейнер MariaDB, добавленный в файл, или внешний сервер MariaDB
  • Сгенерированный пароль базы данных с экранированными знаками $, чтобы Compose сохранял их без изменений
  • Параметры встраивания в iframe, проверки источника WebSocket и token Cloudflare Tunnel
  • Любая другая переменная окружения, комментарии с пояснениями к файлу и скачивание в виде compose.yaml

Примеры

Настройки по умолчанию создают тот же файл, что и файл в репозитории Uptime Kuma:

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
    restart: unless-stopped

При выборе контейнера MariaDB в качестве базы данных добавляется сервис mariadb, а Uptime Kuma подключается к нему с помощью UPTIME_KUMA_DB_TYPE, UPTIME_KUMA_DB_HOSTNAME и других переменных UPTIME_KUMA_DB_*.

Советы

  • Сохраните результат как compose.yaml в пустой папке и запустите его командой docker compose up -d. Затем откройте http://localhost:3001
  • Файловые системы, такие как NFS, не поддерживаются для папки данных. Используйте локальную папку или том Docker
  • Облегчённые образы не содержат Chromium, который необходим монитору реального браузера, и не включают встроенную MariaDB
  • Rootless-образы запускаются от имени пользователя node с UID 1000, поэтому папка данных на хосте должна быть доступна этому пользователю для записи
  • Uptime Kuma использует WebSockets. При размещении за обратным прокси прокси-сервер должен передавать заголовки Upgrade и Connection
  • Сокет Docker предоставляет Uptime Kuma полный контроль над Docker на хосте. Подключайте его только при необходимости использовать мониторы хоста Docker и не открывайте Uptime Kuma в интернете
  • Версия 1 поддерживает только SQLite, поэтому параметры базы данных для неё скрыты
  • Поля паролей попадают в файл в виде обычного текста. Храните файл в закрытом доступе или переместите пароль в файл .env и укажите его как ${DB_PASSWORD}