Мониторинг SaaS на Vercel — health URL и страница статуса
Vercel упрощает выкладку Next.js: push в Git, preview, Edge или Node в одной панели. Production всё равно требует health endpoint, который интернет вызывает без cookie сессии, и внешнего мониторинга — иначе маркетинг зелёный, а /api отдаёт 503.
StillOnline по расписанию бьёт в production health, автоматически даёт страницу статуса и шлёт алерты владельцу на email, в Telegram (бот StillOnline) или Slack. Ниже — App Router (app/api/health/route.ts), production URL и проверка в StillOnline. Общие шаги: быстрый старт health URL. Railway: гайд Railway.
Краткий ответ
На Vercel добавьте app/api/health/route.ts (dynamic GET с 200), задеплойте и укажите в StillOnline проверку на https://your-app.vercel.app/api/health (или свой домен). StillOnline бьёт в URL из интернета каждые 5 мин на Free и даёт страницу статуса. Исключите /api/health из middleware с авторизацией; алерты — Алерты в Telegram или Алерты в Slack.
1. Файл app/api/health/route.ts
Для проб удобен route handler: вы задаёте JSON, коды ответа и включение БД. При обращении к БД держите роут dynamic, иначе возможен закэшированный «ok» при мёртвом Postgres.
import { NextResponse } from "next/server";
export const dynamic = "force-dynamic";
export async function GET() {
let db: "ok" | "error" = "ok";
try {
// Опционально: await prisma.$queryRaw`SELECT 1`;
} catch {
db = "error";
}
const healthy = db === "ok";
const status = healthy ? "ok" : "degraded";
return NextResponse.json(
{
status,
service: "my-saas",
db,
timestamp: new Date().toISOString(),
},
{ status: healthy ? 200 : 503 },
);
}
503 при кратком сбое БД — честно, но шумно при миграциях. Для liveness верните 200 без пинга БД.
2. Деплой на Vercel
Подключите репозиторий, production branch и env в панели. Запомните хост: https://your-app.vercel.app или свой домен.
Перед StillOnline с ноутбука:
curl -sS https://your-app.vercel.app/api/health
Нужны JSON и 200 на том же hostname, что пойдёт в StillOnline.
3. Типичные проблемы Vercel
Middleware, runtime и protection на preview — частые причины, почему внешняя проверка падает, а UI Vercel спокоен.
| Проблема | Решение |
|---|---|
middleware режет /api/health | Исключить путь в matcher |
| Edge без драйвера БД | Node runtime или без БД в health |
| Protection на preview | Мониторить только production |
| Редирект www | Указать финальный HTTPS URL |
4. Проверка в StillOnline
Укажите тот же URL, что проверили curl — StillOnline не деплоит на Vercel и не читает логи Vercel.
- Начать бесплатно.
- Проект + slug страницы статуса.
- HTTP →
https://your-app.vercel.app/api/health, 200, 5 мин. - Сохраните
https://stillonline.tech/ru/s/demoв документации, при онбординге B2B и в шаблонах поддержки — не прячьте ссылку в футере сайта. - Pro: MCP после смены домена.
Free: 1 URL, история 24 ч. Pro $9/мес: 10 URL, приватные страницы, API/MCP, 90 д — Тарифы.
Алерты владельца: при сбое и восстановлении включите email, Telegram или Slack в настройках — на Free один канал, на Pro / Ultimate все три. Гайды: Алерты в Telegram · Алерты в Slack.
5. Vercel зелёный, продукт «лежит»
Зелёный деплой не гарантирует довольных пользователей. На serverless эти разрывы встречаются часто — при необходимости опишите их инцидентом на странице статуса.
- Cold start serverless — редкие таймауты.
- Один регион — один монитор = слепая зона; для критичного — второй инструмент (обзор).
- Stripe и др. — health отражает ваш SLA; внешние deps — через инциденты на странице статуса.
FAQ
StillOnline на Vercel: Route Handler или Server Component?
Для проверки — Route Handler в app/api/health/route.ts с dynamic = "force-dynamic". Маркетинг может кэшировать «ok», пока API сломан — StillOnline видит только зарегистрированный URL.
Что указать в StillOnline — лендинг Vercel или /api/health?
Если платят за API — мониторьте /api/health. Лендинг может быть зелёным при неверном DATABASE_URL на API. Ссылку StillOnline на страницу статуса — в README, help center и онбординге, не в футере сайта.
Speed Insights Vercel заменяет мониторинг StillOnline?
Нет. Speed Insights — перформанс; HTTP-проверки StillOnline — доступность и алерты. CWV лендинга — Page Speed StillOnline на публичных URL, не на /health.
Можно ли повторить health-паттерн StillOnline на Vercel?
У StillOnline в проде JSON health с опциональным пингом БД; ваш handler может быть проще. После успешного curl зарегистрируйте production HTTPS — быстрый старт health.
Дополнительно
Health URL для SaaS — быстрый старт за 5 минут
Публичный GET /health или /api/health с ответом 200 и внешняя проверка StillOnline со страницей статуса. Лимиты Free указаны честно. StillOnline.
Uptime на Railway: health URL и статус
Публичный URL Railway, GET /health с ответом 200 и проверка StillOnline со страницей статуса. Лимиты Free и Pro $9. — пошагово в StillOnline, без агента на хостинге.
Vercel vs Railway vs Fly: что мониторить
Чеклист для indie SaaS: что проверять на Vercel, Railway и Fly.io — один пост, ссылки на platform guides, health URL и страница статуса StillOnline.
Telegram-алерты StillOnline: когда сервис упал
Алерты в Telegram при сбое HTTP-проверки, восстановлении и 24 ч без downtime. Привязка бота StillOnline в настройках — без BotFather и вебхук. StillOnline.
Slack-алерты StillOnline: когда сервис упал
Алерты в Slack при сбое HTTP-проверки, восстановлении и 24 ч без downtime. Пошагово: Incoming Webhook и настройки владельца в StillOnline. StillOnline.
Лучший uptime-мониторинг для indie SaaS
Сравнение StillOnline, UptimeRobot, Better Stack, Uptime Kuma, Instatus, Statuspage, UpCanary и OnePageStatus для indie SaaS на 1–3 сервиса. StillOnline.