← Блог

Мониторинг Remix и SvelteKit: health routes и SSR

Главная с CDN отдаёт 200, а SSR для залогиненных падает с 500. Монитор бьёт / и остаётся зелёным. Для Remix и SvelteKit нужны health routes и внешний StillOnline на JSON /health или /api/health, а не только статика.

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

CDN-зелёный не значит, что SSR и API живы. Remix: /health на Node или resource route на Vercel. SvelteKit: /api/health в +server.ts. StillOnline снаружи, 200/503. На Fly — path в fly.toml = URL в StillOnline. Free: один URL, ~5 мин, код ответа.

См. Next.js health · Fly.io.

1. SSR vs зелёный CDN со статикой

URLЧто значит «зелёный»Риск
"/" и assetsCache hit CDNSSR/API не видны
/api/healthПроцесс + опционально БДЛучший default для StillOnline
SSR с сессиейПолный стекСложнее автоматизировать

Free не парсит JSON — 503 при падении зависимостей.

2. Health routes под фреймворк

Remix + Express:

app.get("/health", (_req, res) => {
  res.status(200).json({ status: "ok", timestamp: new Date().toISOString() });
});

SvelteKitsrc/routes/api/health/+server.ts с json({ status: 'ok' }).

Remix на Vercelapp/routes/health.tsx с loaderResponse.json.

Без auth. Редирект на /login (302) — ложный успех для probe.

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

3. Serverless vs Node adapter

ДеплойHealthПодводный камень
Remix + Fly/health, fly.tomlinternal_port, path
Remix + Vercelresource routeнет Express
SvelteKit adapter-node/api/healthcold start редок
SvelteKit serverlesspin Node runtimecold start после idle

Проверки Fly — readiness платформы, не замена StillOnline. Handler < 2 с.

4. StillOnline для full-stack JS

  1. stillonline.tech/apphttps://app.example.com/api/health.
  2. GET, 200.
  3. 2–3 цикла перед настройкой.
  4. Один канал на Free.
  5. Ссылка на страницу статуса в support.

StillOnline ловит TLS/DNS, которые Fly/Vercel не показывают покупателю.

5. Next.js vs Remix vs SvelteKit

Next.jsRemixSvelteKit
Health path/api/health/health/api/health
False greenstatic exportCDN vs bundleadapter-static
StillOnlineпубличный /api/health/health или /ready/api/health

README с каноническими URL, 503 в staging при остановке БД, curl не из CI.

Что дальше

Health routes + StillOnline. Telegram: алерты. Страница статуса в футере.

StillOnline — два зелёных цикла probe.

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

FAQ

StillOnline бить SSR HTML или JSON health?

JSON /api/health — основная проверка.

Fly и Vercel — что мешает StillOnline?

Несовпадение path в fly.toml; cold start на Vercel.

Remix на Vercel без Express?

Resource route /health.

SvelteKit edge vs node с БД?

Node runtime на health route.