Public | Automated Build

Last pushed: 17 days ago
Short Description
UniFi controller on Debian
Full Description


This is a Docker image of UniFi controller
based on openjdk:8-jre-slim


Container is created for each stable UniFi release and tagged as vX.X.X.
:latest tag is for the latest 5.6 LTS release.
:v5.7 tag is for the latest 5.7 release.
:v5.8 tag is for the latest 5.8 release.


docker run -d --name=unifi \
    -p 8080:8080 -p 8443:8443 \

UniFi interface should be available at
(first run wizard is opened if the instance is unconfigured).

By default it uses Docker data volume for persistence.

You can update such installation by passing --volumes-from option
to docker run:

docker pull jacekkow/unifi
docker stop unifi
docker rename unifi unifi-old
docker run -d --name=unifi \
    -p 8080:8080 -p 8443:8443 \
    --volumes-from unifi-old \
docker rm -v unifi-old

Local storage

If you prefer to have direct access to container's data
from the host, you can use local storage instead of data volumes:

docker run -d --name=unifi \
    -p 8080:8080 -p 8443:8443 \
    -v /srv/unifi/data:/usr/lib/unifi/data \
    --user root \

/srv/unifi/data directory will be automatically populated
with default configuration if necessary.

File ownership is recursively changed to unifi:unifi (500:500)
on each start, provided the container is run as root
(don't worry - unifi user will be used to start UniFi).

Captive portal and STUN

Using captive portal requires forwarding of additional ports
(8880 and 8843):

docker run -d --name=unifi \
    -p 8080:8080 -p 8443:8443 \
    -p 8880:8880 -p 8843:8843 \

For STUN (NAT traversal) UDP port 3478 must be available:

docker run -d --name=unifi \
    -p 8080:8080 -p 8443:8443 \
    -p 3478:3478/udp \

Note that STUN was not tested in container-based environment!
This port is also not exposed in Dockerfile.


You can configure the instance by editing files
in directory /usr/lib/unifi/data inside the container
(or appropriate host dir if local storage is used).

By default the JVM is started with option -Xmx1024m.
You can override this default using JAVA_OPTS environment

docker run -d --name=unifi \
    -p 8080:8080 -p 8443:8443 \
    -e "JAVA_OPTS=-Xmx512m" \
Docker Pull Command
Source Repository