Discord bot integration and real-time event worker for community rankings, telemetry, and automated announcements.
- Slash commands for browsing rounds, entries, leaderboards, and results.
- Automated background worker listening to SSE events for real-time announcements and alerts.
- Permission-gated moderator tooling and channel configuration.
- Copy environment file and configure credentials:
cp .env.example .env- Install dependencies:
npm install- Register slash commands:
npm run deploy:commands- Build and start:
npm run build
npm startDockerfile builds a production image that runs as the unprivileged node user.
.github/workflows/docker-publish.yml publishes it to ghcr.io/seraphinteractive/platform-discord
on every push to main (latest, main, sha-<short>) and on v*.*.* tags (X.Y.Z, X.Y);
pull requests only build.
docker build -t platform-discord .
# /app/data holds the channel settings chosen with /set-announcement-channel: keep it on a volume
docker run --rm --env-file .env -v bot_data:/app/data platform-discord
# register slash commands from inside the image (no tsx needed)
docker run --rm --env-file .env platform-discord node dist/bot/deploy-commands.jsThe production stack (API, Postgres, Redis, Dokploy) lives in Platform-Deployment.
MIT