Discord music bot powered by Lavalink and focusing on performance, features, usability and practicality.
You can help Hydrogen's development by donating.
To develop Hydrogen, you need to have Docker and Visual Studio Code installed or any IDE that supports Dev Containers. But before you enter the Dev Container, please first read the development guide to understand how to configure the development environment.
If you are using JetBrains IDEs, unfortunately, Dev Containers support is very limited, so it is recommended to develop on the host machine instead using Rust 1.85.0.
Hydrogen is available on
our GitHub Container Registry, you can use it
by running
docker run -e DISCORD_TOKEN=your_token -e LAVALINK=your_lavalink_host ghcr.io/nashiradeer/hydrogen-bot:0.0.1-alpha.14-alpine
in a terminal with Docker installed and running, replacing your_token with your Discord bot
token and your_lavalink_host with your Lavalink host. You can also use the Debian variant by replacing
ghcr.io/nashiradeer/hydrogen-bot:0.0.1-alpha.14-alpine with ghcr.io/nashiradeer/hydrogen-bot:0.0.1-alpha.14-debian.
To build Hydrogen, you need to have Docker (Podman not supported) installed and running on your
machine and run docker build -f Dockerfile.alpine -t hydrogen:latest . in a terminal with Docker
installed and running, after the build is completed, you will have a Docker image ready for use, named "hydrogen:
latest".
For the Debian variant, you can use docker build -f Dockerfile.debian -t hydrogen:latest . instead.
Hydrogen by default uses SIMD instructions to parse JSON, to disable it, you need to build the Hydrogen without the
default features or by removing the simd-json feature from the default features in the Cargo.toml file.
You can configure Hydrogen using environment variables, here is a list of the available variables:
- DISCORD_TOKEN: Sets the token that will be used to access Discord. (required)
- LAVALINK: Sets the Lavalink hosts. (required, e.g.
localhost:2333@youshallnotpassorlocalhost:2333@youshallnotpass;lavalink:443@securepassword/tls) - DISABLE_MULTI_THREADING: Disables multi-threading. (optional, default: false)
Created by Nashira Deer and licensed under General Public License v3.0.