← Блог

Мониторинг 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

Сервис → SettingsNetworkingPublic 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

  1. Начать бесплатно.
  2. Проект + slug status page.
  3. HTTP-проверкаhttps://api.yourproduct.com/health, GET, 200, 5 мин.
  4. Ссылка на status page для клиентов.
  5. Pro+: stillonline-mcp (MCP).
ТарифЧто входит
Free1 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) — см. платформенные статьи.