chore: Projektgeruest mit Next.js, TypeScript und Tailwind
Grundgeruest der Anwendung: Next.js 15 (App Router), TypeScript im strict-Modus, Tailwind mit shadcn/ui-Farbtokens. Bewusste Festlegungen: - Nur Systemschriften, keine externen Fonts, kein CDN. - Grundschrift eine Stufe groesser, Fokusring immer sichtbar, Touchziele mindestens 44px. - Ampelfarben fuer Fristen als eigene Design-Tokens. - Betraege werden als Cent-Ganzzahl gefuehrt, damit die Rechnungslegung keine Rundungsfehler erbt. - .env.example dokumentiert alle Geheimnisse; npm run schluessel erzeugt sie. Etappe: 1 Phase: Fundament
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env node
|
||||
/**
|
||||
* Erzeugt die Geheimnisse fuer die .env-Datei.
|
||||
*
|
||||
* Aufruf: npm run schluessel
|
||||
*
|
||||
* Die Werte werden bewusst nur ausgegeben und nirgends gespeichert.
|
||||
* Kopiere sie in die .env und sichere ENC_KEY_V1 zusaetzlich getrennt
|
||||
* vom Datenbank-Backup (z.B. Passwortmanager, Papier im Ordner).
|
||||
*/
|
||||
import { randomBytes } from 'node:crypto'
|
||||
|
||||
const b64 = (bytes) => randomBytes(bytes).toString('base64')
|
||||
|
||||
console.log(`
|
||||
# --- Erzeugt am ${new Date().toISOString()} ---
|
||||
AUTH_SECRET=${b64(32)}
|
||||
ENC_KEY_V1=${b64(32)}
|
||||
ENC_KEY_AKTIV=1
|
||||
INDEX_KEY=${b64(32)}
|
||||
POSTGRES_PASSWORD=${b64(24).replace(/[+/=]/g, 'x')}
|
||||
|
||||
# WICHTIG: ENC_KEY_V1 geht NICHT verloren gehen duerfen.
|
||||
# Ohne ihn sind Diagnosen, IBANs, Versicherungsnummern und Notizen
|
||||
# aus dem Backup nicht mehr lesbar.
|
||||
`)
|
||||
Reference in New Issue
Block a user