27 lines
1.0 KiB
TypeScript
27 lines
1.0 KiB
TypeScript
import { prisma } from "@/lib/db";
|
|
|
|
/**
|
|
* Healthcheck fuer Docker und den Reverse Proxy. Prueft, ob die Datenbank antwortet.
|
|
*
|
|
* Dieser Pfad ist absichtlich ohne Anmeldung erreichbar — er steht in der
|
|
* Allowlist von `src/proxy.ts`, damit ein Healthcheck kein Cookie braucht.
|
|
* Deshalb geht die **Begruendung** eines Fehlers nicht hinaus: eine Meldung von
|
|
* Prisma oder `pg` nennt typischerweise Host, Port, Benutzernamen und
|
|
* Datenbanknamen. Nach aussen genuegt, **ob** es geht; warum nicht, steht im
|
|
* Protokoll des Prozesses (`docker compose logs web`,
|
|
* `journalctl -u laufzettel`). Dasselbe Muster wie in
|
|
* `src/server/actions/verzeichnis.ts` (#039).
|
|
*/
|
|
export async function GET(): Promise<Response> {
|
|
try {
|
|
await prisma.$queryRaw`SELECT 1`;
|
|
return Response.json({ status: "ok" });
|
|
} catch (fehler) {
|
|
console.error(
|
|
"Healthcheck fehlgeschlagen:",
|
|
fehler instanceof Error ? `${fehler.name}: ${fehler.message}` : "unbekannter Fehler",
|
|
);
|
|
return Response.json({ status: "fehler" }, { status: 503 });
|
|
}
|
|
}
|