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
dockergroup, you will have to prefix all
sudo. To avoid this, add you user to the
dockergroup 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
There is an alternate bubblesoftapps/bubbleupnpserver-openj9 image based on the OpenJ9 JRE instead of OpenJDK. This image uses less memory, making it ideal for memory constrained devices. OpenJ9 is supposedly a bit slower than OpenJDK, but for software such as BubbleUPnP Server, it does not matter.
Moreover, some Synology NAS running DSM7 may crash with the
bubblesoftapps/bubbleupnpserverimage, and the workaround is to use the
--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
bubbleupnpservercontainer automatically when the docker daemon starts
- at the end of the line you can pass BubbleUPnP Server command-line arguments
Start the container with:
docker start bubbleupnpserver
On some older Docker versions, the container may fail to start. In that case and if you cannot update Docker to a newer version, recreate the container adding the
Connect to 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/bubbleupnpserver docker start bubbleupnpserver docker exec -u root bubbleupnpserver chown bubbleupnpserver.users /opt/bubbleupnpserver/configuration.xml
BubbleUPnP Server running in the container will update automatically to newer versions of the core, as well as FFmpeg binaries, so there is no need to recreate a new container for that. However, the Docker image itself can be updated to newer Java versions (which cannot be auto updated). If you want to upgrade to an updated Docker image, you will need to recreate the container. Prior to that, to keep your existing configuration, you can copy on your local filesystem the configuration.xml from the old container to be able to copy it later to the new container.