20 ธันวาคม 2568

Unifi Network Application docker compose

 name: unifi-network-application
services:
  unifi-db:
    container_name: unifi-db
    image: docker.io/mongo:8.0
    configs:
      - source: init-mongo.js
        target: /docker-entrypoint-initdb.d/init-mongo.js
    environment:
      - PGID=1000
      - PUID=1000
      - TZ=Asia/Bangkok
    restart: unless-stopped
    volumes:
      - type: bind
        source: ./unifi-db
        target: /data/db
    networks:
     - unifi-bridge
    privileged: false
  unifi-network-application:
    container_name: unifi-network-application
    depends_on:
      unifi-db:
        condition: service_started
        required: true
    environment:
      - MONGO_DBNAME=unifi-db
      - MONGO_HOST=unifi-db
      - MONGO_PASS=pass
      - MONGO_PORT=27017
      - MONGO_USER=unifi
      - PGID=1000
      - PUID=1000
      - TZ=Asia/Bangkok
    image: lscr.io/linuxserver/unifi-network-application:latest
    ports:
      - target: 8443
        published: "8443"
        protocol: tcp
      - target: 3478
        published: "3478"
        protocol: udp
      - target: 10001
        published: "10001"
        protocol: udp
      - target: 8080
        published: "8080"
        protocol: tcp
      - target: 1900 #optional
        published: "1900"
        protocol: udp
      - target: 8843 #optional
        published: "8843"
        protocol: tcp
      - target: 8880 #optional
        published: "8880"
        protocol: tcp
      - target: 6789 #optional
        published: "6789"
        protocol: tcp
      - target: 5514 #optional
        published: "5514"
        protocol: udp
    restart: unless-stopped
    volumes:
      - type: bind
        source: ./unifi-network-application
        target: /config
    networks:
     - unifi-bridge
    privileged: false

networks:
  unifi-bridge:
    driver: bridge

configs:
  init-mongo.js:
    content: |
      db.getSiblingDB("unifi-db").createUser({user: "unifi", pwd: "pass", roles: [{role: "dbOwner", db: "unifi-db"}]}); 
      db.getSiblingDB("unifi-db_stat").createUser({user: "unifi", pwd: "pass", roles: [{role: "dbOwner", db: "unifi-db_stat"}]});


P.S. Override inform host with host ip
UniFi Devices -> Device Updates and Settings -> Inform Host Override