Installation
Self-host Rawon with Node.js or Docker.
On this page
Prerequisites
Note
Docker users don’t need to install FFmpeg. The Docker image includes it.
Docker setup (recommended)
Using Docker Compose
- Create a
.envfile with your configuration (copy from.env.example). - Create
dev.envfromdev.env.example, or remove thedev.envline fromenv_file. - Create a
docker-compose.yamlfile:
services:
rawon:
image: ghcr.io/stegripe/rawon:latest
container_name: rawon-bot
restart: unless-stopped
env_file:
- .env
- dev.env
ports:
- "${DEVTOOLS_PORT:-3000}:${DEVTOOLS_PORT:-3000}"
volumes:
- rawon:/app/cache
volumes:
rawon:
- Start the bot:
docker compose up -d
- View logs:
docker logs -f rawon-bot
Using Docker Run
docker run -d \
--name rawon-bot \
--env-file .env \
-p "${DEVTOOLS_PORT:-3000}:${DEVTOOLS_PORT:-3000}" \
-v rawon:/app/cache \
--restart unless-stopped \
ghcr.io/stegripe/rawon:latest
Volume information
The /app/cache volume stores:
- the
yt-dlpbinary for audio streaming data.*for persistent settings (request channels, player states)- cached audio files (if audio caching is enabled)
- the cookie file and profile data from Google login (see Cookies setup)
Port information
DEVTOOLS_PORT (default 3000) is used for the Chrome DevTools remote debugging proxy. It is required for !login start to work from a remote machine. Set it in dev.env to use a different port.
Standard setup (Node.js)
- Download and install the prerequisites above.
- Clone or download the repository.
- Copy
.env.exampleto.envand fill in the required values.DISCORD_TOKENis required to start. - Install dependencies:
pnpm install
- Build the project:
pnpm run build
- Start the bot:
pnpm start
After the bot is online
Optionally set up a dedicated music channel:
!requestchannel set #music-requests
Tip
See Configuration for every environment variable, and Commands for everything the bot can do.