7.2 KiB
Infraestructura: Heimdall
Heimdall Application Dashboard — Despliegue con Docker Compose
Este repositorio proporciona una forma sencilla de desplegar Heimdall usando Docker Compose, siguiendo las recomendaciones de LinuxServer.io.
¿Qué es Heimdall?
Heimdall es un dashboard elegante y minimalista para organizar todos tus servicios web en un solo lugar. Ideal para:
- 🏠 Dashboard de servicios - Organiza accesos a todas tus aplicaciones
- 🎨 Personalizable - Temas, iconos y colores configurables
- 🔍 Búsqueda integrada - Acceso rápido a servicios
- 📱 Responsive - Funciona en móvil, tablet y escritorio
- 🔌 Enhanced apps - Widgets con información en tiempo real
Requisitos
- Docker y Docker Compose instalados en el host
- Puertos 80/443 disponibles (o usar puertos alternativos)
- (Opcional) NPM desplegado para acceso con dominio y SSL
Qué incluye este stack
- Servicio:
heimdallcon la imagenlscr.io/linuxserver/heimdall:latest - Puertos:
8080: HTTP (interfaz web)8443: HTTPS (certificado autofirmado)
- Volúmenes:
heimdall_config: Configuración y base de datos
- Red:
proxy(compartida con NPM/Traefik) - Variables de entorno:
PUID=1000/PGID=1000: Usuario/grupo para permisos de archivosTZ=Europe/Madrid: Zona horaria
Pasos de despliegue
Opción 1: Docker Compose (Línea de comandos)
1. Clonar el repositorio
git clone https://git.ictiberia.com/groales/heimdall
cd heimdall
2. Levantar el stack
docker compose up -d
Opción 2: Desplegar desde Portainer (Recomendado)
1. Desplegar stack de Heimdall
Stacks → Add stack
- Name:
heimdall - Build method:
- Git Repository:
- Repository URL:
https://git.ictiberia.com/groales/heimdall - Repository reference:
refs/heads/main - Compose path:
docker-compose.yml
- Repository URL:
- O Web editor: Pegar contenido de
docker-compose.yml
- Git Repository:
- Deploy the stack
2. Verificar despliegue
Stacks → heimdall → Ver logs del contenedor
3. Verificar el estado
docker ps --filter name=heimdall
4. Acceder a la interfaz
Abre tu navegador en:
- HTTP:
http://IP-del-servidor:8080 - HTTPS:
https://IP-del-servidor:8443(certificado autofirmado)
Configuración inicial
Al primer acceso, Heimdall muestra una interfaz vacía. Para añadir aplicaciones:
- Click en icono de llave (esquina superior derecha) para editar
- Click en Add Application
- Rellenar detalles:
- Application name: Nombre del servicio
- Colour: Color del icono
- Icon: Buscar icono o usar URL personalizada
- URL: Dirección completa (ej:
https://portainer.tudominio.com) - Description: Descripción opcional
- Save
Enhanced Apps
Heimdall soporta widgets especiales para apps populares:
- Plex - Muestra streams activos
- Sonarr/Radarr - Próximos estrenos
- SABnzbd/NZBGet - Estado de descargas
- Pihole - Estadísticas de bloqueo
Para habilitar:
- Marcar Enable en la aplicación
- Proporcionar API Key del servicio
- Configurar Enhanced options
Integración con NGINX Proxy Manager
1. Conectar a red proxy
La red proxy se crea automáticamente al desplegar el stack (compartida con NPM).
2. Configurar Proxy Host en NPM
Accede a NPM (puerto 81) y crea un Proxy Host:
Pestaña Details:
- Domain Names:
heimdall.tudominio.com - Scheme:
http - Forward Hostname / IP:
heimdall(nombre del contenedor) - Forward Port:
80 - Cache Assets: ✅
- Block Common Exploits: ✅
- Websockets Support: ❌
Pestaña SSL:
- ✅ Request a new SSL Certificate
- ✅ Force SSL
- ✅ HTTP/2 Support
- Email:
tu@email.com - ✅ I Agree to Let's Encrypt ToS
Save y accede a: https://heimdall.tudominio.com 🎉
Personalización
Cambiar tema
- Click en icono de llave → Settings
- Theme: Seleccionar tema (Classic, Dark, etc.)
- Save
Cambiar fondo
- Settings → Background image
- Subir imagen o usar URL
- Save
Organizar aplicaciones
En modo edición:
- Drag & drop para reordenar
- Click en engranaje de cada app para editar/eliminar
- Crear Tags para agrupar aplicaciones
Cambiar puertos
Si los puertos 8080/8443 están ocupados, edita docker-compose.yml:
ports:
- "9080:80" # HTTP en puerto 9080
- "9443:443" # HTTPS en puerto 9443
Variables de entorno
Ajusta PUID/PGID según tu sistema:
# Ver tu UID/GID
id
# Actualizar en docker-compose.yml
PUID: 1000 # Tu UID
PGID: 1000 # Tu GID
Backup y Restauración
Backup del volumen
docker run --rm \
-v heimdall_config:/config \
-v $(pwd):/backup \
alpine tar czf /backup/heimdall-config-$(date +%Y%m%d-%H%M%S).tar.gz -C /config .
Restaurar backup
# Detener Heimdall
docker compose down
# Restaurar
docker run --rm \
-v heimdall_config:/config \
-v $(pwd):/backup \
alpine tar xzf /backup/heimdall-config-YYYYMMDD-HHMMSS.tar.gz -C /config
# Iniciar Heimdall
docker compose up -d
Solución de problemas
Puerto ocupado
# Ver qué proceso usa el puerto
Get-NetTCPConnection -LocalPort 8080
# o en Linux
sudo netstat -tulpn | grep :8080
# Cambiar puerto en docker-compose.yml
ports:
- "9080:80"
Contenedor no arranca
# Ver logs
docker logs heimdall
# Verificar permisos del volumen
docker exec heimdall ls -la /config
Error de permisos
Si ves errores de permisos en logs:
# Verificar PUID/PGID
id
# Actualizar docker-compose.yml con tus valores
# Recrear contenedor
docker compose down
docker compose up -d
Aplicaciones no se guardan
Verifica que el volumen está montado correctamente:
docker volume inspect heimdall_config
docker exec heimdall ls -la /config
Actualización
# Pull nueva imagen
docker compose pull
# Reiniciar con nueva versión
docker compose up -d
# Ver logs
docker logs -f heimdall
Heimdall mantiene la configuración entre actualizaciones (volumen persistente).
Recursos oficiales
Seguridad
Recomendaciones
- ✅ Usar NPM con SSL para acceso seguro por dominio
- ✅ Restringir acceso al puerto 8080 con firewall (si no usas proxy)
- ✅ Backup periódico del volumen
heimdall_config - ✅ Actualizar regularmente con
docker compose pull && docker compose up -d - ✅ Usar contraseñas fuertes si habilitas autenticación
Proteger con Access List (NPM)
En NPM, crea una Access List para restringir acceso:
- Access Lists → Add Access List
- Name:
Red local - Access → Allow → IPs permitidas (ej:
192.168.1.0/24) - Access → Deny →
0.0.0.0/0 - Aplicar al Proxy Host de Heimdall
Versión: Latest (imagen LinuxServer.io rolling)
Última actualización: Diciembre 2025