Jacek Kowalski
2018-06-08 bab5d7bf4f84acec7739990c46d64f85ad00283c
Add README
1 files added
1 files modified
100 ■■■■■ changed files
Dockerfile 2 ●●● patch | view | raw | blame | history
README.md 98 ●●●●● patch | view | raw | blame | history
Dockerfile
@@ -18,7 +18,7 @@
    && mkdir -p /usr/lib/unifi/data /var/lib/unifi \
    && chown -Rf unifi:unifi /usr/lib/unifi /var/lib/unifi
EXPOSE 8080 8081 8443 8843 8880
EXPOSE 8080 8443 8843 8880
VOLUME /usr/lib/unifi/data
README.md
New file
@@ -0,0 +1,98 @@
# UniFi
This is a Docker image of UniFi 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 latest 5.6 LTS release.
`:v5.7` tag is for latest 5.7 release.
## Usage
```bash
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`:
```bash
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:
```bash
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):
```bash
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:
```bash
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:
```bash
docker run -d --name=unifi \
    -p 8080:8080 -p 8443:8443 \
    -e "JAVA_OPTS=-Xmx512m" \
    jacekkow/unifi
```