45 lines
1.2 KiB
Docker
45 lines
1.2 KiB
Docker
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"]
|