Tutorial 6: Instalar y organizar servicios esenciales del homelab

Siete servicios autoalojados para completar tu homelab con Docker Compose: Dozzle, Home Assistant, Node-RED, Homepage, HomeBox, Actual Budget y ntfy.

Estos servicios completan un homelab básico con Docker. Siguen la numeración de la red macvlan después de Portainer y UniFi. Cada uno tiene una base de Docker Compose independiente que puedes desplegar cuando la necesites. Guarda cada archivo como /docker/<servicio>/compose.yaml, despliega cada servicio en su propia carpeta, prueba la conectividad y documenta la IP antes de pasar al siguiente.

Dozzle: visor de logs (192.168.20.12)

Dozzle permite revisar los logs de los contenedores desde el navegador. Es un visor ligero y no sustituye una plataforma de observabilidad.

services:
  dozzle:
    image: amir20/dozzle:latest
    container_name: dozzle
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      docker_macvlan:
        ipv4_address: 192.168.20.12

networks:
  docker_macvlan:
    external: true

Arranca con docker compose up -d y entra en http://192.168.20.12:8080. Limita el acceso a la VLAN Docker o protégelo detrás de tu proxy.

Home Assistant: automatización (192.168.20.13)

Home Assistant centraliza integraciones, escenas y automatizaciones. La configuración se guarda en el directorio ./config.

services:
  home-assistant:
    image: ghcr.io/home-assistant/home-assistant:stable
    container_name: home-assistant
    restart: unless-stopped
    environment:
      - TZ=Europe/Madrid
    volumes:
      - ./config:/config
    ports:
      - "8123:8123"
    networks:
      docker_macvlan:
        ipv4_address: 192.168.20.13

networks:
  docker_macvlan:
    external: true

Arranca con docker compose up -d y abre http://192.168.20.13:8123. Algunas integraciones necesitan mDNS, acceso a dispositivos o una red específica; añade solo los permisos que realmente requieran.

Node-RED: flujos de automatización (192.168.20.14)

Node-RED permite construir flujos visuales para conectar eventos, APIs, MQTT y servicios del homelab. Sus flujos se guardan en ./data.

services:
  node-red:
    image: nodered/node-red:latest
    container_name: node-red
    restart: unless-stopped
    environment:
      - TZ=Europe/Madrid
    volumes:
      - ./data:/data
    ports:
      - "1880:1880"
    networks:
      docker_macvlan:
        ipv4_address: 192.168.20.14

networks:
  docker_macvlan:
    external: true

Arranca con docker compose up -d y entra en http://192.168.20.14:1880. Protege el editor con autenticación antes de permitir acceso fuera de la VLAN Docker.

Homepage: panel de servicios (192.168.20.15)

Homepage muestra enlaces, accesos y widgets de los servicios. Guarda la configuración en ./config y usa variables de entorno para limitar los hosts permitidos.

services:
  homepage:
    image: ghcr.io/gethomepage/homepage:latest
    container_name: homepage
    restart: unless-stopped
    environment:
      - HOMEPAGE_ALLOWED_HOSTS=192.168.20.15:3000
    volumes:
      - ./config:/app/config
    ports:
      - "3000:3000"
    networks:
      docker_macvlan:
        ipv4_address: 192.168.20.15

networks:
  docker_macvlan:
    external: true

Arranca con docker compose up -d y visita http://192.168.20.15:3000. Añade los servicios en los archivos de configuración de Homepage sin incluir tokens ni contraseñas.

HomeBox: inventario (192.168.20.16)

HomeBox sirve para registrar equipos, ubicaciones, garantías y otros elementos físicos del homelab.

services:
  homebox:
    image: ghcr.io/sysadminsmedia/homebox:latest
    container_name: homebox
    restart: unless-stopped
    environment:
      - TZ=Europe/Madrid
    volumes:
      - ./data:/data
    ports:
      - "7745:7745"
    networks:
      docker_macvlan:
        ipv4_address: 192.168.20.16

networks:
  docker_macvlan:
    external: true

Arranca con docker compose up -d y abre http://192.168.20.16:7745. Haz copias del directorio de datos porque contiene la información del inventario.

Actual Budget: finanzas personales (192.168.20.17)

Actual Budget es una aplicación de presupuesto autoalojada. Mantén sus datos en un volumen persistente y no expongas el servicio directamente a Internet.

services:
  actual:
    image: actualbudget/actual-server:latest
    container_name: actual
    restart: unless-stopped
    environment:
      - TZ=Europe/Madrid
    volumes:
      - ./data:/data
    ports:
      - "5006:5006"
    networks:
      docker_macvlan:
        ipv4_address: 192.168.20.17

networks:
  docker_macvlan:
    external: true

Arranca con docker compose up -d y entra en http://192.168.20.17:5006. Protege la sesión y respalda el directorio de datos con especial cuidado.

ntfy: notificaciones (192.168.20.18)

ntfy permite enviar avisos desde scripts y servicios mediante peticiones HTTP. Puedes empezar en modo local y añadir autenticación antes de conectarlo a servicios externos.

services:
  ntfy:
    image: binwiederhier/ntfy:latest
    container_name: ntfy
    restart: unless-stopped
    command: serve
    environment:
      - TZ=Europe/Madrid
    volumes:
      - ./cache:/var/cache/ntfy
      - ./config:/etc/ntfy
    ports:
      - "80:80"
    networks:
      docker_macvlan:
        ipv4_address: 192.168.20.18

networks:
  docker_macvlan:
    external: true

Arranca con docker compose up -d y visita http://192.168.20.18. Define el nombre de los topics y activa la autenticación si los avisos contienen información privada.

Siguiente paso

Cuando tengas estos servicios en marcha, añade monitorización con Grafana y Prometheus para vigilar el consumo de recursos.

Siguiente tutorial: Instalar Home Assistant y Node-RED con Docker

En el tutorial 7 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 *