- Lavalink: latest Lavalink features
- NoSQL database: MongoDB object data modeling using Mongoose
- Process management: advanced production process management using PM2
- Environment variables: using dotenv and cross-env
- Container: docker support
- Git hooks: with husky and lint-staged
- Linting: with ESLint and Prettier
- Editor config: consistent editor configuration using EditorConfig
- Dependency management: with Yarn
- Music: Full featured music bot (!play, !pause, !resume, !skip, !leave)
- Ranking: Experience points are earned based on chat and this determines the ranking (!highscore, !rank)
- Moderation: Moderation features (!purge)
- Information: For now it has only one feature (!avatar)
- Docker
Start:
# run docker container in development mode
yarn docker:dev
# run docker container in production mode
yarn docker:prod
Backup & Restore:
# run mongodump and create backup discord-bot collections
docker exec -i <container-name> /usr/bin/mongodump --uri=mongodb://mongodb:27017/discord-bot --out /dump
# Copy to backup output folder to host root directory
docker cp <container-name>:/dump /root/dump
# Copy to backup folder to new mongodb container
docker cp /root/dump <container-name>:/dump
# Restore backup
docker exec -i <container-name> /usr/bin/mongorestore --uri=mongodb://mongodb:27017/discord-bot /dump/discord-bot
Linting:
# run ESLint
yarn lint
# fix ESLint errors
yarn lint:fix
# run prettier
yarn prettier
# fix prettier errors
yarn prettier:fix