version: "3"

services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "67:67/udp"
      - "8069:80/tcp"
    networks:
      - proxy
    environment:
      TZ: "Europe/Helsinki"
      WEBPASSWORD: "${WEBPASSWORD}"
    volumes:
      - "/docker/pihole/pihole:/etc/pihole/"
      - "/docker/pihole/dnsmasq:/etc/dnsmasq.d/"
    dns:
      - 127.0.0.1
      - 1.1.1.1
    # Recommended but not required (DHCP needs NET_ADMIN)
    #   https://github.com/pihole/docker-pihole#note-on-capabilities
    cap_add:
      - NET_ADMIN
    restart: unless-stopped
    labels:
      - "traefik.enable=true"

      - "traefik.http.routers.pihole-redirect.entrypoints=http"
      - "traefik.http.routers.pihole-redirect.rule=Host(`pihole.korhonen.cc`)"
      - "traefik.http.middlewares.http2https.redirectscheme.scheme=https"
      - "traefik.http.routers.pihole-redirect.middlewares=http2https"

      - "traefik.http.routers.pihole.entrypoints=https"
      - "traefik.http.routers.pihole.rule=Host(`pihole.korhonen.cc`)"
      - "traefik.http.routers.pihole.tls=true"
      - "traefik.http.routers.pihole.tls.certresolver=http"
      - "traefik.http.routers.pihole.service=pihole"
      - "traefik.docker.network=proxy"
      - "traefik.http.services.pihole.loadbalancer.server.port=80"

networks:
  proxy:
    external: true
