edit | blame | history | raw

THIS PROJECT IS ABANDONED

NO NEW RELEASES WILL BE AVAILABLE

Please switch to Docker images from linuxserver.io:
https://hub.docker.com/r/linuxserver/unifi-controller
https://github.com/linuxserver/docker-unifi-controller

UniFi

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

Tags

Container is created for each stable UniFi release and tagged as vX.X.X.
:latest tag is for the latest stable release (currently 5.13).
:lts tag is for the latest 5.6 LTS release.

Usage

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

UniFi interface should be available at https://127.0.0.1:8443/
(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 \
	jacekkow/unifi
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 \
	jacekkow/unifi

/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 \
	jacekkow/unifi

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 \
	jacekkow/unifi

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

Configuration

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
variable:

docker run -d --name=unifi \
	-p 8080:8080 -p 8443:8443 \
	-e "JAVA_OPTS=-Xmx512m" \
	jacekkow/unifi
edit | blame | history | raw
BSD 3-Clause License

Copyright (c) 2016-2020, Jacek Kowalski
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its
   contributors may be used to endorse or promote products derived from
   this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
README 3 KB