NetbootXYZ

Enlaces
Your favorite operating systems in one place! | netboot.xyz
Requisitos
- Docker o Podman instalado siguiendo los pasos de instalar
- Portainer configurado siguiendo los pasos de instalar portainer.
- NGINX Proxy manager siguiendo los pasos de instalar NGINX Proxy Manager. (opcional)
- Traefik configurado siguiendo los pasos de instalar Traefik. (opcional)
Imagen
Repositorio de Docker Hub: https://hub.docker.com/r/linuxserver/netbootxyz
Portainer- Nuevo «stack»
Add a new stack – Portainer Documentation
Web editor
En Portainer «Stack» agregamos nuevo usando el editor WEB pegando el contenido del fichero «docker-compose.yml» y el contenido del fichero de variables
Fichero de variables «.env»
TZ=Europe/Madrid
PUID=1000
PGID=1000
PORT_RANGE=30000:30010 #optional
SUBFOLDER=/ #optional
Fichero docker-compose
services:
netbootxyz:
image: linuxserver/netbootxyz
container_name: netbootxyz
restart: unless-stopped
env_file: stack.env
volumes:
- config:/config
- assets:/assets
ports:
- 69:69/udp #tftp port
- 8080:80 #WinPE files
- 3000:3000
networks:
- proxy
volumes:
config:
assets:
networks:
proxy:
external: true
En este punto ya puedes acceder a webapp en http://my.docker.ip.address:3000
Arranque desde TFTP
Utilizar netboot.xyz en la RED, es relativamente fácil de configurar. Permitirá que todos los dispositivos de la red tengan netboot.xyz disponible, seleccionando el arranque en red en BIOS o seleccionando manualmente el dispositivo que desea arrancar.
Configuración del servidor DHCP
Deberá configurar el servidor DHCP para que proporcione algunos parametros como un "next server", la dirección de un servidor TFTP en su red, y un "nombre de archivo", el archivo de arranque netboot.xyz. Cuando los clientes se inicien, si están configurados para iniciarse en red, obtendrán automáticamente una dirección DHCP válida, abrirán el gestor de arranque iPXE netboot.xyz y cargarán el menú del sistema operativo.
Ejemplo de configuración de las opciones DHCP en un servidor pfSense

Publicando webapp detrás de un proxy
Crear registro DNS
En el proveedor que aloja el servidor DNS público, crear un registro DNS que resuelva la IP pública que llega al Proxy hacia un nombre del estilo "netbooxyz.domain.com"
NGINX proxy
Para publicar el contenedor detrás de NGINX proxy, como el stack está en la red proxy solo deberás crear un nuevo host
Crear un nuevo "proxy host"
Añade un nuevo proxy host con el nombre de dominio creado en el paso anterior redirigido hacia el nombre del contenedor y el puerto que use en este caso 3000:

Traefik

Para publicar el contenedor detrás del proxy Traefik, deberás añadir al fichero docker-compose.yaml las siguientes etiquetas al servicio netbootxyz
labels:
- traefik.enable=true
- traefik.http.routers.netbootxyz.rule=Host(`netboot.$DOMAIN`)
- traefik.http.routers.netbootxyz.tls=true
- traefik.http.routers.netbootxyz.tls.certresolver=letsencrypt
- traefik.http.services.netbootxyz.loadbalancer.server.port=3000
Solo IPs Privadas
Para permitir el acceso solo desde redes privadas, modifica en la sección de «labels» del fichero docker-compose.yml, para añadir la siguiente linea y configurar el «middleware» «privateIPs@file»
- traefik.http.routers.netbootxyz.middlewares=privateIPs@file
