This guide covers the layout and day-two configuration of the CloudSOE UniFi Network image on both AWS and Azure. It assumes you’ve finished one of the getting-started guides (AWS, Azure).

File locations

The image installs the official Ubiquiti package, so everything is in the standard places:

PathPurpose
/usr/lib/unifiUniFi Network application
/usr/lib/unifi/dataController data, including system.properties
/usr/lib/unifi/data/backup/autobackupScheduled auto-backup files (.unf)
/usr/lib/unifi/logs/server.logMain controller log
/usr/lib/unifi/logs/mongod.logController database log
/var/lib/unifi-firstboot.doneMarker that the one-time first-boot service ran

Services

The controller and its database are managed by systemd and enabled at boot:

sudo systemctl status unifi mongod
sudo systemctl restart unifi        # after config changes; allow a minute to come back

The controller runs on Java 21 and stores its data in MongoDB 8.0 — both installed from their official repositories, so apt keeps them updated.

The port map

The image leaves the standard UniFi ports untouched:

PortProtocolPurpose
8443TCPWeb UI (HTTPS)
8080TCPDevice inform
3478UDPSTUN
10001UDPDevice discovery (local network only)
8880TCPGuest portal HTTP
8843TCPGuest portal HTTPS

Ports can be changed in /usr/lib/unifi/data/system.properties (e.g. unifi.https.port=8443), but stick with the defaults unless you have a conflict — devices expect them.

The inform host

For a cloud controller the single most important setting is Settings → System → Advanced → Override Inform Host, set to your instance’s public IP (or a DNS name pointing at it). Every adopted device stores this address and phones home to it on TCP 8080.

Using a DNS name instead of the raw IP is worth the small setup cost: if you ever migrate the controller, you move the DNS record instead of re-informing every device.

Controller memory

The controller’s JVM heap defaults to 1 GB. On a 4 GB instance managing many devices you can raise it in /usr/lib/unifi/data/system.properties:

unifi.xmx=2048

Restart the unifi service afterwards. The image also raises fs.file-max and per-user file/process limits system-wide, so large device counts won’t hit descriptor limits.

The web UI certificate

The UI on port 8443 uses a self-signed certificate generated by the controller. Since only administrators visit the UI (devices don’t validate it), most cloud deployments simply accept the warning or restrict port 8443 to admin IPs. If you want a trusted certificate, point a DNS name at the instance and import a certificate into the controller’s keystore at /usr/lib/unifi/data/keystore per Ubiquiti’s documentation.

Next steps

  • Tips & tricks — backups, updates, adoption troubleshooting and hardening