Added Pihole with cloudflared

This commit is contained in:
John D 2021-05-25 01:44:32 -07:00
parent 5882b0e5d0
commit ffb38bbdaa
5 changed files with 55 additions and 17 deletions

View File

@ -29,7 +29,7 @@ IPV6_GW=""
FORCED_INTFC=""
# container name; e.g. nextdns, pihole, adguardhome, etc.
CONTAINER=nextdns
CONTAINER=pihole
if ! test -f /opt/cni/bin/macvlan; then
echo "Error: CNI plugins not found. You can install it with the following command:" >&2

View File

@ -1,5 +1,5 @@
# Run NextDNS on your UDM
# THIS IS NO LONGER MAINTAINED
## Features
1. Run NextDNS on your UDM with a completely isolated network stack. This will not port conflict or be influenced by any changes on by Ubiquiti.

View File

@ -0,0 +1,15 @@
#!/bin/bash
if ! test -f /opt/cni/bin/macvlan; then
ARCH=$(uname -m)
if [ $ARCH == "x86_64" ]
then
ARCH="amd64"
elif [ $ARCH == "aarch64" ]; then
ARCH="arm64"
fi
curl -fsSLo "/opt/cloudflared" https://github.com/cloudflare/cloudflared/releases/download/2021.5.9/cloudflared-linux-$ARCH
chmod +x /opt/cloudflared
fi
/opt/cloudflared update
/opt/cloudflared proxy-dns $CLOUDFLARED_OPTS &

5
run-pihole/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
# docker buildx build --platform linux/amd64,linux/arm64 . -t docker.io/boostchicken/pihole:latest --push
FROM pihole/pihole:latest
ENV CLOUDFLARED_OPTS="--port 5053 --address 0.0.0.0"
COPY 10-cloudflared.sh /etc/cont-init.d/

View File

@ -20,8 +20,8 @@
1. Copy [05-install-cni-plugins.sh](../cni-plugins/05-install-cni-plugins.sh) to /mnt/data/on_boot.d
1. Execute /mnt/data/on_boot.d/05-install-cni-plugins.sh
1. On your controller, make a Corporate network with no DHCP server and give it a VLAN. For this example we are using VLAN 5.
2. Copy [20-dns.conflist](../cni-plugins/20-dns.conflist) to /mnt/data/podman/cni. This will create your podman macvlan network
3. Copy [10-dns.sh](../dns-common/on_boot.d/10-dns.sh) to /mnt/data/on_boot.d and update its values to reflect your environment
1. Copy [20-dns.conflist](../cni-plugins/20-dns.conflist) to /mnt/data/podman/cni. This will create your podman macvlan network
1. Copy [10-dns.sh](../dns-common/on_boot.d/10-dns.sh) to /mnt/data/on_boot.d and update its values to reflect your environment
```
...
@ -33,15 +33,15 @@
...
```
4. Execute /mnt/data/on_boot.d/10-dns.sh
5. Create directories for persistent Pi-hole configuration
1. Execute /mnt/data/on_boot.d/10-dns.sh
1. Create directories for persistent Pi-hole configuration
```
mkdir -p /mnt/data/etc-pihole
mkdir -p /mnt/data/pihole/etc-dnsmasq.d
```
6. Create and run the Pi-hole docker container. The following command sets the upstream DNS servers to 1.1.1.1 and 8.8.8.8.
1. Create and run the Pi-hole docker container. The following command sets the upstream DNS servers to 1.1.1.1 and 8.8.8.8.
```sh
podman run -d --network dns --restart always \
@ -59,19 +59,37 @@
-e IPv6="False" \
pihole/pihole:latest
```
The below errors are expected and acceptable
```sh
ERRO[0022] unable to get systemd connection to add healthchecks: dial unix /run/systemd/private: connect: no such file or directory
ERRO[0022] unable to get systemd connection to start healthchecks: dial unix /run/systemd/private: connect: no such file or directory
```
The below errors are expected and acceptable
```sh
ERRO[0022] unable to get systemd connection to add healthchecks: dial unix /run/systemd/private: connect: no such file or directory
ERRO[0022] unable to get systemd connection to start healthchecks: dial unix /run/systemd/private: connect: no such file or directory
```
6. Set pihole password
1. Set pihole password
```sh
podman exec -it pihole pihole -a -p YOURNEWPASSHERE
```
7. Update your DNS Servers to 10.0.5.3 (or your custom ip) for each of your Networks (UDM GUI | Networks | Advanced | DHCP Name Server)
8. Access the pihole like you would normally, e.g. http://10.0.5.3 if using examples above
1. Update your DNS Servers to 10.0.5.3 (or your custom ip) for each of your Networks (UDM GUI | Networks | Advanced | DHCP Name Server)
1. Access the pihole like you would normally, e.g. http://10.0.5.3 if using examples above
## PiHole with CloudFlareD Command
```sh
podman run -d --network dns --restart always \
--name pihole \
-e TZ="America/Los Angeles" \
-v "/mnt/data/etc-pihole/:/etc/pihole/" \
-v "/mnt/data/pihole/etc-dnsmasq.d/:/etc/dnsmasq.d/" \
--dns=127.0.0.1 \
--dns=1.1.1.1 \
--hostname pi.hole \
-e CLOUDFLARED_OPTS="--port 5053 --address 0.0.0.0" \
-e VIRTUAL_HOST="pi.hole" \
-e PROXY_LOCATION="pi.hole" \
-e ServerIP="10.0.5.3" \
-e PIHOLE_DNS_="127.0.0.1#5053" \
-e IPv6="False" \
boostchicken/pihole:latest
```