Skip to content

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.

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": []
}
FeldTypPflichtBedeutung
tokenString✅Bot-Token aus dem Developer Portal.
clientIdString✅Application ID – für die Command-Registrierung.
guildIdString–Server-ID. Gesetzt: Slash-Commands sofort auf diesem Server verfügbar. Leer: global registriert (~1 h Verzögerung).
autoJoinObjekt–Automatischer Start in einem Channel, siehe unten.
defaultVolumeZahl–Start-Lautstärke in Prozent (0–200, Default 100).
allowedRolesArray–Rollen-IDs, die den Bot bedienen dürfen. Leer = alle.
FeldTypBedeutung
enabledBooleanAuto-Join beim Start an/aus.
guildIdStringServer, in dem gejoint wird.
channelIdStringVoice-Channel, der betreten wird.
source.queryStringWas gespielt wird: Stream-URL, YouTube-Link/Playlist oder Suchbegriff.
source.loopBooleanEndlos-Wiedergabe (für 24/7 sinnvoll).
source.shuffleBooleanZufallsreihenfolge (bei Playlists).

Mehr dazu unter Auto-Join & 24/7.

Jede Variable überschreibt das entsprechende config.json-Feld:

UmgebungsvariableEntsprichtHinweis
DISCORD_TOKENtokenBot-Token (geheim)
DISCORD_CLIENT_IDclientIdApplication ID
DISCORD_GUILD_IDguildIdleer = global (~1 h)
DEFAULT_VOLUMEdefaultVolume0–200
ALLOWED_ROLESallowedRoleskomma-getrennte Rollen-IDs
CONFIG_PATH–Pfad zur config.json (im Container: /data/config.json)
  • Lokal: config.json im Bot-Verzeichnis (bzw. Pfad aus CONFIG_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.