Consolidar en un solo archivo dynamic/config.yml

This commit is contained in:
2025-12-01 13:17:22 +01:00
parent dec01f536c
commit 400d41687b
4 changed files with 87 additions and 95 deletions

View File

@@ -8,7 +8,7 @@ Este directorio contiene configuración que Traefik recarga automáticamente sin
- **routers.yml**: Routers HTTP/HTTPS (ejemplos comentados) - **routers.yml**: Routers HTTP/HTTPS (ejemplos comentados)
- **services.yml**: Servicios backend (ejemplos comentados) - **services.yml**: Servicios backend (ejemplos comentados)
**Nota:** Los archivos NO usan la raíz `http:` porque Traefik los carga automáticamente bajo `http.middlewares`, `http.routers`, y `http.services` respectivamente. **Importante:** Cada archivo debe tener la estructura `http:` como raíz cuando se usa `directory:` en el proveedor file.
## Autenticación Básica ## Autenticación Básica

View File

@@ -1,46 +1,44 @@
# ============================================ http:
# MIDDLEWARES middlewares:
# ============================================ # Headers de seguridad
security-headers:
headers:
stsSeconds: 63072000
forceSTSHeader: true
stsIncludeSubdomains: true
stsPreload: true
frameDeny: true
contentTypeNosniff: true
browserXssFilter: true
referrerPolicy: "strict-origin-when-cross-origin"
customResponseHeaders:
X-Robots-Tag: "none,noarchive,nosnippet,notranslate,noimageindex"
# Headers de seguridad # Rate limiting
security-headers: rate-limit:
headers: rateLimit:
stsSeconds: 63072000 average: 100
forceSTSHeader: true burst: 200
stsIncludeSubdomains: true period: 1m
stsPreload: true
frameDeny: true
contentTypeNosniff: true
browserXssFilter: true
referrerPolicy: "strict-origin-when-cross-origin"
customResponseHeaders:
X-Robots-Tag: "none,noarchive,nosnippet,notranslate,noimageindex"
# Rate limiting # IP Allow List (ejemplo - ajusta tus IPs)
rate-limit: ip-allowlist:
rateLimit: ipAllowList:
average: 100 sourceRange:
burst: 200 - "127.0.0.1/32"
period: 1m - "10.0.0.0/8"
- "172.16.0.0/12"
- "192.168.0.0/16"
# IP Allow List (ejemplo - ajusta tus IPs) # Autenticación básica (genera hash con: docker run --rm httpd:alpine htpasswd -nbB admin tu_password)
ip-allowlist: auth-basic:
ipAllowList: basicAuth:
sourceRange: users:
- "127.0.0.1/32" - "admin:$2y$05$example_hash_CHANGE_THIS" # CAMBIA ESTE HASH
- "10.0.0.0/8"
- "172.16.0.0/12"
- "192.168.0.0/16"
# Autenticación básica (genera hash con: docker run --rm httpd:alpine htpasswd -nbB admin tu_password) # Redirect www a root
auth-basic: redirect-www:
basicAuth: redirectRegex:
users: regex: "^https?://www\\.(.+)"
- "admin:$2y$05$example_hash_CHANGE_THIS" # CAMBIA ESTE HASH replacement: "https://${1}"
permanent: true
# Redirect www a root
redirect-www:
redirectRegex:
regex: "^https?://www\\.(.+)"
replacement: "https://${1}"
permanent: true

View File

@@ -1,29 +1,26 @@
# ============================================ http:
# ROUTERS Y SERVICIOS (Ejemplos comentados) routers:
# ============================================ # Ejemplo: Router para aplicación web con HTTPS y middlewares
# Descomentar y adaptar según necesites # whoami:
# rule: "Host(`whoami.tudominio.com`)"
# entryPoints:
# - websecure
# middlewares:
# - security-headers
# - rate-limit
# service: whoami-service
# tls:
# certResolver: letsencrypt
# Ejemplo: Router para aplicación web con HTTPS y middlewares # Ejemplo: Router con autenticación básica y restricción IP
# whoami: # admin-panel:
# rule: "Host(`whoami.tudominio.com`)" # rule: "Host(`admin.tudominio.com`)"
# entryPoints: # entryPoints:
# - websecure # - websecure
# middlewares: # middlewares:
# - security-headers # - auth-basic
# - rate-limit # - ip-allowlist
# service: whoami-service # - security-headers
# tls: # service: admin-service
# certResolver: letsencrypt # tls:
# certResolver: letsencrypt
# Ejemplo: Router con autenticación básica y restricción IP
# admin-panel:
# rule: "Host(`admin.tudominio.com`)"
# entryPoints:
# - websecure
# middlewares:
# - auth-basic
# - ip-allowlist
# - security-headers
# service: admin-service
# tls:
# certResolver: letsencrypt

View File

@@ -1,26 +1,23 @@
# ============================================ http:
# SERVICIOS (Ejemplos comentados) services:
# ============================================ # Ejemplo: Servicio apuntando a contenedor local
# Descomentar y adaptar según necesites # whoami-service:
# loadBalancer:
# servers:
# - url: "http://whoami:80"
# Ejemplo: Servicio apuntando a contenedor local # Ejemplo: Servicio apuntando a servidor externo
# whoami-service: # admin-service:
# loadBalancer: # loadBalancer:
# servers: # servers:
# - url: "http://whoami:80" # - url: "http://192.168.1.100:8080"
# Ejemplo: Servicio apuntando a servidor externo # Ejemplo: Servicio con health check
# admin-service: # api-service:
# loadBalancer: # loadBalancer:
# servers: # servers:
# - url: "http://192.168.1.100:8080" # - url: "http://api:3000"
# healthCheck:
# Ejemplo: Servicio con health check # path: "/health"
# api-service: # interval: "10s"
# loadBalancer: # timeout: "3s"
# servers:
# - url: "http://api:3000"
# healthCheck:
# path: "/health"
# interval: "10s"
# timeout: "3s"