Files
scriptosandClaude Opus 5.5 04cd7c44b8
Build & Push Docker Image / Build & push image (push) Successful in 8m57s
Release 0.7.0: OpenHome, fades, gapless covers/conversion, monitoring
- OpenHome renderer (Product, Playlist, Time, Info, Volume): the app hands
  the whole queue to the bridge, which plays it on its own
- Soft fades on pause, stop and user track changes (FADE_MS)
- Gapless: cover per track, ffmpeg conversion of mixed formats, resume at
  the paused position after BluOS reconnects
- Monitoring: /api/health, /api/prtg, /metrics
- English web UI (UI_LANG=en|de)
- Multi-arch image build via Gitea Actions, image includes ffmpeg

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 12:53:46 +01:00

22 lines
859 B
Docker

FROM python:3.12-slim
LABEL org.opencontainers.image.title="bluos-upnp-bridge" \
org.opencontainers.image.description="UPnP/DLNA MediaRenderer bridge for BluOS (Bluesound) players"
# ffmpeg converts follow-up tracks of another format in gapless mode (MP3 <-> FLAC)
RUN apt-get update \
&& apt-get install -y --no-install-recommends ffmpeg \
&& rm -rf /var/lib/apt/lists/* \
&& useradd --system --uid 10001 --no-create-home bridge \
&& mkdir -p /data && chown bridge /data
WORKDIR /app
COPY bridge.py web_ui.py gapless.py openhome.py /app/
USER bridge
ENV PYTHONUNBUFFERED=1 DATA_DIR=/data
VOLUME /data
HEALTHCHECK --interval=60s --timeout=5s --retries=3 \
CMD python -c "import os,urllib.request; urllib.request.urlopen('http://127.0.0.1:%s/health' % os.environ.get('HTTP_PORT','49494'), timeout=3)" || exit 1
CMD ["python", "/app/bridge.py"]