Unifi docker upgrade
This post is mostly a note to self for when I need to upgrade next time.
Because of the recent bug in log4j, which also affected the Unifi controller, I decided to finally upgrade the controller software.
Some background: There a few different ways to run the controller. You can use “the cloud”, run it yourself on some PC or raspberry pi, or you can buy their appliance.
I run it myself, because I already have a raspberry pi 4 running, which is cheaper than the appliance, and gives me control of my data and works during an ISP outage.
I thought it’d be a good opportunity to play with docker, too.
How to upgrade
Turns out I’d saved the command I used to create the original docker image. Good thing too, because it seems that upgrading is basically delete the old, install the new.
- Take a backup from the UI.
- Stop the old instance (
docker stop <old-name-here>
). - Take a backup of the state directory.
- Make sure the old instance doesn’t restart
(
docker update --restart=no <old-name-here>
). - Create a new instance with the same state directory.
- Wait a long time (at least on Raspberry Pi), like 15 minutes at least, for the controller to finish starting up.
- Try to log in. Hopefully should work now.
Creating an instance:
#!/bin/sh
VER=6.5.54
exec docker run -d \
--name=unifi-2021-12-14 \
-e PUID=1000 \
-e PGID=1000 \
-e MEM_LIMIT=1024M `#optional` \
-p 3478:3478/udp \
-p 10001:10001/udp \
-p 8080:8080 \
-p 8443:8443 \
-p 1900:1900/udp `#optional` \
-p 8843:8843 `#optional` \
-p 8880:8880 `#optional` \
-p 6789:6789 `#optional` \
-p 5514:5514 `#optional` \
-v /home/pi/unifi/controller:/config:rw \
--restart unless-stopped \
ghcr.io/linuxserver/unifi-controller:$VER