1.6 KiB
1.6 KiB
discord-music-bot
Discord music bot template written in NodeJS using discord.js and erela.js, with Lavalink support.
Features
- Slash commands:
/ping,/join,/play,/leave - Lavalink integration for audio playback
- Modular command handler structure
Prerequisites
- Node.js (>=14)
- pnpm or npm
- A Discord application with bot token
- LavaLink server for audio streaming
Setup
- Copy
.env.exampleto.envand fill in your credentials:DISCORD_TOKEN=your_discord_bot_token CLIENT_ID=your_discord_application_id LAVALINK_HOST=127.0.0.1 LAVALINK_PORT=2333 LAVALINK_PASSWORD=your_lavalink_password - Install dependencies:
pnpm install - Run tests:
pnpm test - Register slash commands:
pnpm start # or node deploy-commands.js - Start the bot:
pnpm start
Docker
A Dockerfile and docker-compose.yml are provided for containerized deployment.
- Build and run with Docker Compose:
docker-compose up --build - Environment variables are loaded from
.env. - Lavalink service is configured in
docker-compose.ymlalongside the bot.
Project Structure
src/index.js— Entry pointsrc/commands/— Slash command modulessrc/events/— Discord event handlerssrc/structures/— Erela.js (Lavalink) event wiringsrc/utils/logger.js— Logging setupdeploy-commands.js— Slash command registration scriptDockerfile— Bot container imagedocker-compose.yml— Multi-service setup (bot + Lavalink)
License
MIT