Legt das Fundament der Lern-Bar an: - Next.js 15 (App Router), React 19, TypeScript, ESLint, Vitest - SQLite ueber Drizzle hinter einer Repository-Schicht - Eigener Migrationslauf mit Pruefsummen, beim Start angewendet - Argon2id, serverseitige Sitzungen, HttpOnly-Cookie, SameSite=Lax - Rollen Ausbilder und Azubi, Rechteregeln als reine Funktionen - Verwaltung: Azubikonto und Ausbildung anlegen, Passwort, Sperren - Gestaltung Petrol/Bernstein, helle und dunkle Darstellung - Dockerfile, docker-compose, Lebenszeichen, update.sh mit Rueckfall - Sicherung und Wiederherstellung als Shell-Skripte - 29 Tests fuer Rechte, Zeitrechnung und Migrationslauf Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
26 lines
737 B
TypeScript
26 lines
737 B
TypeScript
import type { NextConfig } from 'next';
|
|
|
|
const konfiguration: NextConfig = {
|
|
// Standalone-Ausgabe: das Laufzeit-Image braucht kein node_modules-Verzeichnis.
|
|
output: 'standalone',
|
|
// Native Module dürfen nicht gebündelt werden.
|
|
serverExternalPackages: ['better-sqlite3', '@node-rs/argon2', 'pdfkit'],
|
|
poweredByHeader: false,
|
|
reactStrictMode: true,
|
|
eslint: { ignoreDuringBuilds: true },
|
|
async headers() {
|
|
return [
|
|
{
|
|
source: '/:pfad*',
|
|
headers: [
|
|
{ key: 'X-Content-Type-Options', value: 'nosniff' },
|
|
{ key: 'Referrer-Policy', value: 'same-origin' },
|
|
{ key: 'X-Frame-Options', value: 'SAMEORIGIN' },
|
|
],
|
|
},
|
|
];
|
|
},
|
|
};
|
|
|
|
export default konfiguration;
|