Reindeer ๐ฆ
A Discord bot by BSR that helps server admins manage user reports more efficiently and organised.
To see a full list of features, documentation, and to invite the bot visit https://reindeer.bsr.gg/.
Features
- User and message report commands are both available as context menu commands and slash commands.
- Easy to setup with a guided setup command.
- Powerful configuration, customise up to 5 user-input fields when reporting.
- View reports in a neatly organised forum channel.
- Easily manage and sort reports.
- Customize and add more fields for reports.
- Track messages and users that have been reported, such as edits, deletions, joins, and leaves.
- Inform reporters about their reports status.
- Disallow more than one report on a message/user in a specified period.
Installing
Note
If you just want to use the publicly hosted version of the bot, you can invite it from the website.
To locally install the bot yourself (e.g. if you want to contribute or self-host), follow these steps:
Prerequisites
- Node.js 16.11.0 or later
- Yarn classic (1.22.19)
- A Discord application and bot
- A PostgreSQL database (to run one locally, see here)
Setup
Once you've cloned the repository from GitHub, install the required Node dependencies.
yarn
Copy the .env.example
file to a new .env
file and fill out the environment variables listed inside.
cp .env.example .env
Push the Prisma schema to your Postgres database.
yarn push
# If you don't have a database yet, you can still generate typings
yarn generate
Compile the bot with tsc. Leave this terminal tab open while developing the bot. In production, you can use yarn build
instead.
# Development (watch mode)
yarn build:dev
# Production
yarn build
Finally, you can run the bot using nodemon in development or pm2 in production.
# Development
yarn dev
# Production
pm2 start dist/index.js
# Or, just using node
yarn start
Contributing & Support
If you need support with the bot, feel free to join our Discord server.
If you'd like to contribute to the bot, please review our code of conduct first. If you have a bug report, feature request, please open an issue. If you're interested in fixing a bug or adding a new feature, please open a pull request.
If you'd like to report a security vulnerability or otherwise want to contact me, please email me at [email protected] or [email protected].
PR Guidelines
- Please follow the conventional commits specification where possible
(you may also use
docs
,chore
or other headers). - Please use
yarn test
to ensure TypeScript, ESLint, and Prettier checks pass. - Please do not include out-of-scope changes in a PR, instead open a separate PR for those changes.
- Please do not use translators to edit language files.
License
Reindeer is licensed under the Apache License 2.0.