FROM python:3.13-slim RUN apt-get update && apt-get install -y \ git \ ffmpeg \ libopus0 \ libmagic1 \ openssl \ build-essential \ curl \ unzip \ nodejs \ npm \ && rm -rf /var/lib/apt/lists/* RUN curl -fsSL https://github.com/denoland/deno/releases/latest/download/deno-x86_64-unknown-linux-gnu.zip \ -o /tmp/deno.zip && \ unzip /tmp/deno.zip -d /usr/local/bin && \ rm /tmp/deno.zip WORKDIR /app RUN git clone --branch master https://git.stormux.org/storm/bragi . RUN pip install --no-cache-dir -r requirements.txt audioop-lts protobuf && \ pip install --no-cache-dir --upgrade yt-dlp bgutil-ytdlp-pot-provider # Clone bgutil server so bgutil:script-deno POT provider works in-process # (avoids HTTP server URL config issues; deno is already installed above) RUN git clone --depth 1 https://github.com/Brainicism/bgutil-ytdlp-pot-provider \ /root/bgutil-ytdlp-pot-provider && \ cd /root/bgutil-ytdlp-pot-provider/server && \ npm install && \ npx tsc RUN mkdir -p /data /music COPY run_bragi.py /app/run_bragi.py COPY configure.py /configure.py COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh VOLUME ["/data", "/music"] ENTRYPOINT ["/entrypoint.sh"]