Skip to content

Configuracion para crear servidor en ubuntu con Docker y Portainer para los servicios de Ubiquiti como UISP (UNMS) y UniFi Controller.)

Notifications You must be signed in to change notification settings

Bl4ck0z/Ubiquiti-Services-Server-USVR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

USVR: Guía Detallada para Configurar Servicios de Ubiquiti UISP y Unifi Network Application en Docker

Objetivo:

Proporcionar una guía detallada para configurar y ejecutar eficientemente los servicios de Ubiquiti UISP (UNMS) y Unifi Network Application en Docker.

Contenido de la Guía:

  1. Instalación de Docker y Portainer Agent.
  2. Configuración de Direcciones IP Estáticas.
  3. Creación de Directorios Esenciales.
  4. Configuración de los Conectenedores.

NETPLAN CONFIG

La configuración de Netplan es crucial para el funcionamiento adecuado de UISP (UNMS) y para aislar los equipos administrados a través de este sistema, evitando su accesibilidad para usuarios no autorizados y garantizando su administración exclusiva desde UISP (UNMS). Aunque es posible asignar la IP secundaria a una PC conectada a la misma red que el equipo de Ubiquiti para acceder a su configuración, esto no se recomienda debido a posibles conflictos de IP y otros problemas. Siempre es preferible administrar los equipos directamente desde UISP (UNMS).

COMANDO NECESARIOS:

sudo netplan generate
sudo cd /etc/netplan/
sudo nano 00-installer-config.yaml

CONFIGURACION:

network:
  version: 2
  ethernets:
    eth0:  # NOMBRE DE LA INTERFAZ ETHERNET
      dhcp4: no  # DESHABILITAR DHCP PARA IPv4
      addresses: # DIRECCIONES IP ESTÁTICAS ASIGNADAS A eth0
        - 10.0.0.20/24 #IP PRIMARIA
        - 192.168.15.20/24 #IP SECUNDARIA UISP (UNMS)
      gateway4: 10.0.0.1  # PUERTA DE ENLACE IPv4 POR DEFECTO
      nameservers: # CONFIGURACIÓN DE SERVIDORES DNS
        addresses:  # DIRECCIONES IP DE SERVIDORES DNS
          - 1.1.1.1  # DNS de Cloudflare
          - 10.0.0.1 # Servidor DNS local

INSTALACIÓN DE DOCKER ENGINE

Esta configuración sigue la misma estructura que la documentación oficial de Docker Engine. Si necesitas información adicional o simplemente prefieres seguir la guía original, te recomiendo consultarla directamente Link. Los pasos que se presentan aquí están simplificados para garantizar que Docker funcione correctamente desde el primer intento y sin enfrentar problemas.

AGREGAR GPG KEY OFICIAL:

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

AGREGAR EL REPOSITORIO:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

INSTALAR DOCKER:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

GESTIONAR COMO USUARIO NO-ROOT:

sudo groupadd docker
sudo usermod -aG docker $USER #NOMBRE DE USUARIO
sudo newgrp docker
docker run hello-world

INSTALAR PORTAINER

Portainer ofrece dos tipos de instalación: Portainer Server y Portainer Agent. En este caso, nos enfocaremos en la instalación del Portainer Agent. Si estás interesado en instalar el Portainer Server, te recomiendo que consultes la documentación oficial Link.

EJECUTAR EL COMANDO PARA DESPLEGAR EL AGENTE PORTAINER

docker run -d 
-p 9001:9001 --name portainer_agent --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
portainer/agent:latest

UBIQUITI UISP (UNMS) DOCKER

UISP puede ser fácil de instalar cuando se encuentra en su propio servidor con una IP asignada, pero puede complicarse al integrarlo con otros servicios en un mismo servidor, como en este caso. La instalación se realiza a través de un enlace proporcionado por Ubiquiti, lo que limita las opciones de configuración a cambios de puertos o indicar que trabajará con reverse proxy. Esta dualidad lo hace tanto complejo como sencillo de manejar.

El objetivo principal es proporcionar dos métodos de instalación para UISP que no generen conflictos con Unifi Network Application. En ambos casos, es crucial ajustar los puertos de UISP para evitar interferencias con otros servicios.

MÉTODO 1: INSTALACIÓN BÁSICA

curl -fsSL https://uisp.ui.com/install > /tmp/uisp_inst.sh && sudo bash /tmp/uisp_inst.sh --http-port 7080 --https-port 7443

MÉTODO 2: INSTALACIÓN CON REVERSE PROXY

curl -fsSL https://uisp.ui.com/install > /tmp/uisp_inst.sh && sudo bash /tmp/uisp_inst.sh --public-https-port 443 --http-port 7080 --https-port 7443

