This is my basic traefik setup for docker. Create the file and compose up the docker-compose and done. You can add let's encrypt if need be, or use custom certs.
Here's the docker-compose.yml
:
networks:
ingress:
name: ingress
volumes:
traefik-letsencrypt:
services:
reverse-proxy:
image: traefik:v3
# environment:
# If needed: - INFOMANIAK_ACCESS_TOKEN=TOKEN
command:
- "--api.insecure=false"
- "--api.dashboard=false"
- "--providers.docker"
# Public Endpoint
- "--entrypoints.web-http.address=:1080"
- "--entrypoints.web-http.http.redirections.entrypoint.to=:443"
- "--entrypoints.web-http.http.redirections.entrypoint.scheme=https"
- "--entrypoints.web.address=:1443"
# Allow proxying to self signed certs
- "--serverstransport.insecureskipverify=true"
# Custom Certs
# - "--providers.file.filename=/etc/traefik/dynamic.yaml"
# Letsencrypt Config
# - "--certificatesresolvers.le.acme.dnschallenge.provider=infomaniak"
# - "--certificatesresolvers.le.acme.dnschallenge.delaybeforecheck=0"
labels:
- "traefik.enable=false"
networks:
- ingress
- default
ports:
- "80:1080"
- "443:1443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- traefik-letsencrypt:/letsencrypt"
# - ./configuration:/etc/traefik
# - ./certs:/c
If you need custom certs, put the configuration file inside ./configuration and the certs in ./certs. In configuration place the dynamic.yaml like this: (!use yaml not yml)
tls:
options:
default:
sniStrict: false
certificates:
- certFile: /certs/fullchain.pem
keyFile: /certs/key.pem
stores:
default:
defaultCertificate:
certFile: /certs/fullchain.pem
keyFile: /certs/key.pem
serversTransport:
insecureSkipVerify: true
Now to use it:Block Field