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@lemmy.ml
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    11 months 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