This is an old revision of the document!
Docker Compose
- 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