Ubiquity UniFi Controller Failed to Start on Raspberry Pi

td;dr

  • Installing the UniFi Controller on Raspbian on a Pi failed to start
  • Fixed it by installing Java 8 first then re-installing instead of letting apt auto select Java 9

Background

As I’m running Raspbian 4.19 I followed the official UniFi “How to Install and Update via APT on Debian or Ubuntu”.

sudo apt update && sudo apt install ca-certificates apt-transport-https
echo 'deb http://www.ui.com/downloads/unifi/debian stable ubiquiti' | sudo tee /etc/apt/sources.list.d/100-ubnt-unifi.list
sudo wget -O /etc/apt/trusted.gpg.d/unifi-repo.gpg https://dl.ui.com/unifi/unifi-repo.gpg
# You might also need to run "sudo apt update" at this point
sudo apt install unifi

Once installation of all the dependencies and unifi was complete I went to https://my-pi:8443/ in my browser on my PC but I saw a connection refused.

UniFi Controller not Starting

Ok, I thought it might be the firewall, so I did:

sudo ufw add 8443

but still no connection.

So I tried wget https://localhost:8443, but also got connection refused!

I checked the log files:

/usr/lib/unifi/logs/server.log
/usr/lib/unifi/logs/mongod.log

However, neither file had even been created!

I tried sudo service unifi status but it seemed to show a process that had only just started, usually less than 1 second ago. It looked like it was continually restarting.

After some more searching, help came from the UniFi - Controller FAQ page.

I typed java -version and saw it had installed Java 9 but the FAQ says only Java 8 is supported.

Install Java 8 and then the UniFi Controller

sudo apt remove unifi
sudo apt-get autoremove -y
sudo apt install openjdk-8-jre-headless
sudo apt install unifi
sudo service unifi start
sudo service unifi status

Now java -version shows 8 not 9 and the UniFi Controller software starts and runs as intended!