smueller fa5910ec43 Implement leveling and economy features with associated models and commands
- Added new models for leveling and economy functionalities in the Prisma schema, including LevelingConfig, MemberLevel, LevelReward, EconomyConfig, MemberEconomy, ShopItem, and InventoryItem.
- Introduced commands for managing XP, economy transactions, and shop interactions, enhancing user engagement.
- Updated job handling to include reminders and poll closing functionalities.
- Enhanced localization support for new commands and features in both German and English.
- Improved the bot's job processing capabilities with a dedicated reminder worker for scheduled tasks.
2026-07-22 12:49:17 +02:00

Nexumi

Nexumi is a self-hosted 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%