Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

NodeBB

  1. Home
  2. Selfhosted
  3. Pihole + Unbound Docker Compose file

Pihole + Unbound Docker Compose file

Scheduled Pinned Locked Moved Selfhosted
selfhosted
30 Posts 11 Posters 20 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • O This user is from outside of this forum
    O This user is from outside of this forum
    [email protected]
    wrote last edited by
    #1

    Hi friends.

    I've been trying to find docker-compose.yaml for pihole+unbound so I can use pihole as both a recursive dns server and as local dns alongside Nginx Proxy Manager. But since v6 of pihole all the old files I could find don't work properly or at all.

    Does anyone here use pihole+unbound in docker?

    chris@lemmy.grey.failC T S N 4 Replies Last reply
    68
    • O [email protected]

      Hi friends.

      I've been trying to find docker-compose.yaml for pihole+unbound so I can use pihole as both a recursive dns server and as local dns alongside Nginx Proxy Manager. But since v6 of pihole all the old files I could find don't work properly or at all.

      Does anyone here use pihole+unbound in docker?

      chris@lemmy.grey.failC This user is from outside of this forum
      chris@lemmy.grey.failC This user is from outside of this forum
      [email protected]
      wrote last edited by
      #2
      services:
      
        pihole:
          container_name: pihole
          image: pihole/pihole:latest
          hostname: sheldon
          environment:
            HOST_CONTAINERNAME: pihole
            TZ: ${TZ}
            WEBPASSWORD: ${WEBPASSWORD}
            DNSMASQ_LISTENING: "all"
            PIHOLE_DNS_1: "unbound#53"
          ports:
            - "53:53/tcp"
            - "53:53/udp"
            - "67:67/udp" # Only required if you are using Pi-hole as your DHCP server
            - "8080:80/tcp"
          # network_mode: host
          dns:
            - 127.0.0.1
          networks:
            dns:
              ipv4_address: 172.22.0.2
          volumes:
            - /mnt/appdata/pihole/etc-pihole:/etc/pihole
            - /mnt/appdata/pihole/etc-dnsmasq.d:/etc/dnsmasq.d
          restart: unless-stopped
          depends_on:
            unbound:
              condition: service_healthy
      
        unbound:
          container_name: unbound
          image: klutchell/unbound:latest
          networks:
            dns:
              ipv4_address: 172.22.0.3
          volumes:
            - /mnt/appdata/unbound:/opt/unbound/etc/unbound/custom
          restart: unless-stopped
          healthcheck:
            test: ["CMD", "dig", "google.com", "@127.0.0.1"]
            interval: 10s
            timeout: 5s
            retries: 5
      
        wg-easy:
          container_name: wg-easy
          image: ghcr.io/wg-easy/wg-easy:15
          ports:
            - "51820:51820/udp"
            - "51821:51821/tcp"
          # environment:
          #   TZ: ${TZ}
          #   LANG: en
          #   WG_HOST: ${WG_HOST}
          #   PASSWORD_HASH: ${PASSWORD_HASH}
          #   WG_DEFAULT_DNS: 172.22.0.2
          #   WG_MTU: 1420
          networks:
            dns:
              ipv4_address: 172.22.0.4
          volumes:
            - /mnt/appdata/wg-easy:/etc/wireguard
            - /lib/modules:/lib/modules:ro
          cap_add:
            - NET_ADMIN
            - SYS_MODULE
          sysctls:
            - net.ipv4.ip_forward=1
            - net.ipv4.conf.all.src_valid_mark=1
            - net.ipv6.conf.all.disable_ipv6=0
            - net.ipv6.conf.all.forwarding=1
            - net.ipv6.conf.default.forwarding=1
          restart: unless-stopped
      
      networks:
        dns:
          external: true
      

      Feel free to just delete the wg-easy service.

      O O irmadlad@lemmy.worldI 3 Replies Last reply
      23
      • O [email protected]

        Hi friends.

        I've been trying to find docker-compose.yaml for pihole+unbound so I can use pihole as both a recursive dns server and as local dns alongside Nginx Proxy Manager. But since v6 of pihole all the old files I could find don't work properly or at all.

        Does anyone here use pihole+unbound in docker?

        T This user is from outside of this forum
        T This user is from outside of this forum
        [email protected]
        wrote last edited by
        #3

        https://github.com/IAmStoxe/wirehole

        vanilla_puddinfudge@infosec.pubV 1 Reply Last reply
        3
        • chris@lemmy.grey.failC [email protected]
          services:
          
            pihole:
              container_name: pihole
              image: pihole/pihole:latest
              hostname: sheldon
              environment:
                HOST_CONTAINERNAME: pihole
                TZ: ${TZ}
                WEBPASSWORD: ${WEBPASSWORD}
                DNSMASQ_LISTENING: "all"
                PIHOLE_DNS_1: "unbound#53"
              ports:
                - "53:53/tcp"
                - "53:53/udp"
                - "67:67/udp" # Only required if you are using Pi-hole as your DHCP server
                - "8080:80/tcp"
              # network_mode: host
              dns:
                - 127.0.0.1
              networks:
                dns:
                  ipv4_address: 172.22.0.2
              volumes:
                - /mnt/appdata/pihole/etc-pihole:/etc/pihole
                - /mnt/appdata/pihole/etc-dnsmasq.d:/etc/dnsmasq.d
              restart: unless-stopped
              depends_on:
                unbound:
                  condition: service_healthy
          
            unbound:
              container_name: unbound
              image: klutchell/unbound:latest
              networks:
                dns:
                  ipv4_address: 172.22.0.3
              volumes:
                - /mnt/appdata/unbound:/opt/unbound/etc/unbound/custom
              restart: unless-stopped
              healthcheck:
                test: ["CMD", "dig", "google.com", "@127.0.0.1"]
                interval: 10s
                timeout: 5s
                retries: 5
          
            wg-easy:
              container_name: wg-easy
              image: ghcr.io/wg-easy/wg-easy:15
              ports:
                - "51820:51820/udp"
                - "51821:51821/tcp"
              # environment:
              #   TZ: ${TZ}
              #   LANG: en
              #   WG_HOST: ${WG_HOST}
              #   PASSWORD_HASH: ${PASSWORD_HASH}
              #   WG_DEFAULT_DNS: 172.22.0.2
              #   WG_MTU: 1420
              networks:
                dns:
                  ipv4_address: 172.22.0.4
              volumes:
                - /mnt/appdata/wg-easy:/etc/wireguard
                - /lib/modules:/lib/modules:ro
              cap_add:
                - NET_ADMIN
                - SYS_MODULE
              sysctls:
                - net.ipv4.ip_forward=1
                - net.ipv4.conf.all.src_valid_mark=1
                - net.ipv6.conf.all.disable_ipv6=0
                - net.ipv6.conf.all.forwarding=1
                - net.ipv6.conf.default.forwarding=1
              restart: unless-stopped
          
          networks:
            dns:
              external: true
          

          Feel free to just delete the wg-easy service.

          O This user is from outside of this forum
          O This user is from outside of this forum
          [email protected]
          wrote last edited by
          #4

          Thank you very much.

          chris@lemmy.grey.failC 1 Reply Last reply
          2
          • chris@lemmy.grey.failC [email protected]
            services:
            
              pihole:
                container_name: pihole
                image: pihole/pihole:latest
                hostname: sheldon
                environment:
                  HOST_CONTAINERNAME: pihole
                  TZ: ${TZ}
                  WEBPASSWORD: ${WEBPASSWORD}
                  DNSMASQ_LISTENING: "all"
                  PIHOLE_DNS_1: "unbound#53"
                ports:
                  - "53:53/tcp"
                  - "53:53/udp"
                  - "67:67/udp" # Only required if you are using Pi-hole as your DHCP server
                  - "8080:80/tcp"
                # network_mode: host
                dns:
                  - 127.0.0.1
                networks:
                  dns:
                    ipv4_address: 172.22.0.2
                volumes:
                  - /mnt/appdata/pihole/etc-pihole:/etc/pihole
                  - /mnt/appdata/pihole/etc-dnsmasq.d:/etc/dnsmasq.d
                restart: unless-stopped
                depends_on:
                  unbound:
                    condition: service_healthy
            
              unbound:
                container_name: unbound
                image: klutchell/unbound:latest
                networks:
                  dns:
                    ipv4_address: 172.22.0.3
                volumes:
                  - /mnt/appdata/unbound:/opt/unbound/etc/unbound/custom
                restart: unless-stopped
                healthcheck:
                  test: ["CMD", "dig", "google.com", "@127.0.0.1"]
                  interval: 10s
                  timeout: 5s
                  retries: 5
            
              wg-easy:
                container_name: wg-easy
                image: ghcr.io/wg-easy/wg-easy:15
                ports:
                  - "51820:51820/udp"
                  - "51821:51821/tcp"
                # environment:
                #   TZ: ${TZ}
                #   LANG: en
                #   WG_HOST: ${WG_HOST}
                #   PASSWORD_HASH: ${PASSWORD_HASH}
                #   WG_DEFAULT_DNS: 172.22.0.2
                #   WG_MTU: 1420
                networks:
                  dns:
                    ipv4_address: 172.22.0.4
                volumes:
                  - /mnt/appdata/wg-easy:/etc/wireguard
                  - /lib/modules:/lib/modules:ro
                cap_add:
                  - NET_ADMIN
                  - SYS_MODULE
                sysctls:
                  - net.ipv4.ip_forward=1
                  - net.ipv4.conf.all.src_valid_mark=1
                  - net.ipv6.conf.all.disable_ipv6=0
                  - net.ipv6.conf.all.forwarding=1
                  - net.ipv6.conf.default.forwarding=1
                restart: unless-stopped
            
            networks:
              dns:
                external: true
            

            Feel free to just delete the wg-easy service.

            O This user is from outside of this forum
            O This user is from outside of this forum
            [email protected]
            wrote last edited by
            #5

            You seem knowledgeable. I have a question about this. I have ran this type of setup before. Every time, I ended up ditching unbound because it throws DNSSEC error. I have tried troubleshooting but it doesn’t work.

            chris@lemmy.grey.failC Z 2 Replies Last reply
            3
            • O [email protected]

              You seem knowledgeable. I have a question about this. I have ran this type of setup before. Every time, I ended up ditching unbound because it throws DNSSEC error. I have tried troubleshooting but it doesn’t work.

              chris@lemmy.grey.failC This user is from outside of this forum
              chris@lemmy.grey.failC This user is from outside of this forum
              [email protected]
              wrote last edited by
              #6

              Is your ISP interfering?

              O 1 Reply Last reply
              0
              • chris@lemmy.grey.failC [email protected]

                Is your ISP interfering?

                O This user is from outside of this forum
                O This user is from outside of this forum
                [email protected]
                wrote last edited by
                #7

                Not as far as I know. I have never been throttled or anything ever. I have never seen any charges.

                chris@lemmy.grey.failC 1 Reply Last reply
                0
                • chris@lemmy.grey.failC [email protected]
                  services:
                  
                    pihole:
                      container_name: pihole
                      image: pihole/pihole:latest
                      hostname: sheldon
                      environment:
                        HOST_CONTAINERNAME: pihole
                        TZ: ${TZ}
                        WEBPASSWORD: ${WEBPASSWORD}
                        DNSMASQ_LISTENING: "all"
                        PIHOLE_DNS_1: "unbound#53"
                      ports:
                        - "53:53/tcp"
                        - "53:53/udp"
                        - "67:67/udp" # Only required if you are using Pi-hole as your DHCP server
                        - "8080:80/tcp"
                      # network_mode: host
                      dns:
                        - 127.0.0.1
                      networks:
                        dns:
                          ipv4_address: 172.22.0.2
                      volumes:
                        - /mnt/appdata/pihole/etc-pihole:/etc/pihole
                        - /mnt/appdata/pihole/etc-dnsmasq.d:/etc/dnsmasq.d
                      restart: unless-stopped
                      depends_on:
                        unbound:
                          condition: service_healthy
                  
                    unbound:
                      container_name: unbound
                      image: klutchell/unbound:latest
                      networks:
                        dns:
                          ipv4_address: 172.22.0.3
                      volumes:
                        - /mnt/appdata/unbound:/opt/unbound/etc/unbound/custom
                      restart: unless-stopped
                      healthcheck:
                        test: ["CMD", "dig", "google.com", "@127.0.0.1"]
                        interval: 10s
                        timeout: 5s
                        retries: 5
                  
                    wg-easy:
                      container_name: wg-easy
                      image: ghcr.io/wg-easy/wg-easy:15
                      ports:
                        - "51820:51820/udp"
                        - "51821:51821/tcp"
                      # environment:
                      #   TZ: ${TZ}
                      #   LANG: en
                      #   WG_HOST: ${WG_HOST}
                      #   PASSWORD_HASH: ${PASSWORD_HASH}
                      #   WG_DEFAULT_DNS: 172.22.0.2
                      #   WG_MTU: 1420
                      networks:
                        dns:
                          ipv4_address: 172.22.0.4
                      volumes:
                        - /mnt/appdata/wg-easy:/etc/wireguard
                        - /lib/modules:/lib/modules:ro
                      cap_add:
                        - NET_ADMIN
                        - SYS_MODULE
                      sysctls:
                        - net.ipv4.ip_forward=1
                        - net.ipv4.conf.all.src_valid_mark=1
                        - net.ipv6.conf.all.disable_ipv6=0
                        - net.ipv6.conf.all.forwarding=1
                        - net.ipv6.conf.default.forwarding=1
                      restart: unless-stopped
                  
                  networks:
                    dns:
                      external: true
                  

                  Feel free to just delete the wg-easy service.

                  irmadlad@lemmy.worldI This user is from outside of this forum
                  irmadlad@lemmy.worldI This user is from outside of this forum
                  [email protected]
                  wrote last edited by
                  #8

                  How well does that run in docker? I've always liked docker, but it seems to me that certain apps should touch metal than be containerized. Maybe I'm too old school.

                  B chris@lemmy.grey.failC appoxo@lemmy.dbzer0.comA 3 Replies Last reply
                  2
                  • irmadlad@lemmy.worldI [email protected]

                    How well does that run in docker? I've always liked docker, but it seems to me that certain apps should touch metal than be containerized. Maybe I'm too old school.

                    B This user is from outside of this forum
                    B This user is from outside of this forum
                    [email protected]
                    wrote last edited by
                    #9

                    I have all these services in docker as well (although not with the docker compose file here) and they run perfectly fine with a very low resource footprint.

                    irmadlad@lemmy.worldI 1 Reply Last reply
                    3
                    • O [email protected]

                      Hi friends.

                      I've been trying to find docker-compose.yaml for pihole+unbound so I can use pihole as both a recursive dns server and as local dns alongside Nginx Proxy Manager. But since v6 of pihole all the old files I could find don't work properly or at all.

                      Does anyone here use pihole+unbound in docker?

                      S This user is from outside of this forum
                      S This user is from outside of this forum
                      [email protected]
                      wrote last edited by
                      #10

                      I used to use a pihole+unbound single container docker image but technitium is just easier for me. Might be worth exploring other options like adguard home also.

                      1 Reply Last reply
                      2
                      • irmadlad@lemmy.worldI [email protected]

                        How well does that run in docker? I've always liked docker, but it seems to me that certain apps should touch metal than be containerized. Maybe I'm too old school.

                        chris@lemmy.grey.failC This user is from outside of this forum
                        chris@lemmy.grey.failC This user is from outside of this forum
                        [email protected]
                        wrote last edited by [email protected]
                        #11

                        It runs quite well; Docker's not a full fledged virtual machine so much as a virtualization layer. I also love the portability of running this in Docker. I rsync a backup of this and the Appdata folder every night. When or if this server fails, I can be up and running again in minutes on another machine.

                        Z 1 Reply Last reply
                        3
                        • O [email protected]

                          Not as far as I know. I have never been throttled or anything ever. I have never seen any charges.

                          chris@lemmy.grey.failC This user is from outside of this forum
                          chris@lemmy.grey.failC This user is from outside of this forum
                          [email protected]
                          wrote last edited by
                          #12

                          I mean in terms of hijacking DNS. Might be worth a look.

                          O 1 Reply Last reply
                          1
                          • O [email protected]

                            Thank you very much.

                            chris@lemmy.grey.failC This user is from outside of this forum
                            chris@lemmy.grey.failC This user is from outside of this forum
                            [email protected]
                            wrote last edited by
                            #13

                            How'd it work out?

                            O 1 Reply Last reply
                            1
                            • B [email protected]

                              I have all these services in docker as well (although not with the docker compose file here) and they run perfectly fine with a very low resource footprint.

                              irmadlad@lemmy.worldI This user is from outside of this forum
                              irmadlad@lemmy.worldI This user is from outside of this forum
                              [email protected]
                              wrote last edited by
                              #14

                              0K that's cool. I love docker. I would like to upgrade to k8s but I haven't yet plumbed the depths of docker. I was just with the overhead of docker, since Pi-Hole/Unbound is a dedicated system, I thought maybe it'd get better thru put baked in. I wouldn't listen to me tho, I'm medicated.

                              B 1 Reply Last reply
                              0
                              • chris@lemmy.grey.failC [email protected]

                                I mean in terms of hijacking DNS. Might be worth a look.

                                O This user is from outside of this forum
                                O This user is from outside of this forum
                                [email protected]
                                wrote last edited by
                                #15

                                I don’t think it happens because I have used NextDNS and the logs show my activity.

                                1 Reply Last reply
                                0
                                • irmadlad@lemmy.worldI [email protected]

                                  0K that's cool. I love docker. I would like to upgrade to k8s but I haven't yet plumbed the depths of docker. I was just with the overhead of docker, since Pi-Hole/Unbound is a dedicated system, I thought maybe it'd get better thru put baked in. I wouldn't listen to me tho, I'm medicated.

                                  B This user is from outside of this forum
                                  B This user is from outside of this forum
                                  [email protected]
                                  wrote last edited by
                                  #16

                                  As an anecdote: I have one system (x86) with pi-hole and unbound in a docker, and a secondary raspberry pi with pi-hole running on bare metal. The docker system (although much more performant in general) has a lower latency as the raspberry bare metal install.

                                  1 Reply Last reply
                                  0
                                  • chris@lemmy.grey.failC [email protected]

                                    It runs quite well; Docker's not a full fledged virtual machine so much as a virtualization layer. I also love the portability of running this in Docker. I rsync a backup of this and the Appdata folder every night. When or if this server fails, I can be up and running again in minutes on another machine.

                                    Z This user is from outside of this forum
                                    Z This user is from outside of this forum
                                    [email protected]
                                    wrote last edited by
                                    #17

                                    I do exactly the same thing for all three of these services! My implementation is on podman rather than docker, but basically the same deal.

                                    1 Reply Last reply
                                    1
                                    • O [email protected]

                                      You seem knowledgeable. I have a question about this. I have ran this type of setup before. Every time, I ended up ditching unbound because it throws DNSSEC error. I have tried troubleshooting but it doesn’t work.

                                      Z This user is from outside of this forum
                                      Z This user is from outside of this forum
                                      [email protected]
                                      wrote last edited by
                                      #18

                                      I just went through my setup to verify dnssec settings in unbound to troubleshoot strange latency when removing random names while browsing. Did you verify the unbound certificate file was created and had the proper permissions? There are also a couple other configuration items in unbound related to dnssec that can be tweaked to improve the implementation.

                                      O 1 Reply Last reply
                                      1
                                      • chris@lemmy.grey.failC [email protected]

                                        How'd it work out?

                                        O This user is from outside of this forum
                                        O This user is from outside of this forum
                                        [email protected]
                                        wrote last edited by
                                        #19

                                        Deleted the WireGuard and modified few other things in docker compose file and so far it's running fine without any errors. So far do good.

                                        1 Reply Last reply
                                        1
                                        • T [email protected]

                                          https://github.com/IAmStoxe/wirehole

                                          vanilla_puddinfudge@infosec.pubV This user is from outside of this forum
                                          vanilla_puddinfudge@infosec.pubV This user is from outside of this forum
                                          [email protected]
                                          wrote last edited by
                                          #20

                                          3 years ago

                                          2 years ago

                                          uh, nah

                                          T 1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          Powered by NodeBB Contributors
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups