Skip to content

Konfiguration

Resonix lädt Einstellungen aus resonix.toml (wird beim ersten Start erzeugt) sowie Umgebungsvariablen, die einzelne Werte überschreiben.

Dateipfad

Zuerst wird resonix.toml (klein geschrieben) im Working Directory gesucht, danach Resonix.toml.

Vorlage

Beim ersten Start geschriebene Vorlage:

toml
# (gekürzt – siehe DEFAULT_CONFIG_TEMPLATE in src/config/mod.rs)
[server]
host = "0.0.0.0"
port = 2333
# password = "supersecret"

[logging]
clean_log_on_start = true

[resolver]
enabled = true
ytdlp_path = "yt-dlp"
# ffmpeg_path optional; Standard "ffmpeg"
# timeout_ms = 20000
preferred_format = "140"
allow_spotify_title_search = true

[spotify]
client_id = "SPOTIFY_CLIENT_ID"
client_secret = "SPOTIFY_CLIENT_SECRET"

[sources]
allowed = []
blocked = []

Sektionen

[server]

SchlüsselTypStandardBeschreibung
hoststring0.0.0.0Bind Adresse
portnumber2333Bind Port
passwordstring?unsetFalls gesetzt muss jeder Request den exakten Wert im Authorization Header senden.

[logging]

SchlüsselStandardBeschreibung
clean_log_on_starttrueKürzt .logs/latest.log beim Start. Logs zusätzlich auf stdout.

[resolver]

SchlüsselStandardBeschreibung
enabledfalseAktiviert intelligente Auflösung/Download für nicht-direkte URLs.
ytdlp_pathyt-dlpPfad überschreiben. Auto‑Download falls fehlend.
ffmpeg_pathffmpegPfad überschreiben. Auto‑Download auf Windows/Linux.
timeout_ms20000Timeout pro Auflösung.
preferred_format140yt-dlp Format (140 = m4a).
allow_spotify_title_searchtrueTitelbasierte Suche falls direkte Auflösung scheitert.

[spotify]

Echte Zugangsdaten setzen um Spotify Track URLs zu unterstützen. Werte können direkt oder als Env‑Variablennamen angegeben werden.

toml
[spotify]
client_id = "SPOTIFY_CLIENT_ID"
client_secret = "SPOTIFY_CLIENT_SECRET"

[sources]

Allow/Block Listen als Regex. Abgleich gegen komplette URI UND Hostname. Block hat Vorrang.

SchlüsselBeschreibung
allowedWenn nicht leer, nur URIs/Hosts die ein Regex matchen (sofern nicht blockiert).
blockedJeder Treffer blockiert die URI.

Beispiel: Nur YouTube & lokale Dateien erlauben, SoundCloud blockieren.

toml
[sources]
allowed = ["(^|.*)(youtube\\.com|youtu\\.be)(/|$)"]
blocked = ["(^|.*)soundcloud\\.com(/|$)"]

Environment Overrides

VariableEffekt
RESONIX_RESOLVEBei 1/true erzwingt aktivierten Resolver.
YTDLP_PATHÜberschreibt ytdlp_path.
FFMPEG_PATHÜberschreibt ffmpeg_path.
RESOLVE_TIMEOUT_MSÜberschreibt timeout_ms.
SPOTIFY_CLIENT_ID / SPOTIFY_CLIENT_SECRETSpotify Zugangsdaten.

Passwort Auth

Falls password gesetzt, jeder REST Request:

Authorization: <password>

Kein Schema nötig. Fehlend/falsch -> 401.

Logs

  • Verzeichnis: .logs/latest.log
  • Gesteuert durch clean_log_on_start
  • Kompaktes menschenlesbares Format

Tool Cache

Auto‑geladene Tools in ~/.resonix/bin (Env RESONIX_TOOLS_DIR). Enthält yt-dlp, ffmpeg, ffplay, ffprobe.

Released under the BSD-3-Clause License.