feat: Grundgerüst mit Anmeldung, Layout und Design-Tokens
Next.js 16, Prisma 7, Tailwind 4 und Vitest/Playwright, Konfiguration aus Laufzettel übernommen, weil dort derselbe Stack erprobt ist. Die Farben der Branding-Vorgabe stehen als Tokens in globals.css, das helle Theme setzt dieselben Namen neu. Amber und Rot sind dort abgedunkelt, sonst reicht der Kontrast nicht – ein Test prüft beide Themes gegen 4,5:1. Anmeldung mit lokalem Benutzer, Rolle je Anfrage aus der Datenbank, Audit-Log per Trigger nur anhängbar. Geprüft im gebauten Stand auf 1440 px und 390 px. Closes #001 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import type { NextConfig } from "next";
|
||||
|
||||
/** Feste Sicherheitskopfzeilen; die CSP setzt src/proxy.ts je Anfrage mit Nonce. */
|
||||
const SICHERHEITS_KOPFZEILEN = [
|
||||
{ key: "X-Content-Type-Options", value: "nosniff" },
|
||||
{ key: "X-Frame-Options", value: "DENY" },
|
||||
{ key: "Referrer-Policy", value: "strict-origin-when-cross-origin" },
|
||||
{ key: "Permissions-Policy", value: "geolocation=(), microphone=(), camera=()" },
|
||||
];
|
||||
|
||||
const konfiguration: NextConfig = {
|
||||
// Schlankes Laufzeit-Abbild für Dockerfile und LXC-Installer.
|
||||
output: "standalone",
|
||||
// ssh2 bringt optionale native Teile mit, die der Bundler nicht anfassen soll.
|
||||
serverExternalPackages: ["ssh2", "pg-boss", "pino"],
|
||||
async headers() {
|
||||
return [{ source: "/:pfad*", headers: SICHERHEITS_KOPFZEILEN }];
|
||||
},
|
||||
};
|
||||
|
||||
export default konfiguration;
|
||||
Reference in New Issue
Block a user