En ambos casos de utilizaron los puertos HTTP 7080 y HTTPS 7443, es recomendable tener en cuenta para cuando se generan los links para agregar los dispositive cambiarlos ya que UISP por defecto siempre asigna el puerto 443 y esto puede generar conflicto en la adopcion de los dispisitivos que arremos agregar

Link que nos genero UISP: wss://192.168.99.54:443+65465456454645687vh4hghjgfh

Link con el puerto corregido: wss://192.168.99.54:7443+65465456454645687vh4hghjgfh


UBIQUITI UNIFI NETWORK APPLICATION EN DOCKER

La instalación de Unifi Network Application en Docker puede ser un proceso algo complejo debido a la necesidad de crear dos contenedores para su funcionamiento, así como también la configuración de directorios específicos. Muchos proyectos relacionados con la instalación de Unifi en Docker están archivados, lo que puede dificultar su localización y configuración inicial.

CREAR DIRECTORIOS NECESARIOS PARA LOS CONTENEDORES

sudo cd /srv
sudo mkdir docker_data
sudo cd docker_data
sudo mkdir Unifi-Server
sudo mkdir unifi-db
sudo cd unifi-db

CREAR Y EDITAR EL ARCHIVO init-mongo.js

sudo nano init-mongo.js
db.getSiblingDB("unifi").createUser({user: "unifi", pwd: "mSufJpHZH", roles: [{role: "dbOwner", db: "unifi"}]});
db.getSiblingDB("unifi_stat").createUser({user: "unifi", pwd: "mSufJpHZH", roles: [{role: "dbOwner", db: "unifi_stat"}]});
sudo cat init-mongo.js

DOCKER COMPOSE FILE PARA LOS CONTENEDORES

Luego haber completado los pasos anteriores correctamente, especialmente la creación del archivo init-mongo.js, ya que cualquier error en este archivo puede generar conflictos y requerir iniciar el proceso nuevamente eliminando el archivo init-mongo.js creado previamente.

CREACION DEL ARCHIVO YAML

sudo cd /srv/docker_data
sudo nano unifi-compose.yaml
---
services: # DEFINE LOS SERVICIOS A EJECUTAR
  unifi-network-application: # NOMBRE DEL SERVICIO
    image: lscr.io/linuxserver/unifi-network-application:latest # IMAGEN A UTILIZAR
    container_name: unifi-network-application # NOMBRE PARA EL CONTENEDOR
    environment: # VARIABLES DE ENTORNO
      - PUID=1000 # ID DE USUARIO
      - PGID=1000 # ID DE GRUPO
      - TZ=America/Santo_Domingo # ZONA HORARIA
      - MONGO_USER=unifi # USUARIO
      - MONGO_PASS=mSufJpHZH # CONTRASEÑA
      - MONGO_HOST=unifi-db # HOST
      - MONGO_PORT=27017 # PUERTO
      - MONGO_DBNAME=unifi # NOMBRE DE LA BASE DE DATOS
      - MEM_LIMIT=1024 # LIMITE DE MEMORIA
      - MEM_STARTUP=1024 # MEMORIA ASIGNADA AL INICIAR
    volumes: # VOLUMENES A MONTAR
      - /srv/USVR-Docker/Unifi-Server/data:/config # MAPEO DE DIRECTORIO DEL HOST AL CONTENEDOR
    ports: # PUERTOS A UTILIZAR
      - 8443:8443 # HTTPS
      - 8080:8080 # HTTP
      - 3478:3478/udp # SERVICIO STUN
      - 10001:10001/udp # DESCUBRIMIENTO DE UNIFI AP
      - 1900:1900/udp # DLNA
      - 6789:6789 # PRUEBA DE VELOCIDAD MÓVIL
      - 5514:5514/udp # PUERTO ADICIONAL
    restart: unless-stopped # POLÍTICA DE REINICIO

  unifi-db: # NOMBRE DEL SERVICIO
    image: docker.io/mongo:4.4 # IMAGEN A UTILIZAR
    container_name: unifi-db # NOMBRE PARA EL CONTENEDOR
    volumes: # VOLUMENES A MONTAR
      - /srv/USVR-Docker/unifi-db/data:/data/db # PERSISTENCIA DE DATOS
      - /srv/USVR-Docker/unifi-db/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro # INICIALIZACIÓN
    restart: unless-stopped # POLITICA DE REINICIO
docker compose up

About

Configuracion para crear servidor en ubuntu con Docker y Portainer para los servicios de Ubiquiti como UISP (UNMS) y UniFi Controller.)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published