Añadir configuración completa de Heimdall con NPM
This commit is contained in:
303
README.md
303
README.md
@@ -1,2 +1,303 @@
|
||||
# heimdall
|
||||
# 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**: `heimdall` con la imagen `lscr.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 archivos
|
||||
- `TZ=Europe/Madrid`: Zona horaria
|
||||
|
||||
## Pasos de despliegue
|
||||
|
||||
### Opción 1: Docker Compose (Línea de comandos)
|
||||
|
||||
#### 1. Clonar el repositorio
|
||||
|
||||
```bash
|
||||
git clone https://git.ictiberia.com/groales/heimdall
|
||||
cd heimdall
|
||||
```
|
||||
|
||||
#### 2. Levantar el stack
|
||||
|
||||
```bash
|
||||
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`
|
||||
- O **Web editor**: Pegar contenido de `docker-compose.yml`
|
||||
- **Deploy the stack**
|
||||
|
||||
#### 2. Verificar despliegue
|
||||
|
||||
**Stacks** → `heimdall` → Ver logs del contenedor
|
||||
|
||||
### 3. Verificar el estado
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
1. Click en **icono de llave** (esquina superior derecha) para editar
|
||||
2. Click en **Add Application**
|
||||
3. 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
|
||||
4. **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
|
||||
|
||||
1. Click en **icono de llave** → **Settings**
|
||||
2. **Theme**: Seleccionar tema (Classic, Dark, etc.)
|
||||
3. **Save**
|
||||
|
||||
### Cambiar fondo
|
||||
|
||||
1. **Settings** → **Background image**
|
||||
2. Subir imagen o usar URL
|
||||
3. **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`:
|
||||
|
||||
```yaml
|
||||
ports:
|
||||
- "9080:80" # HTTP en puerto 9080
|
||||
- "9443:443" # HTTPS en puerto 9443
|
||||
```
|
||||
|
||||
### Variables de entorno
|
||||
|
||||
Ajusta PUID/PGID según tu sistema:
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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:
|
||||
|
||||
```bash
|
||||
# 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:
|
||||
|
||||
```bash
|
||||
docker volume inspect heimdall_config
|
||||
docker exec heimdall ls -la /config
|
||||
```
|
||||
|
||||
## Actualización
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
- 📘 [Documentación LinuxServer.io](https://docs.linuxserver.io/images/docker-heimdall)
|
||||
- 🐙 [GitHub - Heimdall](https://github.com/linuxserver/Heimdall)
|
||||
- 💬 [Comunidad LinuxServer.io](https://discord.gg/YWrKVTn)
|
||||
- 🐳 [Docker Hub](https://hub.docker.com/r/linuxserver/heimdall)
|
||||
|
||||
## Seguridad
|
||||
|
||||
### Recomendaciones
|
||||
|
||||
1. ✅ **Usar NPM con SSL** para acceso seguro por dominio
|
||||
2. ✅ **Restringir acceso** al puerto 8080 con firewall (si no usas proxy)
|
||||
3. ✅ **Backup periódico** del volumen `heimdall_config`
|
||||
4. ✅ **Actualizar regularmente** con `docker compose pull && docker compose up -d`
|
||||
5. ✅ **Usar contraseñas fuertes** si habilitas autenticación
|
||||
|
||||
### Proteger con Access List (NPM)
|
||||
|
||||
En NPM, crea una Access List para restringir acceso:
|
||||
|
||||
1. **Access Lists** → **Add Access List**
|
||||
2. **Name**: `Red local`
|
||||
3. **Access** → **Allow** → IPs permitidas (ej: `192.168.1.0/24`)
|
||||
4. **Access** → **Deny** → `0.0.0.0/0`
|
||||
5. Aplicar al Proxy Host de Heimdall
|
||||
|
||||
---
|
||||
|
||||
**Versión**: Latest (imagen LinuxServer.io rolling)
|
||||
**Última actualización**: Diciembre 2025
|
||||
|
||||
Reference in New Issue
Block a user