- Changed NODE_ENV from development to production in .env.example for production readiness. - Updated WEBUI_URL to point to the new public URL behind Traefik. - Added internal and external networks in docker-compose.yml for improved service isolation and routing. - Removed direct port exposure for the WebUI, ensuring it is only accessible through Traefik. - Refactored landing and login pages in the WebUI to streamline navigation and error handling, redirecting users appropriately based on session status.
71 lines
3.0 KiB
Markdown
71 lines
3.0 KiB
Markdown
## Phase 6 – WebUI-Fundament (Status: abgeschlossen, manuell bestätigt)
|
||
|
||
- OAuth/Sessions, Settings-Framework, Layout, Modul-Toggles, Access-Rules
|
||
- Login manuell bestätigt
|
||
|
||
## Phase 7 – WebUI Modul-Seiten + Owner-Panel (Status: abgeschlossen, manuell bestätigt)
|
||
|
||
### Abgeschlossen
|
||
|
||
- Alle Modul-Dashboard-Seiten, Commands-Seite, Overview-Aktivität
|
||
- Owner-Panel (`/owner`: Übersicht, Guilds, Users, Flags, Presence, Team, Jobs, Changelog, Audit)
|
||
- Prisma `20260722190000_phase7_owner`, Shared Zod (`dashboard.ts`, `owner.ts`)
|
||
- BullMQ WebUI↔Bot, Presence-/Wartungsmodus-Anbindung
|
||
- Manuell bestätigt (User-Freigabe)
|
||
|
||
## Phase 8 – Landing, Status, Rechtsseiten (Status: abgeschlossen, manuell bestätigt)
|
||
|
||
### Abgeschlossen
|
||
|
||
- Landing `/`, Status `/status`, Rechtsseiten, Public APIs, Core-Commands, `docs/verification.md`
|
||
- Manuell bestätigt (User-Freigabe)
|
||
|
||
## Deploy-Branch (`deploy`) – Traefik + Dashboard-Domain
|
||
|
||
### Abgeschlossen (Code auf Branch `deploy`; `main` unverändert)
|
||
|
||
- Traefik-Vollstack: Compose-Netz `traefik-network` (external) + `internal`
|
||
- WebUI hinter Traefik: Host `dashboard.nexumi.de`, Entrypoint `websecure`, `certresolver=letsencrypt`
|
||
- Host-Port `3000` entfernt; nur Traefik exponiert die WebUI
|
||
- `WEBUI_URL=https://dashboard.nexumi.de` (OAuth-Callback: `/api/auth/callback`)
|
||
- Marketing-Landing archiviert unter `apps/webui/src/archived/landing-page.tsx`
|
||
- `/` zeigt Login; `/login` leitet auf `/` weiter (Query erhalten)
|
||
- **SPEC-Abweichung (bewusst):** öffentliche Landing später extern auf `nexumi.de`; Dashboard unter Subdomain
|
||
|
||
### Manuell testen (Deploy)
|
||
|
||
- [ ] DNS `dashboard.nexumi.de` → Traefik-Host
|
||
- [ ] Discord OAuth Redirect: `https://dashboard.nexumi.de/api/auth/callback`
|
||
- [ ] `docker compose up -d --build` (Netz `traefik-network` muss existieren)
|
||
- [ ] TLS-Zertifikat (Resolver-Name ggf. an Traefik anpassen)
|
||
- [ ] Login `/` → Dashboard; Session-Cookie `Secure`
|
||
|
||
## Post-Phase – Premium + DSGVO (Status: implementiert, manuelle Tests offen)
|
||
|
||
### Abgeschlossen (Code)
|
||
|
||
- Premium: `PremiumTierConfig`, Guild-/User-Zuweisung, Owner-UI `/owner/premium`
|
||
- Limits enforced (Tags/Feeds/Backups) in Bot + WebUI
|
||
- DSGVO: `/privacy`, `/gdpr delete confirm:true` (Löschung/Anonymisierung + `GdprDeletionLog`)
|
||
- Log-Retention: `LoggingConfig.retentionDays` + täglicher Job `retention`/`purgeExpiredLogs`
|
||
- Snipe standardmäßig aus (`GuildSettings.snipeEnabled`, Toggle in Allgemeine Einstellungen)
|
||
- Migration `20260722200000_premium_gdpr`
|
||
|
||
### Manuell testen
|
||
|
||
- [ ] Owner `/owner/premium`: Limits speichern, Guild PREMIUM zuweisen
|
||
- [ ] Free-Limit: mehr Tags/Feeds/Backups als Free-Cap → Fehler
|
||
- [ ] `/privacy` und `/gdpr delete confirm:true`
|
||
- [ ] Logging-Retention im Dashboard setzen
|
||
- [ ] Snipe: default aus; nach Aktivierung in Einstellungen nutzbar
|
||
|
||
### Bewusst offen
|
||
|
||
- Musik- und KI-Modul (nur auf Zuruf)
|
||
- Premium-Zahlungsanbindung
|
||
- Externe Marketing-Landing auf `nexumi.de`
|
||
|
||
## Nächster geplanter Schritt
|
||
|
||
- Deploy auf Traefik-Server manuell verifizieren; danach ggf. `deploy` → `main` mergen (nur auf Freigabe).
|