← Блог

Uptime-мониторинг VPS на Hetzner с Coolify

Hetzner и Coolify — популярный indie-стек: недорогой VPS, деплой из Git, Traefik или Caddy спереди, Docker без своего PaaS. UI Coolify показывает состояние контейнеров на вашем сервере; он не заменяет внешнюю проверку того же HTTPS-URL, что клиенты вызывают curl, и не предупредит, когда упал весь VPS или upstream-сеть.

StillOnline проверяет снаружи сети Hetzner, размещает страницу статуса и шлёт алерты владельцу через бота StillOnline, Slack или email.

Краткий ответ

Стек на Hetzner Cloud и Coolify всё равно требует публичный GET /health на production-домене, где Traefik или Caddy терминирует TLS — 200 быстрее двух секунд. Зарегистрируйте URL в StillOnline, не внутреннее Docker-имя; на Free проверка каждые пять минут, один URL (тарифы). Краткий красный при рестарте контейнера — норма; см. техобслуживание.

Зачем внешняя проверка за Coolify

Coolify знает о рестарте контейнера на VPS. Клиенты видят только публичный HTTPS. DNS, сертификат или ошибка маршрута в reverse proxy могут оставить Coolify «зелёным», пока интернет получает 502.

Coolify показываетStillOnline добавляет
Контейнер на VPSHTTPS с точки зрения клиента
Логи деплояСсылку на страницу статуса
Telegram/Slack до завала почты

Сравнение self-hosted и размещённой страницы: open-source vs hosted.

Шаг 1 — Health за reverse proxy

Добавьте /health в образ приложения. Документация прокси Coolify маршрутизирует тот же домен, что production — не localhost.

curl -sS -o /dev/null -w "%{http_code}\n" https://api.yourproduct.com/health

Проверяйте с машины вне VPS. curl по SSH на localhost ≠ то, что видит StillOnline.

Типичные ложные срабатывания:

ПроблемаРешение
Рестарт при деплоеКраткий красный — норма
Health бьёт в БД на каждую внешнюю проверкуЛёгкий liveness на /health
Неверный label TraefikВнешняя проверка падает при «зелёном» UI — чините маршрут
Мониторите только панель CoolifyПанель жива, домен продукта — нет

Шаг 2 — StillOnline

  1. Вход.
  2. Новый проект.
  3. Публичный HTTPS /health, GET, 200, 5 мин (Free).
  4. Страница статуса в docs — гайд.

Агент на Hetzner не нужен — только HTTP GET снаружи.

Шаг 3 — Алерты

НастройкиПодключить Telegramбот StillOnlineгайд.

Free: один канал. Pro / Ultimate: все три — тарифы.

Связанные материалы

FAQ

StillOnline ставится на Hetzner VPS или Coolify?

Нет. Только внешние HTTP-проверки. Pipeline Coolify не меняется — регистрируйте URL после успешного curl из интернета.

Почему StillOnline краснеет при redeploy в Coolify?

Контейнер кратко недоступен снаружи. Ожидаемо без zero-downtime. Техобслуживание или дизайн health.

Мониторить URL админки Coolify?

Мониторьте домен продукта для клиентов, не только панель.

Заменить Uptime Kuma на том же VPS на StillOnline?

Часто страницу статуса для клиентов переносят на StillOnline, Coolify остаётся на Hetzner — Kuma vs hosted · без Kuma.