91cb337c03
- Multi-stage Dockerfile on node:24-slim, non-root, healthcheck, /app/data volume - server.mjs wraps the Astro handler with brotli/gzip compression, security headers and graceful SIGTERM shutdown (npm start) - GET /api/health/ reports server and view-counter DB status - Move build-only packages to devDependencies (smaller runtime image) - docker-compose.yml as an alternative for Dokploy Compose Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
14 lines
427 B
TypeScript
14 lines
427 B
TypeScript
import type { APIRoute } from 'astro';
|
|
import { dbHealthy } from '../../lib/views';
|
|
|
|
export const prerender = false;
|
|
|
|
// GET /api/health — Docker HEALTHCHECK / Dokploy. 503 if the view-counter DB is unavailable.
|
|
export const GET: APIRoute = () => {
|
|
const db = dbHealthy();
|
|
return Response.json(
|
|
{ status: db ? 'ok' : 'degraded', db },
|
|
{ status: db ? 200 : 503, headers: { 'Cache-Control': 'no-store' } },
|
|
);
|
|
};
|