Tutorial 8: Instalar UniFi Network Application con Docker Compose

Despliega UniFi Network Application con Docker Compose, MongoDB separado y una IP propia en la red macvlan de tu VLAN Docker.

UniFi Network Application es el controlador que gestiona tus switches, puntos de acceso y demás dispositivos UniFi. En esta guía lo desplegamos con Docker Compose sobre la red macvlan, con la base de datos MongoDB separada de la aplicación.

Requisitos

  • Docker y Docker Compose instalados.
  • La red docker_macvlan creada, con la IP 192.168.20.11 reservada para UniFi (valores de ejemplo).
  • Imágenes compatibles con la arquitectura de tu equipo (por ejemplo, ARM64 en una Raspberry Pi).

1. Crea la carpeta y el archivo Compose

Este ejemplo separa la base de datos MongoDB de la aplicación. Guarda el archivo como /docker/unifi/compose.yaml y revisa la compatibilidad de las imágenes antes de desplegar:

services:
  unifi-db:
    image: mongo:4.4
    container_name: unifi-db
    restart: unless-stopped
    command: --wiredTigerCacheSizeGB 0.25
    volumes:
      - ./db:/data/db

  unifi-network-application:
    image: lscr.io/linuxserver/unifi-network-application:latest
    container_name: unifi-network-application
    restart: unless-stopped
    depends_on:
      - unifi-db
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Madrid
      - MONGO_USER=unifi
      - MONGO_PASS=CAMBIA_ESTA_CONTRASEÑA
      - MONGO_HOST=unifi-db
      - MONGO_PORT=27017
      - MONGO_DBNAME=unifi
      - MEM_LIMIT=1024
      - MEM_STARTUP=1024
    volumes:
      - ./app:/config
    ports:
      - "8443:8443"
      - "8080:8080"
      - "3478:3478/udp"
    networks:
      docker_macvlan:
        ipv4_address: 192.168.20.11

networks:
  docker_macvlan:
    external: true

2. Arranca y comprueba el servicio

Antes de arrancar, cambia la contraseña de ejemplo y confirma los puertos que necesita tu versión. Después ejecuta:

cd /docker/unifi
docker compose up -d
docker compose logs -f unifi-network-application

Cuando el arranque termine, entra en https://192.168.20.11:8443 y completa el asistente inicial.

Si la aplicación no conecta con MongoDB

Si el controlador requiere que la base de datos y la aplicación compartan una red interna, mantén la red Compose predeterminada para MongoDB y conecta la aplicación también a esa red, además de la macvlan. Recuerda que la base de datos no necesita una IP propia en la VLAN.

Buenas prácticas

  • Restringe el acceso al controlador a la VLAN de gestión, tal y como se explica en la guía de firewall con VLANs.
  • Haz copia de los directorios ./db y ./app antes de actualizar.
  • Actualiza de forma controlada con docker compose pull y docker compose up -d.

Siguiente tutorial: Monitorizar tu homelab con Grafana, Prometheus, cAdvisor y Node Exporter

En el tutorial 9 continuaremos la ruta de Docker y servicios paso a paso.

Pasa al siguiente tutorial →

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *