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

  1. Create a working directory named after the service.
  2. Copy the compose file and generated `.env` into that directory.
  3. Review the variables and replace placeholders with real values.
  4. Run `docker compose up -d`.
mkdir traefik-reverse-proxy
cd traefik-reverse-proxy
# create docker-compose.yml
# create .env
docker compose up -d