version: "3.3"

services:

  jackettio:
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=jackettio_traefik"
      - "traefik.http.routers.jackettio.entrypoints=web,websecure"
      - "traefik.http.routers.jackettio.rule=Host(`${ACME_DOMAIN:-}`)"
      - "traefik.http.routers.jackettio.tls=true"
      - "traefik.http.routers.jackettio.tls.certresolver=letsencryptresolver"
    networks:
      - traefik

  jackett:
    ports:
      - 9117:9117

  traefik:
    image: "traefik:v2.10"
    container_name: "traefik"
    command:
      #- "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.letsencryptresolver.acme.httpchallenge=true"
      - "--certificatesresolvers.letsencryptresolver.acme.httpchallenge.entrypoint=web"
      - "--certificatesresolvers.letsencryptresolver.acme.email=${ACME_EMAIL:-}"
      - "--certificatesresolvers.letsencryptresolver.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
    volumes:
      # To persist certificates
      - letsencrypt:/letsencrypt
      # So that Traefik can listen to the Docker events
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    networks:
      - traefik

networks:
  traefik:

volumes:
  letsencrypt: