Мониторинг 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 | Что значит «зелёный» | Риск |
|---|---|---|
| "/" и assets | Cache hit CDN | SSR/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() });
});
SvelteKit — src/routes/api/health/+server.ts с json({ status: 'ok' }).
Remix на Vercel — app/routes/health.tsx с loader → Response.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.toml | internal_port, path |
| Remix + Vercel | resource route | нет Express |
| SvelteKit adapter-node | /api/health | cold start редок |
| SvelteKit serverless | pin Node runtime | cold start после idle |
Проверки Fly — readiness платформы, не замена StillOnline. Handler < 2 с.
4. StillOnline для full-stack JS
- stillonline.tech/app →
https://app.example.com/api/health. - GET, 200.
- 2–3 цикла перед настройкой.
- Один канал на Free.
- Ссылка на страницу статуса в support.
StillOnline ловит TLS/DNS, которые Fly/Vercel не показывают покупателю.
5. Next.js vs Remix vs SvelteKit
| Next.js | Remix | SvelteKit | |
|---|---|---|---|
| Health path | /api/health | /health | /api/health |
| False green | static export | CDN vs bundle | adapter-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.