I've been happily using traefik for around a year to publish my services to the internet, then i changed ISP to find out he blocks port 80 for remote router managing.
Trying to setup my resolution path to workaround this problem i can't get it to work, i land on a unknown page with no certficates info or proprietary info. I use a clouflare domain pointing to a ddns service pointing to my real IP but to a different then 80 port. Can you spot what I am doing wrong?
Trying to dig to the domain i get this IP, not mine, 34.199.8.144.
Share your full Traefik static and dynamic config, and docker-compose.yml
if used.
But if you don't get the right IP in the first place, it's probably not a Traefik issue.
For sure, here it is! This is a simplified all-in-one docker-compose i'm using while troubleshooting.. I forgot to mention, if i try to dig domain.xy
i get an amazon IP, it never resolve to mine..
services:
traefik:
image: traefik:v3.1
container_name: traefik
command:
--api.insecure=true
--providers.docker
--global.checkNewVersion=true
--global.sendAnonymousUsage=true
--log.level=INFO
--log.filePath=/var/log/traefik/traefik.log
--accessLog.filePath=/var/log/traefik/access.log
--api.dashboard=true
--api.debug=true
--entryPoints.web.address=":80"
--entryPoints.websecure.address=":443"
--serversTransport.insecureSkipVerify=true
--providers.docker.exposedByDefault=false
--certificatesResolvers.staging.acme.email=mail
--certificatesResolvers.staging.acme.storage=/letsencrypt/acme.json
--certificatesResolvers.staging.acme.caServer="https://acme-staging-v02.api.letsencrypt.org/directory"
--certificatesResolvers.staging.acme.httpChallenge.entrypoint=web
--certificatesResolvers.production.acme.email=mail
--certificatesResolvers.production.acme.storage=/letsencrypt/acme.json
--certificatesResolvers.production.acme.caServer="https://acme-v02.api.letsencrypt.org/directory"
--certificatesResolvers.production.acme.httpChallenge.entrypoint=web
networks:
- proxy
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data/letsencrypt:/letsencrypt
- ./logs:/var/log/traefik
- /etc/localtime:/etc/localtime:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.routers.traefik.tls.certresolver=staging"
- "traefik.http.routers.traefik.entrypoints=web, websecure"
- "traefik.http.routers.traefik.rule=Host(`traefik.domain.xy`)"
- "traefik.http.routers.traefik.service=api@internal"
This is a simplified all-iin-one i'm using while troubleshooting
services:
traefik:
image: traefik:v3.1
container_name: traefik
command:
--api.insecure=true
--providers.docker
--global.checkNewVersion=true
--global.sendAnonymousUsage=true
--log.level=INFO
--api.dashboard=true
--api.debug=true
--entryPoints.web.address=":80"
--entryPoints.websecure.address=":443"
--serversTransport.insecureSkipVerify=true
--providers.docker.exposedByDefault=false
--certificatesResolvers.staging.acme.email=mail
--certificatesResolvers.staging.acme.storage=/letsencrypt/acme.json
--certificatesResolvers.staging.acme.caServer="https://acme-staging-v02.api.letsencrypt.org/directory"
--certificatesResolvers.staging.acme.httpChallenge.entrypoint=web
--certificatesResolvers.production.acme.email=mail
--certificatesResolvers.production.acme.storage=/letsencrypt/acme.json
--certificatesResolvers.production.acme.caServer="https://acme-v02.api.letsencrypt.org/directory"
--certificatesResolvers.production.acme.httpChallenge.entrypoint=web
networks:
- proxy
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data/letsencrypt:/letsencrypt
- ./logs:/var/log/traefik
- /etc/localtime:/etc/localtime:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.routers.traefik.tls.certresolver=staging"
- "traefik.http.routers.traefik.entrypoints=web, websecure"
- "traefik.http.routers.traefik.rule=Host(`traefik.domain.xy`)"
- "traefik.http.routers.traefik.service=api@internal"
Here it is! This is a simplified version I'm using while troubleshooting, I can get to the dashboard locally with 192.168.1.20:8080 and all looks fine.
services:
traefik:
image: traefik:v3.1
container_name: traefik
command:
--api.insecure=true
--providers.docker
--global.checkNewVersion=true
--global.sendAnonymousUsage=true
--log.level=INFO
--log.filePath=/var/log/traefik/traefik.log
--accessLog.filePath=/var/log/traefik/access.log
--api.dashboard=true
--api.debug=true
--entryPoints.web.address=":80"
--entryPoints.websecure.address=":443"
--serversTransport.insecureSkipVerify=true
--providers.docker.exposedByDefault=false
--certificatesResolvers.staging.acme.email=mail@mail.xy
--certificatesResolvers.staging.acme.storage=/letsencrypt/acme.json
--certificatesResolvers.staging.acme.caServer="https://acme-staging-v02.api.letsencrypt.org/directory"
--certificatesResolvers.staging.acme.httpChallenge.entrypoint=web
--certificatesResolvers.production.acme.email=mail@mail.xy
--certificatesResolvers.production.acme.storage=/letsencrypt/acme.json
--certificatesResolvers.production.acme.caServer="https://acme-v02.api.letsencrypt.org/directory"
--certificatesResolvers.production.acme.httpChallenge.entrypoint=web
networks:
- proxy
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data/letsencrypt:/letsencrypt
- ./logs:/var/log/traefik
- /etc/localtime:/etc/localtime:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.routers.traefik.tls.certresolver=staging"
- "traefik.http.routers.traefik.entrypoints=web, websecure"
- "traefik.http.routers.traefik.rule=Host(`traefik.domain.xy`)"
- "traefik.http.routers.traefik.service=api@internal"
Here it is! This is a simplified version I'm using while troubleshooting, I can get to the dashboard locally with 192.168.1.20:8080 and all looks fine.
services:
traefik:
image: traefik:v3.1
container_name: traefik
command:
--api.insecure=true
--providers.docker
--global.checkNewVersion=true
--global.sendAnonymousUsage=true
--log.level=INFO
--log.filePath=/var/log/traefik/traefik.log
--accessLog.filePath=/var/log/traefik/access.log
--api.dashboard=true
--api.debug=true
--entryPoints.web.address=":80"
--entryPoints.websecure.address=":443"
--serversTransport.insecureSkipVerify=true
--providers.docker.exposedByDefault=false
--certificatesResolvers.staging.acme.email=mail@mail.xy
--certificatesResolvers.staging.acme.storage=/letsencrypt/acme.json
--certificatesResolvers.staging.acme.caServer="https://acme-staging-v02.api.letsencrypt.org/directory"
--certificatesResolvers.staging.acme.httpChallenge.entrypoint=web
--certificatesResolvers.production.acme.email=mail@mail.xy
--certificatesResolvers.production.acme.storage=/letsencrypt/acme.json
--certificatesResolvers.production.acme.caServer="https://acme-v02.api.letsencrypt.org/directory"
--certificatesResolvers.production.acme.httpChallenge.entrypoint=web
networks:
- proxy
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data/letsencrypt:/letsencrypt
- ./logs:/var/log/traefik
- /etc/localtime:/etc/localtime:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.routers.traefik.tls.certresolver=staging"
- "traefik.http.routers.traefik.entrypoints=web, websecure"
- "traefik.http.routers.traefik.rule=Host(`traefik.domain.xy`)"
- "traefik.http.routers.traefik.service=api@internal"
Here it is! This is a simplified version I'm using while troubleshooting, I can get to the dashboard locally with 192.168.1.20:8080 and all looks fine. If i try to reach it from outside with x.x.x.x:8880 I get a 404 instead.
services:
traefik:
image: traefik:v3.1
container_name: traefik
command:
--api.insecure=true
--providers.docker
--global.checkNewVersion=true
--global.sendAnonymousUsage=true
--log.level=INFO
--log.filePath=/var/log/traefik/traefik.log
--accessLog.filePath=/var/log/traefik/access.log
--api.dashboard=true
--api.debug=true
--entryPoints.web.address=":80"
--entryPoints.websecure.address=":443"
--serversTransport.insecureSkipVerify=true
--providers.docker.exposedByDefault=false
--certificatesResolvers.staging.acme.email=mail@mail.xy
--certificatesResolvers.staging.acme.storage=/letsencrypt/acme.json
--certificatesResolvers.staging.acme.caServer="https://acme-staging-v02.api.letsencrypt.org/directory"
--certificatesResolvers.staging.acme.httpChallenge.entrypoint=web
--certificatesResolvers.production.acme.email=mail@mail.xy
--certificatesResolvers.production.acme.storage=/letsencrypt/acme.json
--certificatesResolvers.production.acme.caServer="https://acme-v02.api.letsencrypt.org/directory"
--certificatesResolvers.production.acme.httpChallenge.entrypoint=web
networks:
- proxy
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data/letsencrypt:/letsencrypt
- ./logs:/var/log/traefik
- /etc/localtime:/etc/localtime:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.routers.traefik.tls.certresolver=staging"
- "traefik.http.routers.traefik.entrypoints=web, websecure"
- "traefik.http.routers.traefik.rule=Host(`traefik.domain.xy`)"
- "traefik.http.routers.traefik.service=api@internal"
Here it is! This is a simplified version I'm using while troubleshooting, I can get to the dashboard locally with 192.168.1.20:8080 and all looks fine. You are right tho, I've been troubleshooting this and the problem is connected to the NO-IP redirection, if I route directly to my external IP from cloudflare it works..
services:
traefik:
image: traefik:v3.1
container_name: traefik
command:
--api.insecure=true
--providers.docker
--global.checkNewVersion=true
--global.sendAnonymousUsage=true
--log.level=INFO
--log.filePath=/var/log/traefik/traefik.log
--accessLog.filePath=/var/log/traefik/access.log
--api.dashboard=true
--api.debug=true
--entryPoints.web.address=":80"
--entryPoints.websecure.address=":443"
--serversTransport.insecureSkipVerify=true
--providers.docker.exposedByDefault=false
--certificatesResolvers.staging.acme.email=mail@mail.xy
--certificatesResolvers.staging.acme.storage=/letsencrypt/acme.json
--certificatesResolvers.staging.acme.caServer="https://acme-staging-v02.api.letsencrypt.org/directory"
--certificatesResolvers.staging.acme.httpChallenge.entrypoint=web
--certificatesResolvers.production.acme.email=mail@mail.xy
--certificatesResolvers.production.acme.storage=/letsencrypt/acme.json
--certificatesResolvers.production.acme.caServer="https://acme-v02.api.letsencrypt.org/directory"
--certificatesResolvers.production.acme.httpChallenge.entrypoint=web
networks:
- proxy
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data/letsencrypt:/letsencrypt
- ./logs:/var/log/traefik
- /etc/localtime:/etc/localtime:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.tls=true"
- "traefik.http.routers.traefik.tls.certresolver=staging"
- "traefik.http.routers.traefik.entrypoints=web, websecure"
- "traefik.http.routers.traefik.rule=Host(`traefik.domain.xy`)"
- "traefik.http.routers.traefik.service=api@internal"