docs: add Traefik reverse proxy examples (labels and file provider) to all READMEs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-17 10:23:23 +02:00
parent 53417985ba
commit bda8ac0546
3 changed files with 153 additions and 3 deletions
+51 -1
View File
@@ -147,7 +147,9 @@ docker compose start backend
### HTTPS
Esta aplicación no termina TLS. Para uso en producción, colócala detrás de un reverse proxy que gestione HTTPS:
Esta aplicación no termina TLS. Para uso en producción, colócala detrás de un reverse proxy que gestione HTTPS.
#### Nginx
```nginx
server {
@@ -167,6 +169,54 @@ server {
}
```
#### Traefik — Labels Docker
Añadir estas etiquetas al servicio `frontend` y conectarlo a la red compartida con Traefik:
```yaml
# docker-compose.override.yml
services:
frontend:
labels:
- "traefik.enable=true"
- "traefik.http.routers.inventory.rule=Host(`inventory.example.com`)"
- "traefik.http.routers.inventory.entrypoints=websecure"
- "traefik.http.routers.inventory.tls.certresolver=letsencrypt"
- "traefik.http.services.inventory.loadbalancer.server.port=8080"
networks:
- internal
- traefik_public # red compartida con tu instancia de Traefik
networks:
traefik_public:
external: true
```
#### Traefik — Configuración dinámica (file provider)
Si Traefik no corre en Docker (o prefieres el file provider), deposita un archivo en tu directorio de configuración dinámica:
```yaml
# /etc/traefik/dynamic/inventory.yml
http:
routers:
inventory:
rule: "Host(`inventory.example.com`)"
entryPoints:
- websecure
tls:
certResolver: letsencrypt
service: inventory-svc
services:
inventory-svc:
loadBalancer:
servers:
- url: "http://127.0.0.1:8080"
```
Traefik detecta el archivo automáticamente — no se requiere reinicio.
Para uso solo local, enlazar a loopback para evitar exposición accidental en la LAN:
```yaml