Legal considerations
YouTube: Enabling YouTube as a source may violate YouTube’s Terms of Service, which generally prohibit downloading content from their platform. You are solely responsible for compliance with all applicable laws and platform terms of service in your jurisdiction.Prerequisites
- Discord bot token from the Discord Developer Portal
- Redis instance (for query cache, playback statistics, and queue recovery)
- Docker or a Kubernetes cluster
Environment variables
| Variable | Required | Description |
|---|---|---|
TOKEN | Yes | Your Discord bot token |
REDIS_URL | Yes | Redis connection string |
CLIENT_ID | Yes | Discord application client ID |
OWNER_USER_ID | Yes | Discord user ID of the bot owner |
PLAYLISTS_CHANNEL_ID | Yes | Channel ID for playlist definitions |
BOT_DEBUG_CHANNEL_ID | Yes | Channel ID for error and recovery messages |
DP_SPOTIFY_CLIENT_ID | No | Spotify API client ID for enhanced search |
DP_SPOTIFY_CLIENT_SECRET | No | Spotify API client secret |
ENABLE_YOUTUBE | No | Set to true to enable YouTube as a source |
DISABLED_COMMANDS | No | Comma-separated list of command names to disable |
OPENAI_API_KEY | No | OpenAI API key for the /prompt command |
MISTRAL_API_KEY | No | Mistral API key (alternative provider for /prompt) |
SENTRY_DSN | No | Sentry DSN for error tracking |
Secrets management
Sensitive variables likeTOKEN, DP_SPOTIFY_CLIENT_SECRET, OPENAI_API_KEY, MISTRAL_API_KEY, and SENTRY_DSN should never be passed as plain text in command-line arguments or stored in version control.
- Kubernetes – store secrets in Kubernetes Secrets and reference them in the Helm chart’s
secrets.*values. The chart supports this natively for all sensitive variables. - Docker – avoid passing secrets via
-eflags. Use Docker Compose secrets to mount them as files, or at minimum use--env-filewith restrictive file permissions.
Option 1: Helm chart (recommended)
The Helm chart is the recommended deployment method for Kubernetes clusters. It includes a Redis dependency and handles configuration automatically.values.yaml for the full list of configurable options. For Argo CD users, see this example Application manifest.
Option 2: Docker
Docker images are published to both Docker Hub and GitHub Container Registry.linux/amd64 and linux/arm64) and tagged with commit SHAs. The latest tag points to the most recent build.
- Docker Hub
- GitHub Container Registry