Invertir lógica: base sin puertos, override standalone para acceso directo

This commit is contained in:
2025-12-03 11:06:01 +01:00
parent eeff4b6766
commit e7bb47ecda
5 changed files with 69 additions and 23 deletions

View File

@@ -23,16 +23,15 @@ Heimdall es un dashboard elegante y minimalista para organizar todos tus servici
## Qué incluye este stack ## Qué incluye este stack
- **Servicio**: `heimdall` con la imagen `lscr.io/linuxserver/heimdall:latest` - **Servicio**: `heimdall` con la imagen `lscr.io/linuxserver/heimdall:latest`
- **Puertos**:
- `8080`: HTTP (interfaz web)
- `8443`: HTTPS (certificado autofirmado)
- **Volúmenes**: - **Volúmenes**:
- `heimdall_config`: Configuración y base de datos - `heimdall_config`: Configuración y base de datos
- **Variables de entorno**: - **Variables de entorno**:
- `PUID=1000` / `PGID=1000`: Usuario/grupo para permisos de archivos - `PUID=1000` / `PGID=1000`: Usuario/grupo para permisos de archivos
- `TZ=Europe/Madrid`: Zona horaria - `TZ=Europe/Madrid`: Zona horaria
**Nota**: La configuración base no incluye integración con proxy inverso. Usa los archivos override para conectar con Traefik o NPM. **⚠️ IMPORTANTE**: El `docker-compose.yml` base **NO publica puertos** por seguridad. Para acceder a Heimdall:
- **Con proxy** (recomendado): Usa archivos override para Traefik o NPM
- **Sin proxy** (acceso directo): Usa `docker-compose.override.standalone.yml.example`
## Pasos de despliegue ## Pasos de despliegue
@@ -61,9 +60,10 @@ docker compose up -d
- **Repository URL**: `https://git.ictiberia.com/groales/heimdall` - **Repository URL**: `https://git.ictiberia.com/groales/heimdall`
- **Repository reference**: `refs/heads/main` - **Repository reference**: `refs/heads/main`
- **Compose path**: `docker-compose.yml` - **Compose path**: `docker-compose.yml`
- **Additional paths** (opcional): - **Additional paths** (según modo de acceso):
- Para Traefik: `docker-compose.override.traefik.yml.example` - Para Traefik: `docker-compose.override.traefik.yml.example`
- Para NPM: `docker-compose.override.npm.yml.example` - Para NPM: `docker-compose.override.npm.yml.example`
- Para acceso directo IP:puerto: `docker-compose.override.standalone.yml.example`
- **Deploy the stack** - **Deploy the stack**
**Nota**: Si usas **Additional paths**, no necesitas copiar el archivo a `.override.yml`. Portainer fusiona automáticamente los archivos especificados. **Nota**: Si usas **Additional paths**, no necesitas copiar el archivo a `.override.yml`. Portainer fusiona automáticamente los archivos especificados.
@@ -80,9 +80,13 @@ docker ps --filter name=heimdall
### 4. Acceder a la interfaz ### 4. Acceder a la interfaz
Abre tu navegador en: Depende del override usado:
- **HTTP**: `http://IP-del-servidor:8080`
- **HTTPS**: `https://IP-del-servidor:8443` (certificado autofirmado) - **Con Traefik**: `https://heimdall.tudominio.com` (ajustar dominio en override)
- **Con NPM**: Configura Proxy Host primero (ver sección NPM), luego `https://heimdall.tudominio.com`
- **Acceso directo**: `http://IP-del-servidor:8080` o `https://IP-del-servidor:8443`
**Nota**: Si no usaste ningún override, el contenedor arranca pero no es accesible (sin puertos publicados).
## Configuración inicial ## Configuración inicial
@@ -114,9 +118,27 @@ Para habilitar:
## Integración con Proxy Inverso ## Integración con Proxy Inverso
Este repositorio incluye archivos override para facilitar la integración: Este repositorio incluye tres archivos override:
- `docker-compose.override.traefik.yml.example` - Para Traefik - `docker-compose.override.traefik.yml.example` - Integración con Traefik
- `docker-compose.override.npm.yml.example` - Para NGINX Proxy Manager - `docker-compose.override.npm.yml.example` - Integración con NGINX Proxy Manager
- `docker-compose.override.standalone.yml.example` - Acceso directo sin proxy (publica puertos 8080/8443)
**⚠️ Importante**: El `docker-compose.yml` base NO publica puertos. Debes usar uno de estos overrides para acceder a Heimdall.
### Acceso Directo (sin proxy)
**Desde Portainer (Git)**:
- **Additional paths**: `docker-compose.override.standalone.yml.example`
**Desde CLI**:
```bash
cp docker-compose.override.standalone.yml.example docker-compose.override.yml
docker compose up -d
```
Acceso:
- **HTTP**: `http://IP-del-servidor:8080`
- **HTTPS**: `https://IP-del-servidor:8443` (certificado autofirmado)
### Con Traefik ### Con Traefik
@@ -193,7 +215,7 @@ En modo edición:
### Cambiar puertos ### Cambiar puertos
Si los puertos 8080/8443 están ocupados, edita `docker-compose.yml`: **Si usas acceso directo** (override standalone), puedes personalizar los puertos editando `docker-compose.override.standalone.yml.example`:
```yaml ```yaml
ports: ports:
@@ -201,6 +223,8 @@ ports:
- "9443:443" # HTTPS en puerto 9443 - "9443:443" # HTTPS en puerto 9443
``` ```
**Si usas proxy** (Traefik o NPM), no necesitas puertos publicados - el acceso es via dominio.
### Variables de entorno ### Variables de entorno
Ajusta PUID/PGID según tu sistema: Ajusta PUID/PGID según tu sistema:
@@ -245,13 +269,15 @@ docker compose up -d
### Puerto ocupado ### Puerto ocupado
**Solo aplica si usas acceso directo** (override standalone):
```bash ```bash
# Ver qué proceso usa el puerto # Ver qué proceso usa el puerto
Get-NetTCPConnection -LocalPort 8080 Get-NetTCPConnection -LocalPort 8080
# o en Linux # o en Linux
sudo netstat -tulpn | grep :8080 sudo netstat -tulpn | grep :8080
# Cambiar puerto en docker-compose.yml # Cambiar puerto en docker-compose.override.standalone.yml.example
ports: ports:
- "9080:80" - "9080:80"
``` ```
@@ -315,11 +341,11 @@ Heimdall mantiene la configuración entre actualizaciones (volumen persistente).
### Recomendaciones ### Recomendaciones
1.**Usar NPM con SSL** para acceso seguro por dominio 1.**Usar proxy con SSL** (Traefik o NPM) para acceso seguro por dominio
2.**Restringir acceso** al puerto 8080 con firewall (si no usas proxy) 2.**Evitar acceso directo** en producción - usa override standalone solo para testing
3.**Backup periódico** del volumen `heimdall_config` 3.**Restringir acceso** con Access Lists en NPM o middlewares en Traefik
4.**Actualizar regularmente** con `docker compose pull && docker compose up -d` 4.**Backup periódico** del volumen `heimdall_config`
5.**Usar contraseñas fuertes** si habilitas autenticación 5.**Actualizar regularmente** con `docker compose pull && docker compose up -d`
### Proteger con Access List (NPM) ### Proteger con Access List (NPM)

View File

@@ -16,7 +16,6 @@
services: services:
heimdall: heimdall:
ports: [] # Eliminar puertos, acceso solo via NPM
networks: networks:
- proxy - proxy

View File

@@ -0,0 +1,25 @@
# docker-compose.override.standalone.yml.example
#
# Este archivo permite acceder a Heimdall directamente mediante IP:puerto sin proxy.
# Útil para entornos sin NPM o Traefik, o para acceso directo temporal.
#
# Para usarlo:
# Desde Portainer (Git Repository):
# - Repository URL: https://git.ictiberia.com/groales/heimdall
# - Compose path: docker-compose.yml
# - Additional paths: docker-compose.override.standalone.yml.example
#
# Desde CLI:
# 1. Copia este archivo a docker-compose.override.yml
#
# Docker Compose automáticamente fusiona docker-compose.yml + docker-compose.override.yml
#
# Acceso:
# HTTP: http://IP-DEL-HOST:8080
# HTTPS: https://IP-DEL-HOST:8443
services:
heimdall:
ports:
- "8080:80"
- "8443:443"

View File

@@ -15,7 +15,6 @@
services: services:
heimdall: heimdall:
ports: [] # Eliminar puertos, acceso solo via Traefik
networks: networks:
- proxy - proxy
labels: labels:

View File

@@ -9,9 +9,6 @@ services:
TZ: Europe/Madrid TZ: Europe/Madrid
volumes: volumes:
- heimdall_config:/config - heimdall_config:/config
ports:
- "8080:80"
- "8443:443"
volumes: volumes:
heimdall_config: heimdall_config: