Мониторинг SaaS на Railway — публичный health check
Railway поднимает API или web-сервис с публичным URL (*.up.railway.app) или своим доменом. Внешнему мониторингу нужны этот HTTPS-адрес и GET /health (или /api/health) с 200 без авторизации.
Общая схема: быстрый старт health URL. Next.js на Vercel: гайд Vercel.
1. Health в сервисе
Express:
app.get("/health", (_req, res) => {
res.status(200).json({ status: "ok", service: "my-saas" });
});
FastAPI:
@app.get("/health")
def health():
return {"status": "ok"}
Слушайте process.env.PORT от Railway. Опционально SELECT 1 к Postgres — 503 при недоступной БД (как в статье про Vercel).
2. Публичный URL Railway
Сервис → Settings → Networking → Public Networking. Скопируйте HTTPS, например https://my-saas-production.up.railway.app.
curl -sS -w "\n%{http_code}\n" https://my-saas-production.up.railway.app/health
Нужны JSON и 200. 502 — процесс не слушает PORT. 404 — неверный путь (префикс /api и т.д.).
3. Свой домен
api.yourproduct.com → CNAME на Railway. После TLS мониторьте кастомный хост, а не временный *.up.railway.app, если часто пересоздаёте сервисы.
4. StillOnline
- Начать бесплатно.
- Проект + slug status page.
- HTTP-проверка →
https://api.yourproduct.com/health, GET, 200, 5 мин. - Ссылка на status page для клиентов.
- Pro+: stillonline-mcp (MCP).
| Тариф | Что входит |
|---|---|
| Free | 1 URL, публичная status page, история 24 ч |
| Pro ($9) | 10 URL, приватные страницы, API/MCP, 90 д |
Тарифы. StillOnline — внешний SaaS, не контейнер внутри Railway.
5. Заметки по Railway
- Sleep / scale to zero — внешний мониторинг видит простой; для API держите реплику или отключите sleep.
- Деплой — краткий 502 нормален.
- Worker vs web — мониторьте web, не очередь без HTTP.
- Несколько сервисов — на Free один URL; gateway health или Pro.
Сравнения: shortlist 2026 · vs Uptime Kuma.
FAQ
Только private networking?
StillOnline не достучится до private URL — нужен Public Networking или tunnel.
Домен Railway или свой?
Перед релизом лучше свой домен в проверке и в футере status page.
POST с авторизацией?
На Free — GET без кастомных заголовков. Сделайте публичный GET /health.
API и worker в одном проекте?
Мониторьте HTTP web. Воркеры — логи/метрики отдельно.
Чем Railway отличается от Vercel для мониторинга?
Оба требуют публичный HTTPS health; отличается реализация (контейнер vs serverless) — см. платформенные статьи.