✨ Features
🚀 Production-ready, no coding required
📺 Request channel feature for seamless music experience
🤖 Run multiple bot instances for different voice channels
⚡ Smart audio pre-caching for smoother playback
🎶 Support for multiple music platforms (video sites, Spotify, SoundCloud)
🔄 Multi-cookie rotation for uninterrupted playback
📋 Requirements
Node.js version 22.12.0 or higher
Discord Bot Token (get from Discord Developer Portal)
Optional: Spotify API credentials for Spotify support
💻 Standard Setup (Node.js)
Download and install Node.js version 22.12.0 or higher
Clone or download this repository
Copy .env.example to .env and fill in the required values (at minimum: DISCORD_TOKEN)
Install dependencies: pnpm install
Build the project: pnpm run build
Start the bot: pnpm start
(Optional) After the bot is online, set up a dedicated music channel:
<prefix>requestchannel <#channel>
# Example: !requestchannel #music-requests🐳 Docker Setup (Recommended)
Using Docker Compose
Create a .env file with your configuration (copy from .env.example)
Create a docker-compose.yaml file (see example below)
Start the bot: docker compose up -d
View logs: docker logs -f rawon-bot
1
2
3
4
5
6
7
8
9
10
11
services:
rawon:
image: ghcr.io/stegripe/rawon:latest
container_name: rawon-bot
restart: unless-stopped
env_file: .env
volumes:
- rawon:/app/cache
volumes:
rawon:Using Docker Run
docker run -d \
--name rawon-bot \
--env-file .env \
-v rawon:/app/cache \
--restart unless-stopped \
ghcr.io/stegripe/rawon:latest📁 Volume Information
The /app/cache volume stores:
yt-dlp binary for audio streaming
data.* for persistent settings (request channels, player states)
Cached audio files (if audio caching is enabled)
Cookie files for video platform authentication
🍪 Quick Start: Cookies Setup
If you're hosting on cloud providers (AWS, GCP, Azure, Railway, etc.), you may get "Sign in to confirm you're not a bot" errors. Fix it easily with the cookies command:
Export cookies from your browser (see Cookies Setup guide)
In Discord, type: !cookies add 1
Attach your cookies.txt file to the message
Done! The cookie takes effect immediately
💡 You can add multiple cookies for redundancy. When one fails, Rawon automatically switches to the next one!