2.7 KiB
Getting Started
Diese Anleitung bringt eine lokale Entwicklungsumgebung fuer das Boilerplate zum Laufen. Sie setzt voraus, dass MySQL 8 und ein OIDC Provider bereits verfuegbar sind.
Voraussetzungen
- Node.js
24.18.0aus.nvmrc - npm
11.x - Docker fuer Image-Builds und spaetere Auslieferung
- MySQL 8 mit
utf8mb4 - OIDC Client mit Authorization Code Flow, PKCE und Discovery Endpoint
Das Repository ist ein npm-Workspace-Monorepo. Abhaengigkeiten werden immer aus dem Root installiert.
npm ci
cp .env.example .env
Lokale Konfiguration
Trage in .env mindestens folgende Werte ein:
DATABASE_HOST,DATABASE_PORT,DATABASE_NAME,DATABASE_USER,DATABASE_PASSWORDOIDC_ISSUER,OIDC_CLIENT_ID,OIDC_CLIENT_SECRETSESSION_SECRETmit mindestens 32 zufaelligen ZeichenSESSION_ENCRYPTION_KEYmit mindestens 32 zufaelligen ZeichenAPP_BASE_URL=http://localhost:3000FRONTEND_BASE_URL=http://localhost:4200CORS_ORIGINS=http://localhost:4200,http://localhost:3000
Der OIDC Provider muss als Redirect URI diese URL erlauben:
http://localhost:3000/api/auth/callback
Datenbank vorbereiten
Die Anwendung fuehrt Migrationen beim normalen Start nicht automatisch aus. Fuehre sie bewusst aus:
npm run migration:status
npm run migration:run
Wenn Migrationen fehlen, verweigert das Backend den Start beziehungsweise
/health/ready bleibt nicht bereit.
Entwicklung starten
npm run dev
Das startet:
- Frontend:
http://localhost:4200 - Backend:
http://localhost:3000 - API:
http://localhost:3000/api - Health:
http://localhost:3000/health/liveund/health/ready - Swagger, falls
SWAGGER_ENABLED=true:http://localhost:3000/api/docs
Das Frontend proxyt /api ueber apps/frontend/proxy.conf.json an das Backend.
Dadurch kann lokal mit Cookie-basierter Authentifizierung gearbeitet werden.
Erster Login
- Oeffne
http://localhost:4200. - Melde dich ueber den OIDC Provider an.
- Der erste lokal angelegte Benutzer erhaelt automatisch die Rollen
userundadmin. - Weitere Benutzer erhalten initial die Rolle
user.
Systemrollen und Permissions werden beim Login synchronisiert. Permissions sind im Code definiert und werden nicht frei in der UI angelegt.
Haefige Probleme
Ungueltige Konfiguration:.envverletzt das Schema inapps/backend/src/config/env.ts.MIGRATION_MISSING:npm run migration:runausfuehren.UNAUTHORIZED: Session abgelaufen, Benutzer deaktiviert oder OIDC-Konfiguration falsch.CSRF_INVALID: Schreibender Request ohneX-CSRF-Token; im Angular-Client erledigt das der Interceptor.- OIDC Callback schlaegt fehl: Redirect URI, Issuer, Client Secret und erlaubte Algorithmen pruefen.