Docs: añadir Traefik y enlazar desde README
This commit is contained in:
13
README.md
13
README.md
@@ -1,17 +1,5 @@
|
|||||||
# Infraestructura: Portainer
|
# Infraestructura: Portainer
|
||||||
|
|
||||||
Este repositorio contiene el despliegue de **Portainer CE** para la gestión centralizada de contenedores Docker.
|
|
||||||
|
|
||||||
## 🧩 Componentes
|
|
||||||
|
|
||||||
|
|
||||||
## 🚀 Despliegue
|
|
||||||
|
|
||||||
1. Crear `.env` desde el ejemplo:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cp .env.example .env
|
|
||||||
```
|
|
||||||
# Portainer CE — Despliegue con Docker Compose (Linux)
|
# Portainer CE — Despliegue con Docker Compose (Linux)
|
||||||
|
|
||||||
Este repositorio proporciona una forma sencilla de desplegar **Portainer Community Edition (CE)** usando Docker Compose en Linux, siguiendo las recomendaciones oficiales:
|
Este repositorio proporciona una forma sencilla de desplegar **Portainer Community Edition (CE)** usando Docker Compose en Linux, siguiendo las recomendaciones oficiales:
|
||||||
@@ -97,6 +85,7 @@ Este stack no expone el puerto `8000` por defecto. Si necesitas gestionar agente
|
|||||||
- Guía inicial: [`docs/Home.md`](docs/Home.md)
|
- Guía inicial: [`docs/Home.md`](docs/Home.md)
|
||||||
- Instalación avanzada y TLS: [`docs/Instalacion.md`](docs/Instalacion.md)
|
- Instalación avanzada y TLS: [`docs/Instalacion.md`](docs/Instalacion.md)
|
||||||
- Backup/Restore del volumen `data`: [`docs/Backup.md`](docs/Backup.md)
|
- Backup/Restore del volumen `data`: [`docs/Backup.md`](docs/Backup.md)
|
||||||
|
- Proxy inverso y TLS con Traefik: [`docs/Traefik.md`](docs/Traefik.md)
|
||||||
|
|
||||||
## Solución de problemas
|
## Solución de problemas
|
||||||
- Puerto ocupado (`9443/8000`): comprueba procesos con `netstat` o `Get-NetTCPConnection` y ajusta puertos en `docker-compose.yaml`.
|
- Puerto ocupado (`9443/8000`): comprueba procesos con `netstat` o `Get-NetTCPConnection` y ajusta puertos en `docker-compose.yaml`.
|
||||||
|
|||||||
70
docs/Traefik.md
Normal file
70
docs/Traefik.md
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
# Traefik — Proxy inverso y TLS para Portainer
|
||||||
|
|
||||||
|
Esta guía muestra cómo exponer Portainer detrás de **Traefik** con HTTPS automático (Let's Encrypt) y reglas limpias.
|
||||||
|
|
||||||
|
## Requisitos
|
||||||
|
- Traefik corriendo en el mismo host (como servicio en otro `docker-compose` o stack).
|
||||||
|
- Resolución DNS del dominio hacia tu host.
|
||||||
|
|
||||||
|
## Etiquetas (labels) de ejemplo para Portainer
|
||||||
|
Añade estas etiquetas al servicio `portainer` cuando uses Traefik (en el mismo `compose` o en un overlay). Nota: si mantienes `ports: 9443:9443`, la UI seguirá accesible directamente; con Traefik se recomienda eliminar la exposición directa y publicar solo vía proxy.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
portainer:
|
||||||
|
image: portainer/portainer-ce:lts
|
||||||
|
container_name: portainer
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
- portainer_data:/data
|
||||||
|
# Quita los puertos directos si usas Traefik
|
||||||
|
# ports:
|
||||||
|
# - 9443:9443
|
||||||
|
labels:
|
||||||
|
- "traefik.enable=true"
|
||||||
|
- "traefik.http.routers.portainer.rule=Host(`portainer.tudominio.com`)"
|
||||||
|
- "traefik.http.routers.portainer.entryPoints=websecure"
|
||||||
|
- "traefik.http.routers.portainer.tls=true"
|
||||||
|
- "traefik.http.services.portainer.loadbalancer.server.port=9443"
|
||||||
|
- "traefik.http.routers.portainer.tls.certresolver=myresolver"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuración Traefik (resumen)
|
||||||
|
Traefik necesita:
|
||||||
|
- `entryPoints` `web` (80) y `websecure` (443).
|
||||||
|
- `certResolver` configurado (por ejemplo, `myresolver` con ACME/Let's Encrypt).
|
||||||
|
|
||||||
|
Ejemplo mínimo de `traefik.yml` (referencia):
|
||||||
|
```yaml
|
||||||
|
entryPoints:
|
||||||
|
web:
|
||||||
|
address: ":80"
|
||||||
|
websecure:
|
||||||
|
address: ":443"
|
||||||
|
|
||||||
|
certificatesResolvers:
|
||||||
|
myresolver:
|
||||||
|
acme:
|
||||||
|
email: tu-email@ejemplo.com
|
||||||
|
storage: /letsencrypt/acme.json
|
||||||
|
httpChallenge:
|
||||||
|
entryPoint: web
|
||||||
|
```
|
||||||
|
|
||||||
|
Volúmenes para Traefik (contenedor):
|
||||||
|
```yaml
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
|
- ./letsencrypt:/letsencrypt
|
||||||
|
```
|
||||||
|
|
||||||
|
## Pasos
|
||||||
|
1. Configura y levanta Traefik con `web` y `websecure`, y un `certResolver`.
|
||||||
|
2. Aplica las labels a Portainer y evita exponer puertos directos.
|
||||||
|
3. Apunta el DNS `portainer.tudominio.com` al host.
|
||||||
|
4. Accede por: `https://portainer.tudominio.com`
|
||||||
|
|
||||||
|
## Notas
|
||||||
|
- Si Portainer corre en 9443 con certificado propio, especifica `loadbalancer.server.port=9443` (como en el ejemplo).
|
||||||
|
- Para publicar en HTTP interno puedes cambiar a puerto 9000 (HTTP) y ajustar labels acorde (`server.port=9000`).
|
||||||
|
- Revisa logs de Traefik y Portainer si hay errores de TLS o reglas.
|
||||||
Reference in New Issue
Block a user