TheOnlyMace 1eec10ba80 Implement ticket panel synchronization and configuration updates
- Added `panelChannelId` and `panelMessageId` fields to the `TicketConfig` model for managing ticket panel settings.
- Introduced `syncTicketPanel` function to handle posting and updating the ticket panel in Discord channels via BullMQ.
- Enhanced error handling for ticket panel synchronization, including specific error messages for missing categories and posting failures.
- Updated WebUI components to support panel channel selection and improved error messaging for synchronization issues.
- Added localization entries for new error messages related to ticket panel synchronization in both English and German.
- Refactored ticket category management to trigger panel synchronization upon category creation, update, or deletion.
2026-07-25 16:06:17 +02:00

Nexumi

Nexumi is a public Discord bot with dashboard architecture, built as a TypeScript monorepo.

Phase 1 scope

  • Monorepo foundation with apps/bot and packages/shared
  • PostgreSQL + Redis compose stack
  • Prisma core schema (Guild, GuildSettings, User, Case) plus moderation tables (Warning, ModNote)
  • Command and module framework for slash command routing
  • Permission layer and i18n starter (de + en)
  • BullMQ integration for persistent moderation jobs (temp-ban expiration)
  • Complete moderation reference command set for Phase 1

Quickstart

  1. Copy .env.example to .env and fill required values.
  2. Install dependencies:
    • pnpm install
  3. Generate Prisma client:
    • pnpm prisma:generate
  4. Apply database migrations:
    • pnpm prisma:migrate
  5. Start stack:
    • docker compose up -d
  6. Start bot locally:
    • pnpm --filter @nexumi/bot dev

Verification commands

  • pnpm typecheck
  • pnpm lint
  • pnpm test

Database

See docs/DATABASE.md for migrations, backup and restore runbooks.

Backup and restore note

Phase 1 includes the BullMQ foundation for scheduled jobs. Database backup rotation is configured via BACKUP_RETENTION_DAYS and the backups volume is already reserved in compose.

Restore flow (manual, PostgreSQL container):

  1. Stop bot/web services.
  2. Copy dump into postgres container.
  3. Run psql restore against nexumi database:
    • docker compose exec -T postgres psql -U nexumi -d nexumi < /path/to/backup.sql
  4. Start services again.
Description
A Discord Bot
Readme 5.5 MiB
Languages
TypeScript 96.4%
PHP 2.8%
CSS 0.5%
Dockerfile 0.2%