Uptime-мониторинг Docker Compose на VPS
Docker Compose на малом VPS (Hetzner, DigitalOcean Droplet, Linode) — типичный домашний сервер и ранний production: nginx или Traefik спереди, контейнеры приложения сзади, Postgres во внутренней сети. Мониторьте одну публичную точку входа — не каждый внутренний порт с интернета.
StillOnline выполняет HTTP GET снаружи VPS, размещает страницу статуса и шлёт алерты через бота StillOnline, Slack или email. Мониторинг-контейнер на том же хосте не обязателен — внешняя правда ловит DNS, TLS и ошибки reverse proxy, которые UI Compose/Coolify пропускает.
Краткий ответ
Docker Compose на VPS: GET /health на публичном HTTPS-домене, где nginx или Traefik терминирует TLS — 200, не http://app:3000. Зарегистрируйте URL в StillOnline; на Free проверка каждые пять минут, один URL (тарифы). Внутренние Postgres и Redis — без внешних проверок. См. Hetzner + Coolify и open-source vs hosted.
Одна точка входа, не каждый контейнер
| Сервис | Внешняя проверка StillOnline? |
|---|---|
| nginx / Traefik → app | Да — /health на публичном домене |
Postgres во internal сети | Нет — опциональный ping внутри /health app |
| Redis, worker, очередь | Нет публичной проверки — heartbeat позже |
| Случайно открытый admin-порт | Не регистрируйте — закройте firewall |
StillOnline бьёт в тот же URL, что клиенты — быстрый старт health.
Типичные ловушки Compose
| Проблема | Решение |
|---|---|
curl localhost внутри контейнера | Тест снаружи VPS |
| Мониторите только Portainer | UI жив, домен app — нет |
| Истёк сертификат nginx | Внешняя проверка падает |
docker compose restart | Краткий красный — техобслуживание |
curl -sS -o /dev/null -w "%{http_code}\n" https://api.yourproduct.com/health
StillOnline
- Вход.
- Новый проект.
- Публичный
/health, GET, 200, 5 мин (Free). - Страница статуса при платящих клиентах — гайд.
Настройки → бот StillOnline — Telegram.
Free: один URL. Pro: отдельный публичный webhook host — тарифы.
Домашний сервер vs indie SaaS
На домашнем сервере часто крутят Uptime Kuma на той же машине — он умирает вместе с VPS. Внешний StillOnline переживает падение хоста, который вы не можете self-ping — Kuma vs hosted. С B2B-клиентами размещённая страница статуса лучше, чем инциденты только по SSH.
Связанные материалы
- Hetzner + Coolify
- Open-source vs hosted status page
- Быстрый старт health URL
- Status page без Uptime Kuma
FAQ
StillOnline пингует каждый сервис в Docker Compose?
Нет. Один публичный health URL через reverse proxy. Внутренние сервисы — внутри handler при необходимости — дизайн health.
Мониторить http://127.0.0.1:8080/health?
Только если порт публично доступен из интернета — обычно плохая идея. Предпочтите HTTPS на домене.
StillOnline ставит агент на VPS?
Нет. Только внешние HTTP-проверки — контейнер в Compose не нужен.
Когда домашний сервер переходит на StillOnline вместо self-hosted Kuma?
Когда нужна страница статуса для клиентов и алерты, работающие при недоступности VPS — без Kuma · open-source vs hosted.