Unifi Controller

  • When running in docker for adoption to work set interface IP: Settings > Sysytem > Advanced > Inform Host > Override
  • MongoDB version 4 required for CPUs without AVX support (MiniBox)
docker-compose.yml
services:
  mongodb:
    image: docker.io/mongo:4
    container_name: unifi-mongodb
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=xxxxxx
      - MONGO_USER=unifi_user
      - MONGO_PASS=yyyyyy
      - MONGO_DBNAME=unifi_db
      - MONGO_AUTHSOURCE=admin
    volumes:
      - ./vol-mongodb:/data/db
      - ./init.mongodb:/docker-entrypoint-initdb.d/init-mongo.sh:ro
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "1"
    restart: unless-stopped
 
  unifi:
    image: lscr.io/linuxserver/unifi-network-application:9.0.114
    container_name: unifi-app
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
      - MONGO_USER=unifi_user
      - MONGO_PASS=yyyyyy
      - MONGO_HOST=mongodb
      - MONGO_PORT=27017
      - MONGO_DBNAME=unifi_db
      - MONGO_AUTHSOURCE=admin
      - MEM_LIMIT=1024
      - MEM_STARTUP=1024
    volumes:
      - ./vol-unifi:/config
    ports:
      - 8443:8443
      - 3478:3478/udp
      - 10001:10001/udp
      - 8080:8080
    logging:
      driver: "json-file"
      options:
        max-size: "50m"
        max-file: "1"
    restart: unless-stopped
init.mongodb
#!/bin/bash
 
if which mongosh > /dev/null 2>&1; then
  mongo_init_bin='mongosh'
else
  mongo_init_bin='mongo'
fi
"${mongo_init_bin}" <<EOF
use ${MONGO_AUTHSOURCE}
db.auth("${MONGO_INITDB_ROOT_USERNAME}", "${MONGO_INITDB_ROOT_PASSWORD}")
db.createUser({
  user: "${MONGO_USER}",
  pwd: "${MONGO_PASS}",
  roles: [
    { db: "${MONGO_DBNAME}", role: "dbOwner" },
    { db: "${MONGO_DBNAME}_stat", role: "dbOwner" }
  ]
})
EOF
Navigation
Print/export
QR Code
QR Code wiki:docker-compose-unifi (generated for current page)