################################################################################
# Don't forget to set the proxy variables in your nopaque.env                  #
# Traefik sets the X_FOR, X_HOST, X_PORT and X_PROTO headers by default        #
################################################################################
version: "3.5"

networks:
  reverse-proxy:
    external:
      name: reverse-proxy

services:
  nopaque:
    labels:
      - "traefik.docker.network=reverse-proxy"
      - "traefik.enable=true"
      ### <http> ###
      - "traefik.http.middlewares.nopaque-header.headers.customrequestheaders.X-Forwarded-Proto=http"
      - "traefik.http.routers.nopaque.entrypoints=web"
      - "traefik.http.routers.nopaque.middlewares=nopaque-header, redirect-to-https@file"
      - "traefik.http.routers.nopaque.rule=Host(`<DOMAIN>`)"
      ### </http> ###
      ### <https> ###
      - "traefik.http.middlewares.nopaque-secure-header.headers.customrequestheaders.X-Forwarded-Proto=https"
      - "traefik.http.routers.nopaque-secure.entrypoints=web-secure"
      - "traefik.http.routers.nopaque-secure.middlewares=hsts-header@file, nopaque-secure-header"
      - "traefik.http.routers.nopaque-secure.rule=Host(`<DOMAIN>`)"
      - "traefik.http.routers.nopaque-secure.tls.certresolver=<CERTRESOLVER>"
      - "traefik.http.routers.nopaque-secure.tls.options=intermediate@file"
      ### </https> ###
    networks:
      - default
      - reverse-proxy
