My traefik docker-compose.yml:
services:
traefik:
image: "traefik:v3.5"
restart: always
labels:
- traefik.enable=true
- traefik.http.routers.proxy-comics.rule=Host(`comics.cristo.dev.br`) || Host(`comics`)
- traefik.http.routers.proxy-comics.entrypoints=websecure
- traefik.http.routers.proxy-comics.tls=true
- traefik.http.routers.proxy-comics.service=proxy-comics
- traefik.http.services.proxy-comics.loadbalancer.server.url=http://192.168.2.200:9999
- traefik.http.routers.proxy-uptime.rule=Host(`uptime.cristo.dev.br`)
- traefik.http.routers.proxy-uptime.entrypoints=websecure
- traefik.http.middlewares.proxy-uptime.redirectscheme.scheme=https
- traefik.http.middlewares.proxy-uptime.redirectscheme.permanent=true
- traefik.http.routers.proxy-uptime.tls=true
- traefik.http.routers.proxy-uptime.service=proxy-uptime
- traefik.http.services.proxy-uptime.loadbalancer.server.url=http://192.168.2.200:3001
- traefik.http.routers.proxy-traefik.rule=Host(`traefik.cristo.dev.br`) || Host(`traefik`)
- traefik.http.routers.proxy-traefik.entrypoints=websecure
- traefik.http.routers.proxy-traefik.tls=true
- traefik.http.routers.proxy-traefik.service=proxy-traefik
- traefik.http.services.proxy-traefik.loadbalancer.server.url=http://192.168.2.200:8080
- traefik.http.routers.proxy-portainer.rule=Host(`portainer.cristo.dev.br`) || Host(`portainer`)
- traefik.http.routers.proxy-portainer.entrypoints=websecure
- traefik.http.routers.proxy-portainer.tls=true
- traefik.http.routers.proxy-portainer.service=proxy-portainer
- traefik.http.services.proxy-portainer.loadbalancer.server.url=https://192.168.2.200:9443
- traefik.http.routers.proxy-jellyfin.rule=Host(`jellyfin.cristo.dev.br`) || Host(`jellyfin`)
- traefik.http.routers.proxy-jellyfin.entrypoints=websecure
- traefik.http.routers.proxy-jellyfin.tls=true
- traefik.http.routers.proxy-jellyfin.service=proxy-jellyfin-svc
- traefik.http.services.proxy-jellyfin-svc.loadbalancer.server.url=http://192.168.2.200:8096
command:
#- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entryPoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
#- "--entrypoints.udp-7359.address=:7359/udp"
- "--serverstransport.insecureskipverify=true"
- "--providers.file.directory=/etc/traefik/dynamic"
ports:
- 80:80
- 443:443
- 8080:8080
#- 7359:7359/udp
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik-certs-config:/etc/traefik/dynamic
- traefik-certs:/etc/certs/
volumes:
traefik-certs-config:
external: true
traefik-certs:
external: true
I am using it with no service backends. All services are elsewhere away from traefik.
The config above is working fine.
What I want and did not find the answer anywhere:
- when the user type on browser: http://uptime I want to redirect it to https://uptime.cristo.dev.br
- pay attention that it is not just http to https, I need entire url be redirected
Tried with label middleware but I think it must be positioned on the backend service. I do not have backend service, just one container with traefik.
Please help