Firstly, I can run the network controller easily in Linux (in Docker as it happens, but the image is third party - jacobalberty/unifi). It's happily running on Raspberry Pi.
Secondly, I've got one really old access point that is now unsupported for updates, but apart from that, there's no problem with controlling it along with the supported ones.
Also, I don't need a cloud connection though they do encourage using one.