Usando Traefik - 3
Como recordáis hice 2 artículos donde en el primer artículo explicaba como se podía usar traefik con otros servicios de docker y en el segundo artículo, explicaba como se le podía añadir una capa más de seguridad a nuestro servicio de traefik que consistía en bloquear las peticiones de países de nuestra lista negra.
En este 3º artículo, explicaré unas modificaciones que, como siempre me pasa, no acabé de entender al leer el artículo principal de atareao{:target="_blank} y que gracias, no se si por inspiración divina de Lorenzo he acabado de entender.
Estas modificaciones, si te fijas bien, en el artículo de Atareao y que está al final, comenta que después de lo que se ha hecho, hay suficiente con estas líneas:
- traefik.enable=true
- traefik.http.services.jellyfin.loadbalancer.server.port=8096
- traefik.http.routers.jellyfin.entrypoints=websecure
- traefik.http.routers.jellyfin.rule=Host(`${FQDN}`)
Para que traefik tenga en cuenta el servicio que nosotros le estamos indicando y lo configure correctamente e incluso con un certificado de letsncrypt. En el caso de Lorenzo él lo explica para Jellyfin, pero en mi caso, lo explicaré para rss-funnel, que es el servicio de ejemplo que utilicé en el primer artículo. También pondré las modificaciones necesarias que se tiene que hacer en los ficheros de configuración de traefik.
Como podéis recordar en la configuración de rss-funnel del primer artículo, lo tenía configurado de la siguiente manera:
rssFunnel:
image: ghcr.io/shouya/rss-funnel:latest
container_name: rssFunnel
restart: unless-stopped
networks:
- proxy
ports:
- 33333:4080
volumes:
- ${HOME}/config/rss-funnel/funnel.yaml:/funnel.yaml
environment:
RSS_FUNNEL_CONFIG: /funnel.yaml
RSS_FUNNEL_BIND: 0.0.0.0:PORT
labels:
- traefik.enable=true
- traefik.http.services.rssFunnel.loadbalancer.server.port=4080
- traefik.http.routers.rssFunnel.entrypoints=web
- traefik.http.routers.rssFunnel.rule=Host(`${PODCAST_SERVER}`)
- traefik.http.middlewares.rssFunnel-https-redirect.redirectscheme.scheme=websecure
- traefik.http.routers.rssFunnel.middlewares=rssFunnel-https-redirect
- traefik.http.routers.rssFunnel-secure.entrypoints=websecure
- traefik.http.routers.rssFunnel-secure.rule=Host(`${PODCAST_SERVER}`)
- traefik.http.routers.rssFunnel-secure.tls=true
- traefik.http.routers.rssFunnel-secure.tls.certresolver=letsencrypt
Pero siguiendo las pautas que ha dado atareao, tendría que quedar de la siguiente manera:
rssFunnel:
image: ghcr.io/shouya/rss-funnel:latest
container_name: rssFunnel
restart: unless-stopped
networks:
- proxy
volumes:
- ${HOME}/config/rss-funnel/funnel.yaml:/funnel.yaml
environment:
RSS_FUNNEL_CONFIG: /funnel.yaml
RSS_FUNNEL_BIND: 0.0.0.0:PORT
labels:
- traefik.enable=true
- traefik.http.services.rssFunnel.loadbalancer.server.port=4080
- traefik.http.routers.rssFunnel.entrypoints=websecure
- traefik.http.routers.rssFunnel.rule=Host(`${PODCAST_SERVER}`)
Como veis, he quitado toda la parte del puerto, la sección del certificado y la sección de la redirección porque de todo esto, se encarga traefik, esto es como consecuencia de que en el fichero traefik.yml hemos puesto lo siguiente:
api:
dashboard: true
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
permanent: true
websecure:
address: ":443"
http:
tls:
certresolver: letsencrypt
Que es el encargado de crear automáticamente los certificados de todos los dominios que ponemos con traefik. Y os puedo decir que funciona perfectamente.
Lo he aplicado a los siguientes contenedores:
Funciona de fábula. Como dice el dicho, nunca te irás a dormir sin conocer una nueva cosa.
Después de esto lo último que me falta es ponerme con crowdsec que, una vez más, siempre había pensado que era un plugin que se añadía a traefik y no, es un contenedor más con su respectiva configuración.
Pero ahora estoy más tranquilo, porque entiendo un poco más como funciona el mundo de traefik y con ayuda de la excelente documentación que tiene Atareao con respecto a esto, creo que no tendré ningún problema en implementarlo en mi servidor.
Como dice el dicho La suerte favorece a los valientes