Official BubbleUPnP Server multi-platform docker images based on openSUSE Tumbleweed are available on Docker Hub, for easily running BubbleUPnP Server on Linux x86_64, x86 (32-bit), arm64 and armv7 plaftorms.

It provides everyting needed to run BubbleUPnP Server optimally, including Java and FFmpeg binaries. The image is compatible with Intel QSV (Intel only) and VA-API (Intel/AMD) GPU transcoding, but not NVIDIA.

If your user is not already part of the docker group, you will have to prefix all docker commands with sudo. To avoid this, add you user to the the docker group whit this command, then launch a new terminal to make the change effective:

sudo usermod -aG docker $USER

Create a persistent container named bubbleupnpserver from the image:

docker create --name bubbleupnpserver \
       --net=host --device /dev/dri:/dev/dri \
       --restart=unless-stopped bubblesoftapps/bubbleupnpserver 
  • --net=host: required for proper networking
  • --device /dev/dri:/dev/dri: only necessary for Intel QSV or VA-API Chromecast GPU transcoding
  • --restart=unless-stopped: only necessary for starting the bubbleupnpserver container automatically when the docker daemon starts
  • at the end of the line you can pass BubbleUPnP Server command-line arguments

Then start the container with:

docker start bubbleupnpserver

Connect to the the web configuration with your web browser: http://localhost:58050 (from your machine) or http://<server LAN ip>:58050 (from another machine on the LAN).

The container will always run the latest version of BubbleUPnP Server. There is no need to recreate it just for that purpose.

to stop the container: docker stop bubbleupnpserver
to restart the container: docker restart bubbleupnpserver
to show continuously updated logs: docker logs -f bubbleupnpserver
to remove the container (for uninstalling or recreating it): docker rm -f bubbleupnpserver
to remove the image: docker rmi bubblesoftapps/bubbleupnpserver

If you need to edit configuration.xml, copy it to your host, edit it it, then copy it back to the container and restart it:

docker stop bubbleupnpserver
docker cp bubbleupnpserver:/opt/bubbleupnpserver/configuration.xml .
<edit configuration.xml>
docker cp configuration.xml bubbleupnpserver:/opt/bubblupnpserver
docker start bubbleupnpserver