OpenWrt with the Unifi controller

Hello,

I have a Ubiquiti AC Pro running Openwrt v21.02.2 and Linux 5.4.179 on mips. I was wondering if there is any way to still manage the device using the Unifi Controller from Ubiquiti. Normally, with the original Ubiquiti firmware you would do a set-inform command to point your access point to the controller, so the device could be any where and still be managed by the singular controller. However, that command is not available on Openwrt. Is there a package I could use or any other way I could replicate this set inform functionality? Or any other way I could manage the access point with Unifi? Thanks for the help!

The Unifi Controller only works with Unifi devices running the official Unifi firmware. And this is a specific design decision made by Ubiquiti for their Unifi line. There is no way for OpenWrt (or any other firmware or product line) to integrate with Unifi's controller.

If you want to manage your UAP-AC-PRO with the Unifi controller, you need to reinstall the Unifi firmware onto that device.

2 Likes

What you could do is what i do. Run the ubiquiti controller in a docker container on my main router. That way you dont have to use one of their controllers or their cloud controller.

But as @psherman said you will need to reflash your AC-Pro back to ubiquiti firmware. Then you can use the unifi apps as you wish.

1 Like

Of course, you need a relatively beefy bit of hardware to run the controller... a Pi4 should handle it no problem, but many all-in-one routers would not have nearly enough storage, RAM, or processor to run Unifi onboard.

1 Like

Hi @mercygroundabyss ,

I don't mean to hijack this thread, so if needed I kindly ask the moderators to split this post into another thread.

I'm referring to your previous message, as I tried installing docker into my x86/64 based router today after reading your post and ended up breaking internet access to every device inside my lan, while the router itself was still able to connect to the Internet...

This was noticed immediately after I installed the following packages, rebooted the router and logged back into Luci. At the point I noticed the problem, I had not even tried downloading the unifi controller image, or anything else...:

Before panic took over, and since I did not wish to disturb my "users" (family members), I removed all docker related packages, rebooted the router and everthing seemed to go back to order.

Did you have trouble with your installation?

Package name	Version	Size (.ipk)	Description	 
docker	20.10.12-1	~11.3 MB	The CLI used in the Docker CE and Docker EE products.	
docker-compose	2.3.3-1	~8.3 MB	Multi-container orchestration for Docker	
dockerd	20.10.12-1	~15.0 MB	The Docker CE Engine.	
luci-app-dockerman	v0.5.13	~36.7 KB	LuCI Support for docker	
luci-lib-docker	git-21.166.52164-fe795d5	~4.7 KB	Docker Engine API for LuCI

These are what i have installed but its part of a prebuilt image. I use anaelorlinski for my R4S as OpenWrt is still snapshot only and when i first got mine his builds just worked rather than having to mess with things.

I'd ask for help from the docker packagers as to why things are breaking. It should just add a docker network and then let you install images from there.

docker section from my /etc/config/network

config interface 'docker'
	option device 'docker0'
	option proto 'none'
	option auto '0'

config device
	option type 'bridge'
	option name 'docker0'

I highly suggest you pull images from an SSH command line as the web interface DOES time out and thus stop your docker pulls. I have a script that just pulls all images in the repository and then i restart the container with docker compose.

updatealldocker.sh

docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":"} {print $1,$2}' | xargs docker pull
1 Like

Yes, this may have been one of the causes (if not the cause), as I have also experienced this...

I will try again sometime tomorrow when everyone is asleep, so I don't wreak unnecessary havoc in the home.

1 Like

Are you using veth? Because i had a similar issue when using Openwrt + Docker + Veth.

Thanks for chiming in @Hudra

Yes, it appears I am... Even though it must have been installed by something else I installed before (mwan3, vpn-policy-routing, wireguard?), as I do not recall having installed it myself...

EDIT: it seems kmod-veth is a dependency for the docker package... I will try to find if it is also in the list of dependencies for other packages I currently have installed. If so, maybe one thing got scrambled with the other...

1 Like

The (veth) package itself gets installed as one of the dependencies of docker because docker uses veth to connect the containers to the host. Since you didn’t know it was installed you probably were not actively using a veth interface for qos or anything else so this is probably not the issue I was referring to.

Nevertheless, I will share what helped me because maybe it will help you or anybody else.

When you install docker, bridge firewall is set to true

cat /etc/sysctl.d/*

# enable bridge firewalling for docker

net.bridge.bridge-nf-call-ip6tables=1

net.bridge.bridge-nf-call-iptables=1

… what was breaking my internet connection in conjunction with a veth interface for ingress traffic shaping.

My solution was setting them to “0”

Or if you want your settings to persist after sysupgrade, insert:

# disable bridge firewalling for docker

net.bridge.bridge-nf-call-ip6tables=0

net.bridge.bridge-nf-call-iptables=0

under /etc/sysctl.conf

2 Likes

Thanks @Hudra

I will most certainly try your suggestion tomorrow when I try to reinstall docker, if the problem arises again.

1 Like

Jsut an addendum. I do it this way because i'm used to doing it that way on my pi. And because of the annoyance of the web interface timing out.

What i do like with the luci addon is that you get an overview on luci to keep an eye on things.

I'm using the unifi controller in host mode btw.

docker-compose.yaml

---
#privileged: true
version: "2.1"
services:
  unifi-controller:
#    image: ghcr.io/linuxserver/unifi-controller
    image: lscr.io/linuxserver/unifi-controller:latest
    container_name: unifi-controller
    network_mode: host
    # Uncomment the following to set java options
    # environment:
#       JAVA_OPTS: -Xmx512M
    environment:
      - PUID=1000
      - PGID=1000
      - MEM_LIMIT=1024M #optional
    volumes:
      - /opt/docker/unifi:/config
#    ports:
#      - 3478:3478/udp
#      - 10001:10001/udp
#      - 8080:8080
#      - 8443:8443
#      - 1900:1900/udp #optional
#      - 8843:8843 #optional
#      - 8880:8880 #optional
#      - 6789:6789 #optional
#      - 5514:5514/udp #optional
    restart: unless-stopped

Generic pull container and reload from new image script.

updatecontainer.sh

docker-compose pull
docker-compose up -d
docker image prune -f

https://github.com/linuxserver/docker-unifi-controller/pkgs/container/unifi-controller - docker site for unifi controller.

2 Likes

Hello again and thanks for your help.

After trying to reinstall docker to my x86/64 router today, the same problem described a few posts above immediately resurfaced. But I'm happy to inform that, by adding the two lines you suggested above to my /etc/sysctl.conf file the issue was fixed.

Many thanks

2 Likes