This repository provides a Docker + Portainer setup for running Kenium Music, an open-source Discord music bot. Mostly because I'm running Portainer but I made it easy to setup without it.
This portainer setup builds and runs two containers:
| Container | Purpose |
|---|---|
| kenium | The Discord music bot itself (Node.js app). |
| lavalink | A lightweight Java server that handles all audio playback. |
They're setup so that they both communicate internally so no external setup needed.
This repo includes a ready-to-use Portainer stack, so you can just place it in Portainer without much problems. If you need a guide, here:
- Go to Portainer → Stacks → Add Stack.
- Change the build method to Repository.
- Use
https://github.com/Wishdream/kenium-dockeras the Repository URL. - Use
portainer-compose.ymlas the Compose path. - Upload
stack.envin the Environment variables section and change the variables accordingly. - Click Deploy the stack.
Your stack will start both kenium and lavalink containers.
If you prefer to run without Portainer:
# Clone this repo
git clone https://github.com/wishdream/kenium-docker.git
cd kenium-docker
# Create .env file (copy from portainer/stack.env and rename if needed)
cp stack.env .env
# Run with docker-compose
docker-compose up -d| Variable | Description |
|---|---|
NODE_NAME |
Lavalink node name (this is not the hostname, just the name of the node). |
NODE_PORT |
Lavalink port (default 2333). |
NODE_PASSWORD |
Lavalink server password (must match in both services). |
token |
Your Discord bot token. |
id |
Discord bot client ID. |
PREFIX_ENABLED |
Whether prefix commands are enabled (true/false). |
ANTI_DOCKER |
Enables internal anti-docker process control. |
NODE_HOSTis generated automatically inside the container and do not need to be instack.env.
A GitHub Action (.github/workflows/docker-build.yml) runs every week.
It automatically:
- Clones the latest Kenium-Music source from ToddyTheNoobDud’s repo.
- Builds and pushes a fresh image to Docker Hub (
wishdream/kenium-music:latest).
So the stack always pulls the newest Kenium version automatically.
- The Lavalink service uses port 2333 internally.
- Both containers share the same Docker network (
kenium_net). - No manual rebuild is required unless you modify this Docker setup.
This repository only provides the Docker setup for Kenium-Music.
All credit for Kenium Music belongs to ToddyTheNoobDud.
Maintained by wishdream