A hassle-free, highly performant, host-it-yourself Discord music bot
Deployment
Usage
Just create a bot account, and copy its token and application id to a .env
with the DISCORD_TOKEN
and DISCORD_APP_ID
environment variables respectively. Optionally, you may also define SPOTIFY_CLIENT_ID
and SPOTIFY_CLIENT_SECRET
. We recommend using our .env.example as a starting point.
Docker
docker run -d --env-file .env --restart unless-stopped --name parrot ghcr.io/aquelemiguel/parrot:latest
Development
Make sure you've installed Rust. You can install Rust and its package manager, cargo
by following the instructions on https://rustup.rs/.
After installing the requirements below, simply run cargo run
.
Linux/MacOS
The commands below install a C compiler, GNU autotools and FFmpeg, as well as yt-dlp through Python's package manager, pip.
Linux
apt install build-essential autoconf automake libtool ffmpeg
pip install -U yt-dlp
MacOS
brew install autoconf automake libtool ffmpeg
pip install -U yt-dlp
Windows
If you are using the MSVC toolchain, a prebuilt DLL for Opus is already provided for you.
You will only need to download FFmpeg, and install yt-dlp which can be done through Python's package manager, pip.
pip install -U yt-dlp
If you are using Windows Subsystem for Linux (WSL), you should follow the Linux/MacOS guide, and, in addition to the other required packages, install pkg-config, which you may do by running:
apt install pkg-config
Testing
Tests are available inside the src/tests
folder. They can be run via cargo test
. It's recommended that you run the tests before submitting your Pull Request.
Increasing the test coverage is also welcome.
Docker
Within the project folder, simply run the following:
docker build -t parrot .
docker run -d --env-file .env parrot