Saltar a contenido

Docker en el homelab

Visión general

Todos los servicios del homelab se ejecutan como contenedores Docker. Esta página documenta el estándar de despliegue y operación.

Estándar de despliegue

Cada servicio Docker debe vivir en /opt/nombre-servicio/ con la siguiente estructura:

/opt/nombre-servicio/
├── compose.yml
├── .env
├── data/
└── README.md

Archivos

Archivo Propósito
compose.yml Definición del servicio (prefijo aegis- si es automatización)
.env Variables de entorno (no incluir en Git)
data/ Volumen local de datos persistentes
README.md Documentación operativa del servicio

Comandos estándar

# Ingresar al directorio del servicio
cd /opt/nombre-servicio

# Actualizar imagen
docker compose pull

# Iniciar servicio
docker compose up -d

# Ver estado
docker compose ps

# Ver logs
docker compose logs -f

# Limpiar imágenes antiguas
docker image prune -f

Redes Docker

  • Servicios expuestos al exterior: red proxy (Nginx Proxy Manager)
  • Servicios internos: red internal (solo comunicación entre servicios)
  • Servicios Aegis: red aegis-net

Servicios activos

Servicio Puerto Ruta Scheduling
Jellyfin 8096 /opt/jellyfin/ compose.yml
Sonarr 8989 /opt/sonarr/ compose.yml
Radarr 7878 /opt/radarr/ compose.yml
Qbittorrent 8080 /opt/qbittorrent/ compose.yml
Uptime Kuma 3001 /opt/uptime-kuma/ compose.yml
Nginx Proxy Manager 80/443 /opt/nginx-proxy/ compose.yml

Buenas prácticas

  • Usar siempre docker compose (nunca docker-compose).
  • Los contenedores Aegis usan prefijo aegis-.
  • No ejecutar comandos interactivos en contenedores en producción.
  • Las imágenes se actualizan semanalmente.
  • Los volúmenes Docker se respaldan en PBS.

Troubleshooting

  • Verificar que Docker esté activo: systemctl status docker
  • Revisar logs del contenedor específico: docker compose logs -f servicio
  • Verificar puertos ocupados: ss -tlnp
  • Forzar recreación: docker compose up -d --force-recreate