Enhance environment variable handling and Dockerfile configuration

- Introduced a utility function to preprocess environment variables, converting empty strings, undefined, or null values to undefined for better validation in EnvSchema.
- Updated Dockerfile to set PORT and HOSTNAME environment variables for improved container configuration.
- Revised PHASE-TRACKING.md to include automated deployment verification steps, ensuring a smoother deployment process.
This commit is contained in:
smueller
2026-07-22 14:22:57 +02:00
parent 59b3ccb0ca
commit b7ad501704
3 changed files with 20 additions and 10 deletions

View File

@@ -220,12 +220,17 @@ Dieses Dokument hält den aktuellen Implementierungsstand fest. Es wird bei jede
### Manuelle Tests (noch offen)
- Discord Developer Portal: OAuth2-Redirect `http://localhost:3000/api/auth/callback` (bzw. `https://nexumi.de/api/auth/callback` in Produktion) unter „OAuth2 → Redirects" eintragen; Scopes `identify guilds` sind Standard-OAuth2-Scopes, keine Extra-Freigabe nötig
- Login-Flow Ende-zu-Ende gegen echten Discord-Account testen (`/login` → Discord-Consent`/dashboard`)
- Dashboard-Zugriff mit einem Account ohne „Server verwalten"-Recht prüfen (muss auf `/dashboard` zurückspringen)
- Modul-Toggles je Modul speichern und in der Bot-DB/Redis verifizieren (insbesondere Fun `enabled` und den neuen Redis-Hash `dashboard:modules:{guildId}`)
- Access-Rules anlegen/löschen und Dashboard-Audit-Log-Einträge in der DB prüfen
- `docker compose up -d --build webui` gegen laufenden Postgres/Redis-Stack verifizieren
- Discord Developer Portal: OAuth2-Redirect `http://localhost:3000/api/auth/callback` (bzw. `https://nexumi.de/api/auth/callback` in Produktion) unter „OAuth2 → Redirects" eintragen
- Login-Flow Ende-zu-Ende (`http://localhost:3000/login` → Discord → `/dashboard`)
- Zugriff ohne „Server verwalten" prüfen
- Modul-Toggles + Access-Rules speichern; Audit-Log prüfen
### Deploy-Verifikation (automatisiert)
- `docker compose up -d --build bot webui` OK
- Migration `20260722180000_phase6_webui` angewendet (`DashboardAccessRule`, `DashboardAuditLog`, `GuildSettings.timezone`)
- Bot healthy + ready; WebUI healthy (`/api/health``{"ok":true}`), Login-Seite erreichbar
- Checks: shared tests 23, webui typecheck/lint/test grün
## Nächster geplanter Schritt