diff --git a/pi-hole/hooks/pre-install b/pi-hole/hooks/pre-install new file mode 100755 index 0000000..5e0da11 --- /dev/null +++ b/pi-hole/hooks/pre-install @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +set -euo pipefail + +RESOLVED_SERVICE_NAME="systemd-resolved" +RESOLVED_CONF_FILE="/etc/systemd/resolved.conf" + +# Check if the 'systemd-resolved' service is running +if ! systemctl is-active --quiet service "${RESOLVED_SERVICE_NAME}"; then + echo "Service '${RESOLVED_SERVICE_NAME}' is not running" + exit +fi + +# Check if the DNS Stub Listener is running +if cat "${RESOLVED_CONF_FILE}" | grep --quiet "^DNSStubListener=no$"; then + echo "DNSStubListener already turned off" + exit +fi + +echo "Turning off the DNS Stub Listener" + +# Turn off DNSStubListener within config file +sed -r -i.orig 's/#?DNSStubListener=yes/DNSStubListener=no/g' "${RESOLVED_CONF_FILE}" + +# Remove active resolv.conf which would have +# localhost (systemd-resolved's DNS listener) as the DNS resolver +rm -f /etc/resolv.conf + +# Create a symlink between systemd-resolved's upstream resolv.conf +# and the OS's resolv.conf +ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf + +echo "Restart service '${RESOLVED_SERVICE_NAME}'" +systemctl restart "${RESOLVED_SERVICE_NAME}" \ No newline at end of file diff --git a/pi-hole/umbrel-app.yml b/pi-hole/umbrel-app.yml index 040f761..2b47a0d 100644 --- a/pi-hole/umbrel-app.yml +++ b/pi-hole/umbrel-app.yml @@ -1,4 +1,4 @@ -manifestVersion: 1 +manifestVersion: 1.1 id: pi-hole category: Networking name: Pi-hole