70 lines
1.6 KiB
Markdown
70 lines
1.6 KiB
Markdown
# 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
|
|
|
|
1. Copy `.env.example` to `.env` and fill in your credentials:
|
|
```env
|
|
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
|
|
```
|
|
2. Install dependencies:
|
|
```sh
|
|
pnpm install
|
|
```
|
|
3. Run tests:
|
|
```sh
|
|
pnpm test
|
|
```
|
|
4. Register slash commands:
|
|
```sh
|
|
pnpm start # or node deploy-commands.js
|
|
```
|
|
5. Start the bot:
|
|
```sh
|
|
pnpm start
|
|
```
|
|
|
|
## Docker
|
|
|
|
A `Dockerfile` and `docker-compose.yml` are provided for containerized deployment.
|
|
|
|
- Build and run with Docker Compose:
|
|
```sh
|
|
docker-compose up --build
|
|
```
|
|
- Environment variables are loaded from `.env`.
|
|
- Lavalink service is configured in `docker-compose.yml` alongside the bot.
|
|
|
|
## Project Structure
|
|
|
|
- `src/index.js` — Entry point
|
|
- `src/commands/` — Slash command modules
|
|
- `src/events/` — Discord event handlers
|
|
- `src/structures/` — Erela.js (Lavalink) event wiring
|
|
- `src/utils/logger.js` — Logging setup
|
|
- `deploy-commands.js` — Slash command registration script
|
|
- `Dockerfile` — Bot container image
|
|
- `docker-compose.yml` — Multi-service setup (bot + Lavalink)
|
|
|
|
## License
|
|
|
|
MIT
|