A simple powerful Discord music (multi-)bot built to fulfill your production desires. Easy to use, with no coding required.
- Production-ready, no coding required
- Request channel feature for seamless music experience
- Support for YouTube, Spotify, SoundCloud, and direct files
- Run multiple bot instances for different voice channels
- Smart audio pre-caching for smoother playback
- Built-in Google login via Puppeteer for cookie management
- Node.js version
20.0.0or higher - Deno runtime (required by yt-dlp for signature solving)
- FFmpeg for audio processing
Note: Docker users don't need to install Deno or FFmpeg manually — they're included in the Docker image.
- Download and install the prerequisites above
- Clone or download this repository
- Copy
.env.exampleto.envand 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
- Create a
.envfile with your configuration (copy from.env.example) - (Optional) Create
dev.envfor additional settings - 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-botdocker 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:latestThe /app/cache volume stores:
yt-dlpbinary for audio streamingdata.*for persistent settings (request channels, player states)- Cached audio files (if audio caching is enabled)
- Cookie file and profile data from Google login (see Cookies Setup)
The DEVTOOLS_PORT (default: 3000) is used for Chrome DevTools remote debugging proxy. This is required for !login start to work from a remote machine. Set DEVTOOLS_PORT in your dev.env file to use a different port.
.env.example- Essential settings (Discord/Spotify token, prefix, IDs, etc.)dev.env.example- Optional and/or developer customization/settings (colors, interactions, debug mode, etc.)
Use the ones you need/should and fill in the values.
Multi-bot mode is adaptive - no extra configuration needed!
- Single token = Single bot mode
- Multiple tokens (comma-separated) = Multi-bot mode automatically enabled
Example for multi-bot:
DISCORD_TOKEN="token1, token2, token3"Features:
- The first (order) token becomes the primary bot for general commands
- Each bot handles music commands for users in its voice channel
- Adaptive ordering - if the primary bot is not in a server, the next available bot takes over
- Each bot requires its own Discord application
- Disclaimers - Important legal information
- Cookies Setup - Fix "Sign in to confirm you're not a bot" errors on hosting providers
"Sign in to confirm you're not a bot" errors?
If you're hosting on cloud providers (AWS, GCP, Azure, Railway, etc.), you may encounter bot detection errors. See Cookies Setup for the solution.
Quick fix using the login command:
!login start # Opens a browser for Google login
!login status # Check current login & cookie status
!login logout # Clear the login session (wipes all cookies and profile data)
For help and questions, join our official Discord Server.
- Stegripe Developers (en-US, id-ID, ko-KR, ms-MY)
- @21Z (en-US)
- @lxndr-rl (es-ES)
- @MoustacheOff (fr-FR)
- @RabbitYuKu (zh-CN, zh-TW)
- @RomaDevWorld (uk-UA)
- @hmz121 (vi-VN)
- @melloirl (pt-BR)
- @Ronner231 (ru-RU)
- @Fyphen1223 (ja-JP)
- @OsmanTunahan (tr-TR)
© 2026 Stegripe Development
