Our WiFi has been painfully slow, so I’m going to try an overhaul and document it this time. I can barely remember the specifics of how I originally set it up and have limited notes, so I’m basically starting from scratch.
Right now I basically have two networks, the one provided by my ISP (a HomeHub3000) and my custom set up. The custom set up is comprised of a Dell Optiplex running Proxmox with two VMs; Linux Mint with Unifi Controller and pfSense. This controls my network switch, a Cisco C3560G. This switch powers my UniFi AC Lite to provide WiFi to the house.
Here are the criteria I’m working towards for the new setup
- Run UniFi Controller on a Raspberry Pi 4
- Run pfSense or Sophos directly on the Dell PC rather than on a VM
- By pass the HomeHub3000 completely and run fiber directly into the Cisco switch
I think I can by pass the HH3000 later, after everything else is set up, so I’m going to leave that along for now.
UniFi Controller
Basically I’m just going to follow this guide to get it installed inside a docker container.
Once it’s installed, I’ll need to configure the UniFi AC Lite to use it instead of the legacy version. To do this, I need to remote into the unit and reset what’s controlling it. I mostly followed this guide to factory reset the controller. The key takeaways are that you need to hold the reset button for 5 seconds to do a factory reset.
Once you have a factory reset access point, the controller should automatically find it. In my case, the AP was running a version of firmware that was too old and it said I need to upgrade the firmware before the AP could be adopted by the controller.
You are supposed to be able to upgrade the firmware of the AP from the controller, but after waiting for 30 mins I realized it wasn’t doing anything. The next best option is to force the firmware upgrade from the AP itself.
If you can’t either, jump to this section to see if a potential fix will work for you.
You should then be able to SSH into it with the credentials ubnt/ubnt if you did a factory reset:
ssh ubnt@<ip-address>
Once in, you can type help and get a list of commands:
upgrade <firmware URL>
The URL of the firmware can be found here. Note that you need to select your type of AP, and then when you click the version that you want a download button pops up. Click the download button and it pops up with a download option and a box with the URL in it. After giving the AP the upgrade command, it flashed white and blue for a few minutes and then stayed solid white for another few mins. After a few mins of the solid white I was able to SSH into the AP again and see that the upgrade was successful.
Next step is to adopt the AP, which should be as simple as clicking “adopt” from the controller interface once it finds the newly updated AP.
But it wasn’t… at least it wasn’t until I fixed an issue caused by running the controller in a docker container.
From the controller GUI, go to Settings -> Controller and under the “Controller Settings” header put in the IP address of your Pi running the controller. Apply Changes and go back to the dashboard.
If it didn’t automatically start the adoption process, click adopt from the AP menu and within a few seconds they should be paired.
I assume this was also the reason I couldn’t get the AP to update from the controller interface. I can’t with 100% certainly confirm that without going back through the factory reset process, but as a data point, I was able to push an update to the firmware once they were properly paired.
OK, that’s enough for now. Pretty annoying that I wasted a few hours fighting with this over an IP address miscommunication with Docker. I’ll cover the second and third bullets list at the top in another post.