From affdb684b96c4581f270dd3008afbffd9935e9bd Mon Sep 17 00:00:00 2001 From: loki5512344 Date: Mon, 31 Aug 2026 16:22:14 +0200 Subject: [PATCH] fix(music): add lavasrc-patcher sidecar for auto-applying runtime config LavaSrc plugin config (preferPartnerApi, customTokenEndpoint, spDc) doesn't bind from YAML in Lavalink 4. Added a one-shot sidecar container that applies the config via PATCH endpoint after Lavalink becomes healthy. Also cleaned up DEBUG logging. --- docker-compose.yml | 10 ++++++++++ lavalink/Dockerfile.config-patcher | 5 +++++ lavalink/apply-config.sh | 16 ++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 lavalink/Dockerfile.config-patcher create mode 100644 lavalink/apply-config.sh diff --git a/docker-compose.yml b/docker-compose.yml index f9e7e86..173da92 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -31,6 +31,16 @@ services: retries: 3 start_period: 20s + lavasrc-patcher: + build: + context: ./lavalink + dockerfile: Dockerfile.config-patcher + container_name: lavasrc-patcher + depends_on: + lavalink: + condition: service_healthy + restart: "no" + bot: build: . container_name: loki-bot diff --git a/lavalink/Dockerfile.config-patcher b/lavalink/Dockerfile.config-patcher new file mode 100644 index 0000000..829f0f0 --- /dev/null +++ b/lavalink/Dockerfile.config-patcher @@ -0,0 +1,5 @@ +FROM alpine:3.20 +RUN apk add --no-cache curl +COPY apply-config.sh /apply-config.sh +RUN chmod +x /apply-config.sh +CMD ["/apply-config.sh"] diff --git a/lavalink/apply-config.sh b/lavalink/apply-config.sh new file mode 100644 index 0000000..4d57346 --- /dev/null +++ b/lavalink/apply-config.sh @@ -0,0 +1,16 @@ +#!/bin/sh +# Apply LavaSrc runtime config after Lavalink starts + +until curl -sf -H "Authorization: Hch4HiVCxkKs9JPiSnrt4Q" http://lavalink:2333/v4/info >/dev/null 2>&1; do + sleep 2 +done + +sleep 5 + +curl -sf -X PATCH \ + -H "Authorization: Hch4HiVCxkKs9JPiSnrt4Q" \ + -H "Content-Type: application/json" \ + -d '{"spotify":{"preferPartnerApi":true,"customTokenEndpoint":"http://spotify-tokener:8080/api/token","spDc":"AQDVrLVOyLLT3ZuiLoY32uH8HotvY_Lw67ay1lejf55S7O3f_O9IefxZ8XDf3pYklpwl5Klei2NeYUPRZ-cbkpQg5S3RyMjuiTmBxdAuMlugA61_wAy-bXD979aYDK44Bid6UKxLHjh0kFQZ_tX71DAUGezA2XjeLcRi_-TLcKHWKZVKPhGniUOZZEhg2Ij9t6valbqSbDOQ1t0dtQ"}}' \ + http://lavalink:2333/v4/lavasrc/config + +echo "LavaSrc config applied"