Skip to main content
JoBot has a small set of hard requirements and two optional integrations that unlock music and voice features. This page lists what you need before you start, explains what each credential is used for, and provides a full reference table of every environment variable.

Required

When you create your Discord bot, you must also enable the Message Content privileged intent (Bot → Privileged Gateway Intents) and grant the bot Connect and Speak permissions so it can join voice channels.

Optional integrations

Subsonic

A Subsonic-compatible personal music server lets JoBot search your private library, play random tracks, and manage share links. Without Subsonic credentials, JoBot can still play music from YouTube. You need three values from your Subsonic server:
  • Base URL — the root URL of your server, e.g. https://music.example.com
  • Username — the Subsonic account JoBot will authenticate as
  • Password — the password for that account

ElevenLabs

ElevenLabs provides the text-to-speech voice JoBot uses when speaking aloud in voice channels. Without an ElevenLabs API key, TTS is unavailable. You need two values from your ElevenLabs account:
  • API key — found in your ElevenLabs profile settings
  • Voice ID — the ID of the voice you want JoBot to use (visible in the ElevenLabs voice library URL)

Environment variable reference

All configuration is passed to JoBot through environment variables. In Docker Compose, these map to the environment: block in docker-compose.yml and are typically stored in a .env file.
Per-guild settings (GuildDefaults__*) set the starting values for new guilds. Server admins can override them at any time using the /settings set slash commands without restarting the bot.