BubbleUPNP Install Guide

  • Thanks to @shadowzero and his excellent Serviio Install Guide, I've been happily using Serviio for a couple years. However, I recently was given a ChromeCast, but was frustrated by it's inability to stream content from the local network. After some searching, I came across BubbleUPNP which does exactly what I needed, but was a bit of a pain to install. I documented all my steps and am sharing it here in case it may be of use to anyone else.

    BubbleUPNP Install Guide
    Requirements: a UPNP server (anything should work, I use Serviio) BubbleUPNP, Java 8.x, Android Phone

    • Check for Java

      java -version

      If it's installed you'll get output similar to below and can skip installing Java and go immediately to step 1


      java version "1.8.0_72"
      Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
      Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode)

    • add the Java 8 repository, then install the Java 8 runtime

      echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list
      echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
      apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
      apt-get update
      apt-get install oracle-java8-installer
    • Set Oracle Java 8 as the default on the system:

      apt-get install oracle-java8-set-default


    • The first step is to download BubbleUPNP:

      wget http://www.bubblesoftapps.com/bubbleupnpserver/BubbleUPnPServer-distrib.zip

      Then unzip it:

      unzip BubbleUPnPServer-distrib.zip -d bubbleupnp

      You'll also need ffmpeg in the BubbleUPNP directory for it to function properly:

    • Code
      wget http://www.bubblesoftapps.com/bubbleupnpserver/core/ffmpeg_linux.zip

      ffmpeg needs to be unzipped as well:

      unzip ffmpeg_linux.zip -d bubbleupnp
    • Move BubbleUPNP to a better location than your home directory:

      mv bubbleupnp /usr/local/bubbleupnp
    • And make things executable:

      chmod +x /usr/local/bubbleupnp/ffmpeg
      chmod +x /usr/local/bubbleupnp/ffprobe
      chmod +x /usr/local/bubbleupnp/launch.sh
    • You don't want services running as root (security risk!), so we'll create a new user that will only be responsible for running BubbleUPNP:

      useradd -s /usr/sbin/nologin -d /usr/local/bubbleupnp -r -M -U bubbleupnp
    • our new user needs to own the folder in order to do it's job:

      chown -R bubbleupnp:bubbleupnp /usr/local/bubbleupnp
    • It's time to create our startup script. Open nano (or the text editor of your choice):

      nano /etc/init.d/bubbleupnp

      and paste in the following:

      Save it (Ctrl-o) and exit (Ctrl-x) the‭ editor.
      If you've made any changes to usernames, directories, etc, please ensure you make the necessary changes in the script as well.

    • This script needs to be executable:

      chmod a+rx /etc/init.d/bubbleupnp

      And root needs to own it:

      sudo chown bubbleupnp:bubbleupnp /etc/init.d/bubbleupnp

      It needs to be added to startup:

      sudo update-rc.d bubbleupnp defaults
    • The moment of truth! Let's start the service:

      service bubbleupnp start
    • Did it work? Let's make sure it's running:

      service bubbleupnp status
    • Time to configure the server!

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!