From 2d9b01dab0a330b926f5d8a7580e3c8278cc6825 Mon Sep 17 00:00:00 2001 From: ryuupendragon Date: Mon, 21 Jul 2025 12:24:17 +0530 Subject: [PATCH] Add traefik --- traefik/docker-compose.yml | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 traefik/docker-compose.yml diff --git a/traefik/docker-compose.yml b/traefik/docker-compose.yml new file mode 100644 index 0000000..7021be6 --- /dev/null +++ b/traefik/docker-compose.yml @@ -0,0 +1,49 @@ +services: + traefik: + container_name: traefik + image: docker.io/library/traefik:v3.4.4 + restart: unless-stopped + security_opt: + - no-new-privileges:true + secrets: + - cf_api_token + env_file: .env + labels: + - traefik.enable=true + - traefik.http.routers.traefik.entrypoints=http + - traefik.http.routers.traefik.rule=Host(`traefik.local.${DOMAIN_NAME}`) + - traefik.http.middlewares.traefik-auth.basicauth.users=${TRAEFIK_DASHBOARD_CREDENTIALS} + - traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https + - traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto=https + - traefik.http.routers.traefik.middlewares=traefik-https-redirect + - traefik.http.routers.traefik-secure.entrypoints=https + - traefik.http.routers.traefik-secure.rule=Host(`traefik.local.${DOMAIN_NAME}`) + - traefik.http.routers.traefik-secure.middlewares=traefik-auth + - traefik.http.routers.traefik-secure.tls=true + - traefik.http.routers.traefik-secure.tls.certresolver=cloudflare + - traefik.http.routers.traefik-secure.tls.domains[0].main=local.${DOMAIN_NAME} + - traefik.http.routers.traefik-secure.tls.domains[0].sans=*.local.${DOMAIN_NAME} + - traefik.http.routers.traefik-secure.service=api@internal + environment: + CF_DNS_API_TOKEN_FILE: /run/secrets/cf_api_token + TRAEFIK_DASHBOARD_CREDENTIALS: ${TRAEFIK_DASHBOARD_CREDENTIALS} + volumes: + - ./data/traefik.yml:/traefik.yml:ro + - ./data/acme.json:/acme.json + - ./data/config.yml:/config.yml:ro + - /etc/localtime:/etc/localtime:ro + - /var/run/docker.sock:/var/run/docker.sock:ro + ports: + - 80:80 + - 443:443 + - 443:443/udp + networks: + - frontend + +networks: + frontend: + external: true + +secrets: + cf_api_token: + file: ./cf_api_token.txt