Sign inSign up

tty0/unifi-controller

By tty0

•Updated about 5 years ago

The Ubiquiti Unifi Network Controller for ARM64 architecture (Tested in Raspberry Pi 4B).

Image
0

3.2K

tty0/unifi-controller repository overview

⁠Unifi Controller for ARM64

Build

Linkedin LinkedIn⁠ GitHub GitHub⁠

Unifi

The UniFi Network Controller⁠ is a free software suite that allows you to set up, configure, manage, and analyze your UniFi network in a centralized manner. Normally Unifi Controller runs in Cloud Providers or in the data center using the Unifi Cloud Key⁠.

This image, allows you to run Unifi Network Controller in Kubernetes using the ARM64 architecture. It has been tested Raspberry-Pi 4B running Rancher's K3s⁠. The main idea before building this image was to execute this with a decoupled MongoDB database, to improve availability, resiliency, and performance.

The image includes the mongodb binaries because the Unifi Network Controller software needs it to execute, but the server must be running externally. Typically Unifi Controller configures two different MongoDB databases, ace for the configuration itself and ace_stats to store networking metrics. You need to create your MongoDB cluster before using this image. A few examples of the Kubernetes configuration have been included in this repository.

⁠Environment

The following Environment variables require to be initialized before running.

VariableValueDefault
DEBUGEnables init scripts debug modefalse
JVM_MAX_HEAP_SIZEJVM Maximum Heap Size---
JVM_INIT_HEAP_SIZEJVM Minimum Heap Size---
BIND_PRIVBind service privatelyfalse
DB_MONGO_LOCALRun local MongoDB instance---
DB_MONGO_URIMongoDB URI---
STATDB_MONGO_URIStatDB Mongo URI---
UNIFI_DB_NAMEName of the UNIFI database---
RUN_CHOWNUpdate permissions at inittrue

⁠Running

You need to have an ARM64 cluster with a MongoDB accessible by the Unifi Controller pods. Check the Kubernetes directory to see examples.

⁠Architecture

⁠Exposes

The following ports are exposed by Unifi Controller.

ProtocolPort numberDescription
UDP3478Port used for STUN.
TCP8080Port used for device and controller communication.
TCP8443Port used for controller GUI/API as seen in a web browser
TCP8880Port used for HTTP portal redirection.
TCP8843Port used for HTTPS portal redirection.
TCP6789Port used for UniFi mobile speed test.
TCP8881Port used for Unifi Hotspot for redirection.
TCP8882Port used for Unifi Hotspot for redirection.
UDP10001Port used for device discovery

NOTE: These ports need to be open at the gateway/firewall as well as on the controller host. This would be achieved by creating port forwards on the gateway/firewall where the controller host is located.

⁠Egress Ports Required for UniFi Remote Access

The following ports are required to reach the Unifi Cloud for Remote Access.

ProtocolPort numberDescription
UDP3478Port used for STUN.
TCP/UDP443Port used for Remote Access service.
TCP8883Port used for Remote Access service.

⁠Credits

Bootstrap scripts are based on goofball222/unifi⁠ Docker images.

⁠Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

⁠License

Apache 2⁠

Tag summary

Content type

Image

Digest

Size

287.4 MB

Last updated

about 5 years ago

docker pull tty0/unifi-controller