Skip to content

Instantly share code, notes, and snippets.

@matthauck
Created October 7, 2018 20:45
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save matthauck/ee26161f1ae80a123d502528b8cea028 to your computer and use it in GitHub Desktop.
Save matthauck/ee26161f1ae80a123d502528b8cea028 to your computer and use it in GitHub Desktop.
pihole and cloudflared on docker
#!/bin/bash
set -e
pushd cloudflared
docker build . -t cloudflared
popd
set +e
docker stop pihole && docker rm pihole
docker stop cloudflared && docker rm cloudflared
docker network rm dns-net
set -e
docker network create --driver bridge --subnet=172.19.1.0/24 dns-net
IP="<HOST-MACHINES-IP>"
IPv6=""
DNS1="172.19.1.8"
DNS2="172.19.1.8"
DOCKER_CONFIGS="/home/rancher/pihole-etc"
WEBPASSWORD="<PASSWORD>"
docker run -d \
--name pihole \
--network dns-net \
-p 53:53/tcp -p 53:53/udp \
-p 80:80 \
-p 443:443 \
-v "${DOCKER_CONFIGS}/pihole/:/etc/pihole/" \
-v "${DOCKER_CONFIGS}/dnsmasq.d/:/etc/dnsmasq.d/" \
-e ServerIP="${IP}" \
-e ServerIPv6="${IPv6}" \
-e DNS1="$DNS1" \
-e DNS2="$DNS2" \
-e WEBPASSWORD="${WEBPASSWORD}" \
--restart=unless-stopped \
pihole/pihole:latest
docker run -d \
--name cloudflared \
--network dns-net \
--ip 172.19.1.8 \
--add-host doh.cleanbrowsing.org:185.228.168.168 \
--restart=unless-stopped \
cloudflared:latest
# borrowed much from https://github.com/visibilityspots/dockerfile-cloudflared
FROM golang:alpine as gobuild
RUN apk update; \
apk add git gcc build-base; \
go get -v github.com/cloudflare/cloudflared/cmd/cloudflared
WORKDIR /go/src/github.com/cloudflare/cloudflared/cmd/cloudflared
RUN go build ./
FROM alpine:latest
RUN apk add --no-cache ca-certificates; \
rm -rf /var/cache/apk/*;
COPY --from=gobuild /go/src/github.com/cloudflare/cloudflared/cmd/cloudflared/cloudflared /usr/local/bin/cloudflared
# https://doh.cleanbrowsing.org/doh/adult-filter/
CMD ["/bin/sh", "-c", "/usr/local/bin/cloudflared proxy-dns --address 0.0.0.0 --port 53 --upstream https://doh.cleanbrowsing.org/doh/adult-filter/" ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment