From 1e3b39af0f3294bb9456cb6b1ac2ededb0ac1564 Mon Sep 17 00:00:00 2001 From: emrekirman Date: Thu, 21 Aug 2025 18:07:27 +0300 Subject: [PATCH] traefik production manfiests is ready --- traefik/prod/traefik-proxy.yml | 55 ++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 traefik/prod/traefik-proxy.yml diff --git a/traefik/prod/traefik-proxy.yml b/traefik/prod/traefik-proxy.yml new file mode 100644 index 0000000..80b6d04 --- /dev/null +++ b/traefik/prod/traefik-proxy.yml @@ -0,0 +1,55 @@ +version: '3.8' + +services: + traefik: + image: traefik:v3.0 # Or the latest v3.x image + command: + # Global Configuration + - --global.checknewversion=true + - --global.sendanonymoususage=false + + # Entrypoints (where Traefik listens for traffic) + - --entrypoints.web.address=:80 + - --entrypoints.websecure.address=:443 + + # Enable Traefik Dashboard (optional, for monitoring and debugging) + - --api.dashboard=false + - --api.insecure=false # WARNING: Do not use in production without proper authentication + + # Enable Swarm Provider + - --providers.swarm=true + - --providers.swarm.exposedbydefault=false # Only expose services with 'traefik.enable=true' label + - --providers.swarm.network=traefik-public # Specify the overlay network for service discovery + + # Let's Encrypt Configuration + - --certificatesresolvers.myresolver.acme.tlschallenge=true # Use TLS-ALPN-01 challenge + - --certificatesresolvers.myresolver.acme.email=emrekirman10@gmail.com # Replace with your email + - --certificatesresolvers.myresolver.acme.storage=/etc/traefik/acme/acme.json # Persistent storage for certificates + # - --certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory # Uncomment for testing to avoid hitting rate limits + + # Access Logs (optional) + - --accesslog=true + - --accesslog.filepath=/var/log/traefik/access.log + + # Log Level (optional) + - --log.level=INFO + + ports: + - 80:80 # HTTP + - 443:443 # HTTPS + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro # Mount Docker socket for Swarm provider + - /var/data/acme:/etc/traefik/acme # Persistent storage for Let's Encrypt certificates + - /var/data/logs:/var/log/traefik # Persistent storage for access logs (optional) + networks: + - traefik-public + deploy: + mode: global # Deploy Traefik on all manager nodes (or a specific one with placement constraints) + placement: + constraints: + - node.role == manager # Run Traefik only on manager nodes (recommended) + restart_policy: + condition: on-failure +networks: + traefik-public: + external: true # Use an existing overlay network