- Revised README to include database migration steps and a new section for database management. - Enhanced moderation command responses to utilize localized messages for unknown commands. - Refactored moderation commands to use centralized command data definitions, improving maintainability and consistency. - Added localization support for command descriptions and options in both German and English. - Versioned Prisma migrations for better tracking of database changes.
50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
# 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.
|