services: << service_name >>: image: lscr.io/linuxserver/unifi-network-application:latest container_name: << service_name >> environment: - PUID=<< puid >> - PGID=<< pgid >> - TZ=<< timezone >> - MONGO_USER=unifi - MONGO_PASS=<< mongo_password >> - MONGO_HOST=<< service_name >>-mongo - MONGO_PORT=27017 - MONGO_DBNAME=unifi - MONGO_AUTHSOURCE=admin volumes: - << appdata_dir >>/<< service_name >>/config:/config ports: - "<< port_ui >>:8443" - "<< port_inform >>:8080" - "<< port_stun >>:3478/udp" - "<< port_discovery >>:10001/udp" depends_on: << service_name >>-mongo: condition: service_healthy << service_name >>-mongo-init: condition: service_completed_successfully restart: unless-stopped << service_name >>-mongo: image: mongo:4.4.29 container_name: << service_name >>-mongo environment: - MONGO_INITDB_ROOT_USERNAME=root - MONGO_INITDB_ROOT_PASSWORD=<< mongo_password >> - MONGO_USER=unifi - MONGO_PASS=<< mongo_password >> - MONGO_DBNAME=unifi - MONGO_AUTHSOURCE=admin volumes: - << service_name >>_mongodata:/data/db - ./init-mongo.sh:/docker-entrypoint-initdb.d/init-mongo.sh:ro healthcheck: test: - CMD-SHELL - 'mongo --quiet --username root --password "$${MONGO_INITDB_ROOT_PASSWORD}" --authenticationDatabase admin --eval "db.adminCommand({ ping: 1 })"' interval: 10s timeout: 5s retries: 12 start_period: 30s restart: unless-stopped << service_name >>-mongo-init: image: mongo:4.4.29 container_name: << service_name >>-mongo-init environment: - MONGO_INITDB_ROOT_USERNAME=root - MONGO_INITDB_ROOT_PASSWORD=<< mongo_password >> - MONGO_USER=unifi - MONGO_PASS=<< mongo_password >> - MONGO_HOST=<< service_name >>-mongo - MONGO_PORT=27017 - MONGO_DBNAME=unifi - MONGO_AUTHSOURCE=admin volumes: - ./init-mongo.sh:/init-mongo.sh:ro entrypoint: ["/bin/bash", "/init-mongo.sh"] depends_on: << service_name >>-mongo: condition: service_healthy restart: "no" volumes: << service_name >>_mongodata: