selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
UniFi Docker Container logo

Self-host UniFi Docker Container

10.6.106

Docker container for UniFi Network Application controller

ReleaseOpen SourceApache-2.0
Updatedlast week
LanguageShell
Setup difficultyModerate
Stars
323
Ports
3478 (STUN connection (UDP)), 6789 (Throughput measurement from Android/iOS app (TCP)), 8080 (UAP/USW/USG inform controller (TCP)), 8443 (Controller GUI / API (TCP)), 8880 (HTTP portal redirect (TCP)), 8843 (HTTPS portal redirect (TCP)), 10001 (UBNT discovery broadcasts (UDP))
Docker
ghcr.io/goofball222/unifi
Install with Docker

What is UniFi Docker Container?

UniFi Docker Container packages the Ubiquiti UniFi Network Application into a Docker image for self-hosting. It provides a web-based controller to manage UniFi access points, switches, and gateways. The container runs the UniFi Java application with an embedded MongoDB database (on non-Alpine tags) or can connect to an external MongoDB. It supports multiple base images (Alpine, Debian, Ubuntu) and provides docker-compose examples for both standalone and external database deployments. The project tracks official UniFi releases and beta versions with corresponding Docker tags. Note: UniFi Network 10.6 is the last version that works with older USG gateways and the self-hosted Network Application, per Ubiquiti's announcement.

Should you self-host UniFi Docker Container?

UniFi Docker Container scores 53/100 on selfhost.directory (how scoring works) and ranks #15 of 34 in Network Management. It has 323 GitHub stars.

It shipped 10 stable releases in the past year. The latest, 10.6.106, came out on 27 September 2026. New versions land roughly every 3 weeks.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Apache-2.0-licensed and written mostly in Shell.

Its closest alternative on selfhost.directory is 3x-ui (84/100, 48 772 stars). It scores higher overall, so compare the two before you pick. See UniFi Docker Container vs 3x-ui side by side.

Features

  • Beta and release channels
  • Custom UID/GID
  • Host network mode supportConsidered insecure, use with caution
  • Multiple base images
  • SSL certificate auto-configuration
  • Static release tags

UniFi Docker Container README

How to install UniFi Docker Container

Install UniFi Docker Container with Docker

Environment variables
BIND_PRIV, DEBUG, JVM_EXTRA_OPTS, JVM_INIT_HEAP_SIZE, JVM_MAX_HEAP_SIZE, LOGSTDOUT, PGID, PUID, READENV, RUN_CHOWN, RUNAS_UID0, DB_MONGO_LOCAL, DB_MONGO_URI, STATDB_MONGO_URI, UNIFI_DB_NAME, TZ

$ docker run --name unifi -d
-p 3478:3478/udp -p 8080:8080 -p 8443:8443
-p 8880:8880 -p 8843:8843
ghcr.io/goofball222/unifi

Basic run command with default ports

How to configure UniFi Docker Container

  • BIND_PRIVfalseSet to true to allow UniFi process to bind to container internal ports < 1024

    Set to true to allow UniFi process to bind to container internal ports < 1024

    values: true, false

  • DB_MONGO_LOCALSetting this to false tells UniFi that we're using an external Mongo DB

    Setting this to false tells UniFi that we're using an external Mongo DB

    values: true, false

  • DB_MONGO_URISets the URI that UniFi should connect to for the main configuration database

    Sets the URI that UniFi should connect to for the main configuration database

  • DEBUGfalseSet to true for extra container and UniFi verbosity for debugging

    Set to true for extra container and UniFi verbosity for debugging

    values: true, false

  • JVM_EXTRA_OPTSAny additional custom run flags for the container Java process

    Any additional custom run flags for the container Java process

  • JVM_INIT_HEAP_SIZESets the start and min memory size for the container Java process (-Xms)

    Sets the start and min memory size for the container Java process (-Xms)

  • JVM_MAX_HEAP_SIZE1024MSets the max memory size for the container Java process (-Xmx)

    Sets the max memory size for the container Java process (-Xmx)

  • LOGSTDOUTfalseSet to true to enable the UniFi process log output to STDOUT

    Set to true to enable the UniFi process log output to STDOUT

    values: true, false

  • PGID999Specifies the GID for the container internal unifi group (used for file ownership)

    Specifies the GID for the container internal unifi group (used for file ownership)

  • PUID999Specifies the UID for the container internal unifi user (used for process and file ownership)

    Specifies the UID for the container internal unifi user (used for process and file ownership)

  • READENVtrueSet to false to disable environment variables conversion to UniFi system.properties settings

    Set to false to disable environment variables conversion to UniFi system.properties settings

    values: true, false

  • RUNAS_UID0falseSet to true to force the container to run the Java/Mongo processes as UID=0 (root)

    Set to true to force the container to run the Java/Mongo processes as UID=0 (root)

    values: true, false

  • RUN_CHOWNtrueSet to false to disable the container automatic chown at startup

    Set to false to disable the container automatic chown at startup

    values: true, false

  • STATDB_MONGO_URISets the URI that UniFi should connect to for the statistics database

    Sets the URI that UniFi should connect to for the statistics database

  • TZUTCTimezone for the container

    Timezone for the container

  • UNIFI_DB_NAMESets a database name that can be connected and managed on the external Mongo DB server

    Sets a database name that can be connected and managed on the external Mongo DB server

UniFi Docker Container releases & version history

More in Container Orchestration

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…