Music-Disc
Music-Disc copied to clipboard
A Discord music bot, supports YouTube, Spotify, SoundCloud, Deezer streams and web dashboard.
![music_disc](https://github.com/hmes98318/Music-Disc/raw/main/public/imgs/logo/logo2.png)
Music Disc
A discord music bot, supports YouTube, Spotify, SoundCloud, Deezer streams and web dashboard.
Developed based on discord.js v14, LavaShark, Lavalink.
Features
- Stable
- Use Lavalink
- Web dashboard
- Local node
- Docker images
If you need the version of discord-player, please refer to this branch.
If you encounter any issues or would like to contribute to the community, please join our Discord server.
Deploying with node.js
Clone the latest version of the repository
git clone -b v2.2.0 https://github.com/hmes98318/Music-Disc.git
or click here to download
Install the dependencies
install all the dependencies from package.json
npm install
Add Lavalink node
Edit the nodelist.json
file to add a Lavalink node.
Only supports Lavalink v3.7.x nodes, v3.7.12 is recommended.
- Use public node
- or host your own
- or enable local node setup
Please refer to this documentation for detailed information.
[
{
"id": "Node 1",
"hostname": "localhost",
"port": 2333,
"password": "youshallnotpass"
}
]
Configure environment
Refer to .env.example and edit the .env fileEdit the file.
# Discord Bot Token
BOT_TOKEN = "your_token"
# Admin of the bot (User ID)
# OAUTH2 mode requires setting BOT_ADMIN, BOT_CLIENT_SECRET value
BOT_ADMIN = ""
BOT_CLIENT_SECRET = ""
# Bot settings
BOT_NAME = "Music Disc"
BOT_PREFIX = "+"
BOT_STATUS = "online"
BOT_PLAYING = "+help | music"
BOT_EMBEDS_COLOR = "#FFFFFF"
BOT_SLASH_COMMAND = true
# Volume settings
DEFAULT_VOLUME = 50
MAX_VOLUME = 100
# Auto leave channel settings
AUTO_LEAVE = true
AUTO_LEAVE_COOLDOWN = 5000
# Show voice channel updates
DISPLAY_VOICE_STATE = true
# Web dashboard settings
ENABLE_SITE = true
SITE_PORT = 33333
SITE_LOGIN_TYPE = "USER" # "USER" | "OAUTH2"
# USER mode settings
SITE_USERNAME = "admin"
SITE_PASSWORD = "000"
# OAUTH2 mode settings
SITE_OAUTH2_LINK = "" # Your OAuth2 authentication link
SITE_OAUTH2_REDIRECT_URI = "http://localhost:33333/login" # Redirect link after OAuth2 authentication is complete
# Local Lavalink node
ENABLE_LOCAL_NODE = false
LOCAL_NODE_AUTO_RESTART = true
# LOCAL_NODE_DOWNLOAD_LINK = ""
Running the script
npm run start
Deploying with Docker
image link : https://hub.docker.com/r/hmes98318/music-disc
If you don't have any available nodes, you need to first start the server container using Docker Compose in the server directory.
Start with Docker Compose
Please put your token into the BOT_TOKEN
variable.
version: '3.8'
services:
music-disc:
image: hmes98318/music-disc:latest
container_name: music-disc
restart: always
environment:
TZ: "Asia/Taipei"
BOT_TOKEN: "your_token"
# OAUTH2 mode requires setting BOT_ADMIN, BOT_CLIENT_SECRET value
BOT_ADMIN: ""
BOT_CLIENT_SECRET: ""
BOT_NAME: "Music Disc"
BOT_PREFIX: "+"
BOT_PLAYING: "+help | music"
BOT_EMBEDS_COLOR: "#FFFFFF"
BOT_SLASH_COMMAND: true
DEFAULT_VOLUME: 50
MAX_VOLUME: 100
AUTO_LEAVE: "true"
AUTO_LEAVE_COOLDOWN: 5000
DISPLAY_VOICE_STATE: "true"
# Web dashboard settings
ENABLE_SITE: true
SITE_PORT: 33333
SITE_LOGIN_TYPE: "USER" # "OAUTH2" | "USER"
# USER mode settings
SITE_USERNAME: "admin"
SITE_PASSWORD: "password"
# OAUTH2 mode settings
SITE_OAUTH2_LINK: "" # Your OAuth2 authentication link
SITE_OAUTH2_REDIRECT_URI: "http://localhost:33333/login" # Redirect link after OAuth2 authentication is complete
# Local Lavalink node
ENABLE_LOCAL_NODE: false
LOCAL_NODE_AUTO_RESTART: true
volumes:
- ./server:/bot/server # localnode configuration file
- ./nodelist.json:/bot/nodelist.json
- ./blacklist.json:/bot/blacklist.json
ports:
- 33333:33333
Start the container
docker compose up -d
Start with Docker
Use the following command to start the container:
Please put your token into the BOT_TOKEN
variable.
docker run -d \
--name music-disc \
--restart always \
-e TZ="Asia/Taipei" \
-e BOT_TOKEN="your_token" \
-e BOT_ADMIN="" \
-e BOT_CLIENT_SECRET="" \
-e BOT_NAME="Music Disc" \
-e BOT_PREFIX="+" \
-e BOT_PLAYING="+help | music" \
-e BOT_EMBEDS_COLOR="#FFFFFF" \
-e BOT_SLASH_COMMAND="#true" \
-e DEFAULT_VOLUME=50 \
-e MAX_VOLUME=100 \
-e AUTO_LEAVE="true" \
-e AUTO_LEAVE_COOLDOWN=5000 \
-e DISPLAY_VOICE_STATE="true" \
-e ENABLE_SITE=true \
-e SITE_PORT=33333 \
-e SITE_LOGIN_TYPE="USER" \
-e SITE_USERNAME="admin" \
-e SITE_PASSWORD="password" \
-e SITE_OAUTH2_LINK="" \
-e SITE_OAUTH2_REDIRECT_URI="http://localhost:33333/login" \
-e ENABLE_LOCAL_NODE=false \
-e LOCAL_NODE_AUTO_RESTART=true \
-v $(pwd)/server:/bot/server \
-v $(pwd)/nodelist.json:/bot/nodelist.json \
-v $(pwd)/blacklist.json:/bot/blacklist.json \
-p 33333:33333 \
hmes98318/music-disc:latest