I’ve got both Heimdall and Pi-Hole running in docker. They both work fine, but I’d like to get the Pi-Hole advanced statistics in Heimdall. The others, I just put on the bridge network, but I’m not sure I can have the Pi-Hole on bridge and the macvlan network. Is that possible, or is there a better way to accomplish this?

    • Fenzik
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      1 year ago

      Not for PiHole but I was testing this recently with traefik. This has a bunch of traefik stuff in there (I’m on mobile so it’s too hard to edit it) but hopefully you see how the networks work

      # Testing macvlan setup for traefik
      # Will only work on linux because of macvlan network
      
      version: '3'
      
      services:
        traefik-whoami:
          image: traefik/whoami
          container_name: traefik_whoami
          networks:
            - bridge_network
          labels:
            - "traefik.enable=true"
            - "traefik.http.routers.whoami.rule=Host(`whoami.test`)"
            - "traefik.http.routers.whoami.entrypoints=http"
        
        traefik-reverse-proxy:
          image: traefik:v2.10
          container_name: traefik_reverse_proxy
          command:
            - "--api.insecure=true"  # Enable the API dashboard (insecure for testing)
            - "--providers.docker=true"  # Enable Docker provider
            - "--providers.docker.exposedbydefault=false"  # Disable exposing all containers by default
            - "--entrypoints.http.address=:80"  # HTTP entrypoint
            - "--entrypoints.http.forwardedheaders.insecure=true"  # Insecure forwarding (for testing)
            - "--providers.docker.network=bridge_network"  # Use bridge network for traefik discovery
          ports:
            - "1180:80"  # Expose HTTP entrypoint
            - "12345:8080"  # Expose Traefik dashboard
          networks:
            bridge_network: {}
            macvlan_network:
              ipv4_address: 192.168.1.69
          volumes:
            # TODO: Use docker.sock proxy instead of mounting directly
            # https://github.com/Tecnativa/docker-socket-proxy
            - /var/run/docker.sock:/var/run/docker.sock:ro
          labels:
            - "traefik.enable=true"
            - "traefik.http.routers.reverse-proxy.rule=Host(`traefik.test`)"
            - "traefik.http.routers.reverse-proxy.entrypoints=http"
      
      networks:
        bridge_network:
          driver: bridge
      
        macvlan_network:
          driver: macvlan
          driver_opts:
            parent: eth0
          ipam:
            config:
              - subnet: 192.168.1.0/24
                gateway: 192.168.1.1
                ip_range: 192.168.1.69/32  # Must be outside router's DHCP range