Traefik Reverse Proxy
Deploy Traefik as a modern reverse proxy and edge router with Docker Compose. Includes a simple dashboard and flexible port configuration-perfect for managing local services and microservices.
yaml
docker-compose.yml
services:
traefik:
image: traefik:v3
container_name: traefik
restart: always
ports:
- "80:80"
- "443:443"
command:
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.web.http.redirections.entryPoint.to=websecure"
- "--entrypoints.web.http.redirections.entryPoint.scheme=https"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--certificatesresolvers.myresolver.acme.tlschallenge=true"
- "--certificatesresolvers.myresolver.acme.email=${ACME_EMAIL}"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
- "--api.dashboard=true"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./letsencrypt:/letsencrypt
.ENV
.env example
# General Settings
DOMAIN_NAME=example.com
ACME_EMAIL=[email protected]
# Traefik Dashboard Auth (User:Password)
# Generate this using: echo $(htpasswd -nB user) | sed -e s/\\$/\\$\\$/g
# Default below is admin:password
TRAEFIK_BASIC_AUTH=admin:$$2y$$05$$7P5G719Y9pI8W.S9E7G.be.8N0vH9qW6yRzR.V7.1X8bW6q1I5S2W
deployment
Quick Start
- Create a working directory named after the service.
- Copy the compose file and generated `.env` into that directory.
- Review the variables and replace placeholders with real values.
- Run `docker compose up -d`.
mkdir traefik-reverse-proxy
cd traefik-reverse-proxy
# create docker-compose.yml
# create .env
docker compose up -d