Enhance bot and WebUI functionality with new features and environment updates
- Added support for new environment variables in `.env.example` for public site and legal operator information. - Integrated core commands into the bot's command structure for improved functionality. - Implemented a new `publishBotStatus` function to update bot status in Redis, enhancing monitoring capabilities. - Updated the landing page to include features, invite links, and support server access, improving user experience. - Enhanced localization with new keys for core commands and landing page elements in both English and German. - Improved error handling and logging for bot presence updates and status publishing.
This commit is contained in:
@@ -3,23 +3,42 @@
|
||||
- OAuth/Sessions, Settings-Framework, Layout, Modul-Toggles, Access-Rules
|
||||
- Login manuell bestätigt (`WEBUI_URL=http://10.111.0.65:3000`)
|
||||
|
||||
## Phase 7 – WebUI Modul-Seiten + Owner-Panel (Status: implementiert, manuelle Tests ausstehend)
|
||||
## Phase 7 – WebUI Modul-Seiten + Owner-Panel (Status: abgeschlossen, manuell bestätigt)
|
||||
|
||||
### Abgeschlossen
|
||||
|
||||
- **Batch A:** Moderation, Automod, Logging, Welcome, Verification, Leveling, Economy, Fun + Prisma Owner-Modelle (`20260722190000_phase7_owner`)
|
||||
- **Batch B:** Tickets, Giveaways, SelfRoles, Tags, Starboard, Suggestions, Birthdays, TempVoice, Stats, Feeds, Scheduler, Backup, Commands-Seite, Overview-Aktivität; BullMQ-Anbindung WebUI↔Bot
|
||||
- **Batch C (Owner-Panel):** `/owner` Übersicht, Guilds (Leave/Blacklist), User-Blacklist, Feature-Flags, Presence (+ Bot-Job `presence` + Wartungsmodus in `routeCommand`), Team, Jobs/Migrationen, Changelog, Owner-Audit; Auth über `OWNER_USER_IDS` + `OwnerTeamMember`
|
||||
- Shared: `dashboard.ts`, `owner.ts` + Tests
|
||||
- Checks: shared 46 Tests, webui typecheck/lint, bot typecheck grün
|
||||
- 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: implementiert, manuelle Tests offen)
|
||||
|
||||
### Abgeschlossen (Code)
|
||||
|
||||
- Landing `/` (Features, Invite, Support, Live-Stats, Login/Dashboard)
|
||||
- Status `/status` (Shards/Latenz/Uptime aus Redis `bot:status`, Changelog/Incidents)
|
||||
- Rechtsseiten-Gerüst `/impressum`, `/privacy`, `/terms` (DE+EN i18n; Impressum aus Env)
|
||||
- Public APIs `GET /api/public/stats`, `GET /api/public/status`
|
||||
- Bot schreibt `bot:status` (Presence-Job + Ready); Core-Commands `/help`, `/info`, `/invite`, `/support`
|
||||
- `docs/verification.md` (Privileged Intents)
|
||||
- Env: `SUPPORT_SERVER_URL`, `LEGAL_OPERATOR_*` (WebUI), `WEBUI_URL`/`SUPPORT_SERVER_URL` (Bot)
|
||||
|
||||
### Manuell testen
|
||||
|
||||
1. `OWNER_USER_IDS=<deine Discord-User-ID>` in `.env` setzen, Stack neu starten
|
||||
2. Dashboard-Modul-Seiten speichern (Settings/Module/Cases etc.)
|
||||
3. Owner-Panel: `/owner` → Presence, Flags, Team, Jobs
|
||||
4. Giveaway/Suggestion/Backup-Aktionen aus dem Dashboard (BullMQ)
|
||||
- [ ] Landing unter `WEBUI_URL` (nicht localhost): Stats, Invite, Login
|
||||
- [ ] `/status` zeigt Shards nach Bot-Start (sonst „degraded“ bis Redis-Status da ist)
|
||||
- [ ] Impressum: mit/ohne `LEGAL_OPERATOR_*` in `.env`
|
||||
- [ ] Privacy/Terms in DE und EN (Locale-Cookie)
|
||||
- [ ] Discord: `/help`, `/info`, `/invite`, `/support`
|
||||
- [ ] Support-Link nur sichtbar, wenn `SUPPORT_SERVER_URL` gesetzt
|
||||
|
||||
### Bewusst offen (SPEC, nicht Phase 8)
|
||||
|
||||
- Musik- und KI-Modul (nur auf Zuruf)
|
||||
- Premium-Zahlungsanbindung (manuelle Zuweisung bleibt Owner-Panel)
|
||||
|
||||
## Nächster geplanter Schritt
|
||||
|
||||
- Nach Freigabe Phase 8 (Landing Page, Status-Seite, Rechtsseiten-Gerüst).
|
||||
- Nach manueller Freigabe Phase 8: auf Zuruf Musik/KI oder andere SPEC-Restpunkte.
|
||||
|
||||
41
docs/verification.md
Normal file
41
docs/verification.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Discord Bot Verification – Privileged Intents
|
||||
|
||||
This document lists why Nexumi requires privileged Gateway intents for Discord's verification application.
|
||||
Update it when modules gain or lose intent dependencies.
|
||||
|
||||
## Server Members Intent (`GuildMembers`)
|
||||
|
||||
Required so the bot can receive and act on member join/leave/update events and resolve member lists beyond the cache.
|
||||
|
||||
| Module | Why |
|
||||
|--------|-----|
|
||||
| Welcome & Abschied | Join/leave messages, autoroles, member-count placeholders |
|
||||
| Verification | Assign verified/unverified roles on join and after button/captcha success |
|
||||
| Logging | Member join/leave, nickname and role changes |
|
||||
| Auto-Moderation (Anti-Raid) | Join-rate detection and lockdown reactions |
|
||||
| Leveling | Voice XP and member-bound XP state |
|
||||
| Temp-Voice | Owner transfer / claim when members move |
|
||||
| Stats / Invite-Tracking | Member counts and invite attribution on join |
|
||||
| Birthdays | Resolve birthday role recipients |
|
||||
| Tickets / Self-Roles | Permission overwrites and role grants for members |
|
||||
|
||||
Without this intent, welcome, verification, raid protection, and accurate member logging cannot function.
|
||||
|
||||
## Message Content Intent (`MessageContent`)
|
||||
|
||||
Required to read message text for filters, XP, custom triggers, and moderation tools.
|
||||
|
||||
| Module | Why |
|
||||
|--------|-----|
|
||||
| Auto-Moderation | Spam, mentions, caps, invites, links, word/regex filters, duplicates, emoji spam, zalgo, phishing lists |
|
||||
| Leveling | Text XP from message content (with cooldowns) |
|
||||
| Tags | Trigger-word custom commands |
|
||||
| Logging | Edited/deleted message content in log embeds |
|
||||
| Utility (`/snipe`, `/editsnipe`) | Restore last deleted/edited message content when enabled |
|
||||
| Moderation (`/purge` filters) | Filter by links/regex against message body |
|
||||
|
||||
Slash command **options** do not need this intent; only messages sent by users in guild channels do.
|
||||
|
||||
## Intents that are not privileged (for reference)
|
||||
|
||||
Nexumi also uses non-privileged intents such as `Guilds`, `GuildMessages`, `GuildMessageReactions`, `GuildModeration`, `GuildVoiceStates`, `GuildEmojisAndStickers`, and `GuildInvites`. Those do not require special verification approval but are listed here for completeness of the gateway configuration in `apps/bot/src/index.ts`.
|
||||
Reference in New Issue
Block a user