Fix Pi-hole v6 LAN DNS mode
This commit is contained in:
parent
727ab402a3
commit
3e23b794e7
|
|
@ -11,9 +11,10 @@ Kubernetes cluster:
|
||||||
|
|
||||||
Pi-hole also keeps public fallback upstreams in its config, so DNS can continue
|
Pi-hole also keeps public fallback upstreams in its config, so DNS can continue
|
||||||
to resolve through `1.1.1.1` and `9.9.9.9` if the Unbound container stops.
|
to resolve through `1.1.1.1` and `9.9.9.9` if the Unbound container stops.
|
||||||
For Pi-hole v6, the stack sets `FTLCONF_dns_interface=ALL` through
|
For Pi-hole v6, the stack sets `FTLCONF_dns_interface=ALL` and
|
||||||
`PIHOLE_DNS_INTERFACE` so LAN clients such as the Debian control host are not
|
`FTLCONF_dns_listeningMode=ALL` through `PIHOLE_DNS_INTERFACE` and
|
||||||
rejected as non-local networks.
|
`PIHOLE_DNS_LISTENING_MODE` so LAN clients such as the Debian control host are
|
||||||
|
not rejected as non-local networks.
|
||||||
|
|
||||||
The bootstrap script prefers Docker data under `/nvme-storage/docker` only when
|
The bootstrap script prefers Docker data under `/nvme-storage/docker` only when
|
||||||
that path is an active mount point and writable. If the NVMe is missing or
|
that path is an active mount point and writable. If the NVMe is missing or
|
||||||
|
|
@ -35,7 +36,7 @@ Useful overrides:
|
||||||
```bash
|
```bash
|
||||||
LAB_RPI_HOST=192.168.100.89 ./jeannie rpi-services
|
LAB_RPI_HOST=192.168.100.89 ./jeannie rpi-services
|
||||||
PIHOLE_WEBPASSWORD='<password>' ./jeannie rpi-services
|
PIHOLE_WEBPASSWORD='<password>' ./jeannie rpi-services
|
||||||
PIHOLE_DNS_INTERFACE=ALL ./jeannie rpi-services
|
PIHOLE_DNS_INTERFACE=ALL PIHOLE_DNS_LISTENING_MODE=ALL ./jeannie rpi-services
|
||||||
PIHOLE_WEB_PORT=8081 UPTIME_KUMA_PORT=3001 ./jeannie rpi-services
|
PIHOLE_WEB_PORT=8081 UPTIME_KUMA_PORT=3001 ./jeannie rpi-services
|
||||||
LAB_RPI_STOP_LEGACY_PIHOLE=false ./jeannie rpi-services
|
LAB_RPI_STOP_LEGACY_PIHOLE=false ./jeannie rpi-services
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -141,6 +141,7 @@ PIHOLE_DNS_BIND_IP=${PIHOLE_DNS_BIND_IP:-0.0.0.0}
|
||||||
PIHOLE_WEB_BIND_IP=${PIHOLE_WEB_BIND_IP:-0.0.0.0}
|
PIHOLE_WEB_BIND_IP=${PIHOLE_WEB_BIND_IP:-0.0.0.0}
|
||||||
PIHOLE_WEBPASSWORD=${PIHOLE_WEBPASSWORD}
|
PIHOLE_WEBPASSWORD=${PIHOLE_WEBPASSWORD}
|
||||||
PIHOLE_DNS_INTERFACE=${PIHOLE_DNS_INTERFACE:-ALL}
|
PIHOLE_DNS_INTERFACE=${PIHOLE_DNS_INTERFACE:-ALL}
|
||||||
|
PIHOLE_DNS_LISTENING_MODE=${PIHOLE_DNS_LISTENING_MODE:-ALL}
|
||||||
PIHOLE_UPSTREAMS=${PIHOLE_UPSTREAMS:-unbound#53;1.1.1.1;9.9.9.9}
|
PIHOLE_UPSTREAMS=${PIHOLE_UPSTREAMS:-unbound#53;1.1.1.1;9.9.9.9}
|
||||||
PIHOLE_DATA_DIR=${PIHOLE_DATA_DIR:-${DATA_DIR}/pihole/etc-pihole}
|
PIHOLE_DATA_DIR=${PIHOLE_DATA_DIR:-${DATA_DIR}/pihole/etc-pihole}
|
||||||
PIHOLE_DNSMASQ_DIR=${PIHOLE_DNSMASQ_DIR:-${DATA_DIR}/pihole/etc-dnsmasq.d}
|
PIHOLE_DNSMASQ_DIR=${PIHOLE_DNSMASQ_DIR:-${DATA_DIR}/pihole/etc-dnsmasq.d}
|
||||||
|
|
@ -254,9 +255,7 @@ for line in useful_lines(static_dhcp_hosts_file):
|
||||||
PY
|
PY
|
||||||
sudo docker cp "${dnsmasq_file}" "${pihole_container}:/etc/dnsmasq.d/02-homelab-managed-dns.conf"
|
sudo docker cp "${dnsmasq_file}" "${pihole_container}:/etc/dnsmasq.d/02-homelab-managed-dns.conf"
|
||||||
rm -f "${dnsmasq_file}"
|
rm -f "${dnsmasq_file}"
|
||||||
if ! sudo docker exec "${pihole_container}" pihole reloaddns; then
|
|
||||||
sudo docker restart "${pihole_container}" >/dev/null
|
sudo docker restart "${pihole_container}" >/dev/null
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
seed_uptime_kuma_monitors() {
|
seed_uptime_kuma_monitors() {
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ services:
|
||||||
WEBPASSWORD: ${PIHOLE_WEBPASSWORD:-homelab-change-me}
|
WEBPASSWORD: ${PIHOLE_WEBPASSWORD:-homelab-change-me}
|
||||||
DNSMASQ_LISTENING: all
|
DNSMASQ_LISTENING: all
|
||||||
FTLCONF_dns_interface: ${PIHOLE_DNS_INTERFACE:-ALL}
|
FTLCONF_dns_interface: ${PIHOLE_DNS_INTERFACE:-ALL}
|
||||||
|
FTLCONF_dns_listeningMode: ${PIHOLE_DNS_LISTENING_MODE:-ALL}
|
||||||
PIHOLE_DNS_: ${PIHOLE_UPSTREAMS:-unbound#53;1.1.1.1;9.9.9.9}
|
PIHOLE_DNS_: ${PIHOLE_UPSTREAMS:-unbound#53;1.1.1.1;9.9.9.9}
|
||||||
FTLCONF_dns_upstreams: ${PIHOLE_UPSTREAMS:-unbound#53;1.1.1.1;9.9.9.9}
|
FTLCONF_dns_upstreams: ${PIHOLE_UPSTREAMS:-unbound#53;1.1.1.1;9.9.9.9}
|
||||||
REV_SERVER: ${PIHOLE_REV_SERVER:-false}
|
REV_SERVER: ${PIHOLE_REV_SERVER:-false}
|
||||||
|
|
|
||||||
8
jeannie
8
jeannie
|
|
@ -4658,12 +4658,10 @@ status_http_reachable() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
status_gitea_public_repo_ok() {
|
status_gitea_public_ok() {
|
||||||
local root_url="${LAB_GITEA_ROOT_URL:-${LAB_PUBLIC_URL:-https://lab2025.duckdns.org}/git/}"
|
local root_url="${LAB_GITEA_ROOT_URL:-${LAB_PUBLIC_URL:-https://lab2025.duckdns.org}/git/}"
|
||||||
local repo_owner="${LAB_GITEA_REPO_OWNER:-jv}"
|
|
||||||
local repo_name="${LAB_GITEA_REPO_NAME:-my-homelab-configs}"
|
|
||||||
|
|
||||||
status_http_ok "${root_url%/}/${repo_owner}/${repo_name}/"
|
status_http_ok "${root_url%/}/user/login"
|
||||||
}
|
}
|
||||||
|
|
||||||
status_cascade_check() {
|
status_cascade_check() {
|
||||||
|
|
@ -4855,7 +4853,7 @@ status_cascade_report() {
|
||||||
status_cascade_check "OCI edge SSH" check_edge_ssh || failures=$((failures + 1))
|
status_cascade_check "OCI edge SSH" check_edge_ssh || failures=$((failures + 1))
|
||||||
status_cascade_check "Traefik LoadBalancer HTTP" status_http_reachable "http://${LAB_TRAEFIK_LB_IP:-192.168.100.240}/" || failures=$((failures + 1))
|
status_cascade_check "Traefik LoadBalancer HTTP" status_http_reachable "http://${LAB_TRAEFIK_LB_IP:-192.168.100.240}/" || failures=$((failures + 1))
|
||||||
status_cascade_check "Website public URL" status_http_ok "${LAB_PUBLIC_URL:-https://lab2025.duckdns.org}/" || failures=$((failures + 1))
|
status_cascade_check "Website public URL" status_http_ok "${LAB_PUBLIC_URL:-https://lab2025.duckdns.org}/" || failures=$((failures + 1))
|
||||||
status_cascade_check "Gitea public repo URL" status_gitea_public_repo_ok || failures=$((failures + 1))
|
status_cascade_check "Gitea public login URL" status_gitea_public_ok || failures=$((failures + 1))
|
||||||
|
|
||||||
if ((failures > 0)); then
|
if ((failures > 0)); then
|
||||||
printf '\nStatus cascade found %s blocking failure(s).\n' "${failures}" >&2
|
printf '\nStatus cascade found %s blocking failure(s).\n' "${failures}" >&2
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue