From e7bb47ecdab4af8d528be9b7e53290a5adcb1085 Mon Sep 17 00:00:00 2001 From: groales Date: Wed, 3 Dec 2025 11:06:01 +0100 Subject: [PATCH] =?UTF-8?q?Invertir=20l=C3=B3gica:=20base=20sin=20puertos,?= =?UTF-8?q?=20override=20standalone=20para=20acceso=20directo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 62 +++++++++++++------ docker-compose.override.npm.yml.example | 1 - ...er-compose.override.standalone.yml.example | 25 ++++++++ docker-compose.override.traefik.yml.example | 1 - docker-compose.yml | 3 - 5 files changed, 69 insertions(+), 23 deletions(-) create mode 100644 docker-compose.override.standalone.yml.example diff --git a/README.md b/README.md index 0003b3c..791a4de 100644 --- a/README.md +++ b/README.md @@ -23,16 +23,15 @@ Heimdall es un dashboard elegante y minimalista para organizar todos tus servici ## 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 - **Variables de entorno**: - `PUID=1000` / `PGID=1000`: Usuario/grupo para permisos de archivos - `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 @@ -61,9 +60,10 @@ docker compose up -d - **Repository URL**: `https://git.ictiberia.com/groales/heimdall` - **Repository reference**: `refs/heads/main` - **Compose path**: `docker-compose.yml` - - **Additional paths** (opcional): + - **Additional paths** (según modo de acceso): - Para Traefik: `docker-compose.override.traefik.yml.example` - Para NPM: `docker-compose.override.npm.yml.example` + - Para acceso directo IP:puerto: `docker-compose.override.standalone.yml.example` - **Deploy the stack** **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 -Abre tu navegador en: -- **HTTP**: `http://IP-del-servidor:8080` -- **HTTPS**: `https://IP-del-servidor:8443` (certificado autofirmado) +Depende del override usado: + +- **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 @@ -114,9 +118,27 @@ Para habilitar: ## Integración con Proxy Inverso -Este repositorio incluye archivos override para facilitar la integración: -- `docker-compose.override.traefik.yml.example` - Para Traefik -- `docker-compose.override.npm.yml.example` - Para NGINX Proxy Manager +Este repositorio incluye tres archivos override: +- `docker-compose.override.traefik.yml.example` - Integración con Traefik +- `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 @@ -193,7 +215,7 @@ En modo edición: ### 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 ports: @@ -201,6 +223,8 @@ ports: - "9443:443" # HTTPS en puerto 9443 ``` +**Si usas proxy** (Traefik o NPM), no necesitas puertos publicados - el acceso es via dominio. + ### Variables de entorno Ajusta PUID/PGID según tu sistema: @@ -245,13 +269,15 @@ docker compose up -d ### Puerto ocupado +**Solo aplica si usas acceso directo** (override standalone): + ```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 +# Cambiar puerto en docker-compose.override.standalone.yml.example ports: - "9080:80" ``` @@ -315,11 +341,11 @@ Heimdall mantiene la configuración entre actualizaciones (volumen persistente). ### 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 +1. ✅ **Usar proxy con SSL** (Traefik o NPM) para acceso seguro por dominio +2. ✅ **Evitar acceso directo** en producción - usa override standalone solo para testing +3. ✅ **Restringir acceso** con Access Lists en NPM o middlewares en Traefik +4. ✅ **Backup periódico** del volumen `heimdall_config` +5. ✅ **Actualizar regularmente** con `docker compose pull && docker compose up -d` ### Proteger con Access List (NPM) diff --git a/docker-compose.override.npm.yml.example b/docker-compose.override.npm.yml.example index bb8151e..ff787f5 100644 --- a/docker-compose.override.npm.yml.example +++ b/docker-compose.override.npm.yml.example @@ -16,7 +16,6 @@ services: heimdall: - ports: [] # Eliminar puertos, acceso solo via NPM networks: - proxy diff --git a/docker-compose.override.standalone.yml.example b/docker-compose.override.standalone.yml.example new file mode 100644 index 0000000..d1b24b9 --- /dev/null +++ b/docker-compose.override.standalone.yml.example @@ -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" diff --git a/docker-compose.override.traefik.yml.example b/docker-compose.override.traefik.yml.example index c4e09d9..40dfc7f 100644 --- a/docker-compose.override.traefik.yml.example +++ b/docker-compose.override.traefik.yml.example @@ -15,7 +15,6 @@ services: heimdall: - ports: [] # Eliminar puertos, acceso solo via Traefik networks: - proxy labels: diff --git a/docker-compose.yml b/docker-compose.yml index 8bb9580..6817e66 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,9 +9,6 @@ services: TZ: Europe/Madrid volumes: - heimdall_config:/config - ports: - - "8080:80" - - "8443:443" volumes: heimdall_config: