Konfiguration
Sonance liest seine Einstellungen aus einer config.json oder aus
Umgebungsvariablen. Sind beide gesetzt, überschreiben Umgebungsvariablen die
Datei. Für lokale Tests ist config.json am bequemsten; im Container nutzt du
in der Regel env-Variablen für Secrets + ein Volume für den zur Laufzeit
gespeicherten Auto-Join-Stand.
Vollständige config.json
Section titled “Vollständige config.json”Vorlage (im Repo als config.example.json):
{ "token": "DEIN_BOT_TOKEN_HIER", "clientId": "DEINE_APPLICATION_ID_HIER", "guildId": "",
"autoJoin": { "enabled": false, "guildId": "DEINE_SERVER_ID", "channelId": "DEINE_VOICE_CHANNEL_ID", "source": { "query": "http://stream.example.com/stream.mp3", "loop": true, "shuffle": false } },
"defaultVolume": 100, "allowedRoles": []}Felder im Detail
Section titled “Felder im Detail”| Feld | Typ | Pflicht | Bedeutung |
|---|---|---|---|
token | String | ✅ | Bot-Token aus dem Developer Portal. |
clientId | String | ✅ | Application ID – für die Command-Registrierung. |
guildId | String | – | Server-ID. Gesetzt: Slash-Commands sofort auf diesem Server verfügbar. Leer: global registriert (~1 h Verzögerung). |
autoJoin | Objekt | – | Automatischer Start in einem Channel, siehe unten. |
defaultVolume | Zahl | – | Start-Lautstärke in Prozent (0–200, Default 100). |
allowedRoles | Array | – | Rollen-IDs, die den Bot bedienen dürfen. Leer = alle. |
autoJoin
Section titled “autoJoin”| Feld | Typ | Bedeutung |
|---|---|---|
enabled | Boolean | Auto-Join beim Start an/aus. |
guildId | String | Server, in dem gejoint wird. |
channelId | String | Voice-Channel, der betreten wird. |
source.query | String | Was gespielt wird: Stream-URL, YouTube-Link/Playlist oder Suchbegriff. |
source.loop | Boolean | Endlos-Wiedergabe (für 24/7 sinnvoll). |
source.shuffle | Boolean | Zufallsreihenfolge (bei Playlists). |
Mehr dazu unter Auto-Join & 24/7.
Umgebungsvariablen
Section titled “Umgebungsvariablen”Jede Variable überschreibt das entsprechende config.json-Feld:
| Umgebungsvariable | Entspricht | Hinweis |
|---|---|---|
DISCORD_TOKEN | token | Bot-Token (geheim) |
DISCORD_CLIENT_ID | clientId | Application ID |
DISCORD_GUILD_ID | guildId | leer = global (~1 h) |
DEFAULT_VOLUME | defaultVolume | 0–200 |
ALLOWED_ROLES | allowedRoles | komma-getrennte Rollen-IDs |
CONFIG_PATH | – | Pfad zur config.json (im Container: /data/config.json) |
Wo liegt die Konfiguration?
Section titled “Wo liegt die Konfiguration?”- Lokal:
config.jsonim Bot-Verzeichnis (bzw. Pfad ausCONFIG_PATH). - Docker: Das Image erwartet sie unter
/data/config.json(CONFIG_PATH). Mounte ein Volume oder deine Datei dorthin, damit/autojoin-Änderungen Neustarts überleben. Siehe Deployment mit Docker.