Новые релизы
Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.
Gatus по расписанию проверяет HTTP, TCP, DNS, ICMP и сертификаты, сверяет ответы с заданными условиями и показывает историю на статусной панели. Этот рецепт хранит результаты в SQLite, защищает панель через Basic Auth и требует один небольшой контейнер.
Gatus превращает YAML-файл в проверки доступности по расписанию и статусную панель. Он проверяет HTTP-ответы, TCP- и UDP-порты, DNS, ICMP, SSH, сертификаты, срок домена и многошаговые API-сценарии, а затем сверяет результат с явными условиями, а не считает успехом любой ответ.
Он подходит тем, кто хочет хранить конфигурацию мониторинга в системе контроля версий и не нуждается в редакторе форм. Панель показывает историю ответа и инциденты, а уведомления отправляются в почту, чаты, webhook и сервисы дежурств. В этом рецепте встроенная SQLite сохраняет историю без отдельной базы данных.
На панели нельзя редактировать проверки. Измените
config/config.yaml, проверьте diff и перезапустите Gatus — это главное отличие от UI-first подхода Uptime Kuma.
Рецепт публикует Gatus на 127.0.0.1, включает Basic Auth из .env, задаёт
no-new-privileges и не выдаёт capabilities, host networking или Docker socket.
Публичный доступ должен идти через HTTPS reverse proxy.
Gatus по своему назначению отправляет исходящие запросы. Тот, кто может менять
config.yaml, может обратиться к любому адресу, доступному из сети контейнера,
включая внутренние сервисы. Ограничьте право записи в каталог рецепта.
Официальный образ также запускается от root: рецепт ограничивает доступ процесса
к хосту, но не меняет пользователя внутри контейнера.
Это сохранённые результаты отдельных проверок, а не данные в реальном времени. Неизвестный статус означает, что проверка ещё не выполнялась.
Сравнение версии рецепта с последним известным релизом upstream. Это номер версии, а не разбор изменений.
Результат отдельного сканирования Docker-образов, а не проверки Compose.
Новый major находится сравнением номеров версий. Вердикт о совместимости заносится вручную после чтения release notes и порядка миграции.
Изменения upstream Compose относительно проверенного рецепта.
Проверка закреплённых тегов образов на наличие новых версий.
От наблюдения к действию
Рецепт уже закрепляет последний известный релиз. Ниже показаны сохранённые основания для этой версии.
v5.37.0v5.37.0Открыть релиз на GitHub ↗ Ссылка нужна для ревизии и сама по себе не доказывает совместимость.
Номера версий не пересекают major-границу совместимости. Вердикт о совместимости не записан.
Смена тегов образов сейчас не планируется.
Смена тега и перезапуск. Шаги конкретного релиза всё равно берутся из release notes и инструкции по установке.
Смена версии сейчас не планируется. Рецепт содержит процедуру backup. Restore проверен.
Точная проверка уровня «Проверен полностью» для этой версии записана 2026-10-09.
Статус показывает, насколько опубликованный рецепт покрывает требования каждого уровня.
Минимальная конфигурация для локальной сети или доступа через VPN.
Рецепт закрывает все требования этого уровня.
Публичная установка с защищённым доступом и резервными копиями.
Рецепт закрывает все требования этого уровня.
Конфигурация для предсказуемой эксплуатации и наблюдаемости.
Нужно добавить вручную: отдельная бд, healthcheck, внешний мониторинг, лимиты cpu и памяти.
Собрать под свой сервер
Ответьте на пять вопросов и скачайте готовый комплект Gatus.
Сначала прочитайте полную инструкцию: в ней описаны доступ извне, backup и расположение данных.
cp .env.example .envdocker compose up -ddocker compose psНужен Ubuntu 22.04+ или Debian 12+ с Docker Engine и Docker Compose v2.24+. Выделите 1 ядро, 128 МБ RAM и 1 ГБ локального диска; 256 МБ RAM оставят запас для новых проверок и истории. Рецепт использует SQLite и не требует отдельной БД.
docker --version
docker compose version
Положите compose.yaml, .env.example, config/, backup.sh, restore.sh и
proxy/ в отдельный каталог:
mkdir -p ~/services/gatus
cd ~/services/gatus
cp .env.example .env
chmod 600 .env
В .env лежат закреплённая GATUS_VERSION, локальный GATUS_PORT, имя Docker
volume, GATUS_CONFIG_DIR и данные для входа. Оставьте каталог конфигурации
равным ./config, если backup не должен читать его в другом месте. Замените
change-me. Gatus хранит bcrypt-хеш, а не пароль; эти команды создадут пароль и Base64-хеш для
GATUS_PASSWORD_BCRYPT_BASE64:
password="$(openssl rand -base64 32)"
printf 'Password: %s\n' "$password"
htpasswd -bnBC 9 "" "$password" | tr -d ':\n' | base64 -w0
printf '\n'
В Ubuntu и Debian htpasswd входит в пакет apache2-utils. Сохраните показанный
пароль в менеджере паролей: восстановить его из хеша в .env нельзя.
Цели находятся в config/config.yaml. Встроенная самопроверка доказывает работу
расписания, условий, SQLite и панели до добавления ваших сервисов. Секреты
провайдеров уведомлений храните в .env, передавайте через compose.yaml и
ссылайтесь на имена переменных из конфигурации вместо записи токенов в YAML.
docker compose pull
docker compose up -d
docker compose ps
curl http://127.0.0.1:8080/health
Последняя команда должна вывести {"status":"UP"}. В образе нет Docker
healthcheck, поэтому после запуска проверьте и /health, и завершённый результат
проверки на панели.
До настройки reverse proxy используйте SSH-туннель:
ssh -L 8080:127.0.0.1:8080 user@server.example
Откройте http://localhost:8080, войдите с данными из .env, дождитесь зелёной
Gatus health и откройте её условия.
Добавьте цель в config/config.yaml, например:
- name: Public website
group: Production
url: https://www.example.com/
interval: 1m
conditions:
- "[STATUS] == 200"
- "[CERTIFICATE_EXPIRATION] > 48h"
- "[RESPONSE_TIME] < 1000"
Выполните docker compose restart gatus и прочитайте логи. Начните с HTTP-
статуса, сертификата и мягкого ограничения времени ответа; ужесточайте его после
наблюдения за обычными значениями. Зелёная HTTP-проверка доказывает только этот
запрос, а не работу всех функций целевого приложения.
Сохраните localhost-bind и используйте SSH-туннель. Если панель нужна в доверенной
LAN, замените 127.0.0.1 в compose.yaml на LAN-адрес сервера, например
192.168.1.10, и закройте порт 8080 на внешнем интерфейсе. Не используйте
0.0.0.0 только ради удобства.
Примеры в proxy/ направляют status.example.com на локальный порт. Замените
домен своим. Caddy получит сертификат автоматически, Nginx ожидает файлы Certbot,
а Traefik использует resolver letsencrypt. Если Traefik запущен в контейнере,
замените 127.0.0.1 на адрес host gateway, доступный из него.
Basic Auth остаётся включённым за proxy. Gatus поддерживает OIDC, но перенос
входа в identity provider требует client secret и осознанной правки блока
security; не включайте оба режима случайно.
chmod +x backup.sh restore.sh
./backup.sh
Скрипт останавливает Gatus, чтобы база SQLite, WAL и shared-memory файлы
образовали согласованный набор, затем архивирует volume вместе с config/ и
снова запускает контейнер. Храните зашифрованную копию вне сервера: архив
содержит адреса проверок и может содержать настройки уведомлений.
Восстановление заменяет и базу, и конфигурацию:
./restore.sh ./backups/gatus-YYYYMMDDTHHMMSSZ.tar.gz
docker compose ps
Скрипт проверяет архив и сначала снимает страховочную копию текущего состояния.
После запуска проверьте /health, войдите и убедитесь, что вернулись ожидаемые
цели, история и объявления.
Сделайте backup, прочитайте release notes, замените GATUS_VERSION в .env и
пересоздайте контейнер:
docker compose pull
docker compose up -d
docker compose logs --tail=100 gatus
Проверьте /health и дождитесь свежего результата каждой цели. Gatus применяет
изменения схемы SQLite при старте; один HTTP-ответ не доказывает, что прежняя
история читается.
Верните прежнюю GATUS_VERSION в .env и выполните docker compose pull && docker compose up -d. Если старый образ не читает изменённую новой версией БД,
оставьте прежнюю версию выбранной и восстановите архив до обновления.
docker compose down останавливает Gatus и сохраняет БД. Для полного удаления:
docker compose down
docker volume rm gatus-data
rm -rf ~/services/gatus
Источники: официальный запуск в Docker, справочник конфигурации, хранилище и безопасность.
Сообщить о проблеме с рецептом
Рассказать, как прошло на вашем сервере
Откроется предзаполненный issue на GitHub. Нужен аккаунт GitHub; после отправки сообщение будет публичным.
Gatus отклоняет неверную конфигурацию вместо запуска только с её частью:
docker compose ps --all
docker compose logs --tail=200 gatus
Частые причины — отступы YAML, повтор одной простой настройки в нескольких
файлах и неверное условие. Исправьте config/config.yaml и снова выполните
docker compose up -d.
/health работает, но ни одна проверка не зелёная/health доказывает только то, что Gatus отвечает. Посмотрите результат и логи:
read -r -p 'Имя пользователя: ' GATUS_USERNAME
read -r -s -p 'Пароль: ' GATUS_PASSWORD
curl --user "${GATUS_USERNAME}:${GATUS_PASSWORD}" \
http://127.0.0.1:8080/api/v1/endpoints/statuses
docker compose logs --tail=200 gatus
Повторите DNS-запрос или HTTP-запрос с самого сервера. Цель, которая работает в браузере, может быть закрыта от сервера, разрешаться там во внутренний адрес или отдавать другой сертификат.
Измените GATUS_PORT в .env и пересоздайте контейнер:
docker compose up -d
Также замените upstream-порт reverse proxy. Оставьте bind на 127.0.0.1.
Используйте текущий GATUS_USERNAME из .env и обычный пароль, чей хеш записан
в GATUS_PASSWORD_BCRYPT_BASE64. После замены пересоздайте контейнер, а не
только перезапустите процесс:
docker compose up -d --force-recreate
Не удаляйте блок security, чтобы вернуть доступ на публичном сервере. Задайте
новые данные и сначала проверьте их через localhost.
Проверьте SQLite по адресу /data/data.db и ожидаемый volume:
docker compose config
docker volume inspect gatus-data
Если storage.type стал memory, новые результаты не сохранялись. Верните
конфигурацию и базу из backup до удаления старого volume.
Fossary — независимый информационный каталог, не связанный с разработчиками представленных приложений. Мы собираем сведения из открытых источников и проверяем опубликованные рецепты, но не разрабатываем, не распространяем и не контролируем эти приложения.
Публикация карточки или статус проверки не являются требованием, навязыванием либо персональной рекомендацией использовать приложение. Вы самостоятельно решаете, подходит ли оно вам, и используете его на свой риск. Мы не гарантируем безопасность, доступность или пригодность приложения и, в пределах, допускаемых законом, не отвечаем за вызванные им потери или ущерб. До установки проверьте лицензию, настройки безопасности, обработку данных и резервное копирование.