stegripe
rawon
TypeScript

A simple powerful Discord music (multi-)bot built to fulfill your production desires. Easy to use, with no coding required.

Last updated Jul 8, 2026
1.5k
Stars
1.6k
Forks
3
Issues
+1
Stars/day
Attention Score
91
Language breakdown
TypeScript 98.4%
JavaScript 1.4%
Dockerfile 0.2%
โ–ธ Files click to expand
README


License: CC BY-NC-ND 4.0 CI Status

Rawon

A simple powerful Discord music (multi-)bot built to fulfill your production desires. Easy to use, with no coding required.

Features

  • Production-ready, no coding required
  • Request channel feature for seamless music experience
  • Support for YouTube Music, 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

Installation

Prerequisites

Note: Docker users don't need to install FFmpeg manually โ€” it's included in the Docker image.

Standard Setup (Node.js)

  • Download and install the prerequisites above
  • Clone or download this repository
  • Copy .env.example to .env and fill in the required values. DISCORDTOKEN is required to start; STEGRIPEAPILICENSEKEY is required for licensed features.
  • 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 dev.env from dev.env.example, or remove the dev.env line from env_file
  • Create a docker-compose.yaml file:
services:
  rawon:
    image: ghcr.io/stegripe/rawon:latest
    container_name: rawon-bot
    restart: unless-stopped
    env_file:
      - .env
      - dev.env
    ports:
      - "${DEVTOOLSPORT:-3000}:${DEVTOOLSPORT:-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 "${DEVTOOLSPORT:-3000}:${DEVTOOLSPORT:-3000}" \
  -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 file and profile data from Google login (see Cookies Setup)

Port Information

The DEVTOOLSPORT (default: 3000) is used for Chrome DevTools remote debugging proxy. This is required for !login start to work from a remote machine. Set DEVTOOLSPORT in your dev.env file to use a different port.

Configuration Files

  • .env.example - Essential settings (Discord/Spotify token, prefix, IDs, etc.)
  • dev.env.example - Optional developer settings (prefix/slash toggles, sharding, DevTools, debug mode, etc.)
  • Bot-specific settings (embed color, yes/no emoji, splash, alt prefix, default volume, selection type, audio cache) are managed via the setup command (developer-only) and stored in the database. Use setup view to list available settings.
Use the ones you need/should and fill in the values.

Rawon License

Some features require an approved STEGRIPEAPILICENSE_KEY.

  • Start the bot once.
  • Copy the Bot ID from the license warning.
  • Join stegripe.org/discord.
  • Send the Bot ID to Stegripe staff for review.
  • After approval, set STEGRIPEAPILICENSE_KEY in .env.
  • Restart the bot.
General commands remain available without a license. Approved bot IDs can use the licensed feature set.

Multi-Bot Mode

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
  • Each bot ID that needs license access must be approved for the same STEGRIPEAPILICENSE_KEY; unapproved bot IDs stay online but will not handle license-gated actions

Documentation

  • Disclaimers - Important legal information
  • Cookies Setup - Fix "Sign in to confirm you're not a bot" errors on hosting providers

Common Issues

"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)

Support & Questions

For help and questions, join our official Discord Server.

Contributors

Developers

Translators

ยฉ 2026 Stegripe Development

ยฉ 2026 GitRepoTrend ยท stegripe/rawon ยท Updated daily from GitHub