Issue
When restarting the docker containers, no historical query data is shown on the dashboards. Any query under Long-term Data returns nothing - including setting the range to when the container was started. Under Tools | Generate debug log, enabling "Execute database integrity check" and generating the debug log will pause at the integrity check. I have waited 2+ hours to see if the check will complete but assume there is an issue with pihole-FTL.db in some manner which is stopping it from completing.
Expected Behaviour
Configuration
Hardware
System: 2 x Raspberry Pi 4B
Memory: 2G RAM
Storage: 120GB SSD via USB3
Operating System
Details for pihole-1:
pihole-1 system configuration
$ uname --all
Linux edge1 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
$ hostnamectl
Static hostname: edge1
Icon name: computer
Operating System: Debian GNU/Linux 12 (bookworm)
Kernel: Linux 6.1.21-v8+
Architecture: arm64
Details for pihole-2:
pihole-2 system configuration
$ uname --all
Linux edge2 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
$ hostnamectl
Static hostname: edge2
Icon name: computer
Operating System: Debian GNU/Linux 12 (bookworm)
Kernel: Linux 6.1.21-v8+
Architecture: arm64
Docker Compose
For pihole-1, contents of `/srv/pihole/compose.yaml':
pihole-1 compose file
services:
pihole:
image: pihole/pihole:latest
container_name: ${CONTAINER}
hostname: ${HOSTNAME}
dns: ${DNS}
network_mode: host
shm_size: 512mb
cap_add:
- NET_ADMIN # dhcp
environment:
- TZ=${TZ}
- WEBPASSWORD=${WEBPASSWORD}
- FTLCONF_LOCAL_IPV4=${FTLCONF_LOCAL_IPV4}
- PIHOLE_DNS_=${PIHOLE_DNS}
- DNSSEC=${DNSSEC}
- DNS_BOGUS_PRIV=${DNS_BOGUS_PRIV}
- DNS_FQDN_REQUIRED=${DNS_FQDN_REQUIRED}
- REV_SERVER=${REV_SERVER}
- REV_SERVER_DOMAIN=${REV_SERVER_DOMAIN}
- REV_SERVER_TARGET=${REV_SERVER_TARGET}
- REV_SERVER_CIDR=${REV_SERVER_CIDR}
- DHCP_ACTIVE=${DHCP_ACTIVE}
- DHCP_START=${DHCP_START}
- DHCP_END=${DHCP_END}
- DHCP_ROUTER=${DHCP_ROUTER}
- DHCP_LEASETIME=${DHCP_LEASETIME}
- PIHOLE_DOMAIN=${PIHOLE_DOMAIN}
- VIRTUAL_HOST=${VIRTUAL_HOST}
- INTERFACE=${INTERFACE}
- DNSMASQ_LISTENING=${DNSMASQ_LISTENING}
- WEB_PORT=${WEB_PORT}
- WEB_BIND_ADDR=${FTLCONF_LOCAL_IPV4}
- CORS_HOSTS=${CORS_HOSTS}
- FTLCONF_RATE_LIMIT=${FTLCONF_RATE_LIMIT}
volumes:
- ${DIRECTORY_PIHOLE}:/etc/pihole
- ${DIRECTORY_DNSMASQ}:/etc/dnsmasq.d
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
For pihole-1, contents of `/srv/pihole/.env' with secrets redacted:
pihole-1 .env file
# Host specifics
CONTAINER=pihole-1
HOSTNAME=edge1
DNS=192.168.1.1
#DNS=127.0.0.1
# Timezone from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TZ=America/Edmonton
# Directory locations
DIRECTORY_PIHOLE=/srv/pihole/etc-pihole
DIRECTORY_DNSMASQ=/srv/pihole/etc-dnsmasq.d
# Container specifics
WEBPASSWORD=[password]
FTLCONF_LOCAL_IPV4=192.168.1.91
PIHOLE_DNS=208.67.222.222;208.67.220.220
DNSSEC=true
DNS_BOGUS_PRIV=true
DNS_FQDN_REQUIRED=true
REV_SERVER=false
REV_SERVER_DOMAIN=[domain]
REV_SERVER_TARGET=192.168.1.1
REV_SERVER_CIDR=192.168.1.0/24
DHCP_ACTIVE=true
DHCP_START=192.168.1.101
DHCP_END=192.168.1.251
DHCP_ROUTER=192.168.1.1
DHCP_LEASETIME=24
PIHOLE_DOMAIN=[domain]
VIRTUAL_HOST=pihole-1.[domain]
INTERFACE=eth0
DNSMASQ_LISTENING=all
WEB_PORT=8080
WEB_BIND_ADDR=192.168.1.91
CORS_HOSTS=https://[domain],https://homer.[domain],https://dashy.[domain]
FTLCONF_RATE_LIMIT=0/0
For pihole-2, contents of `/srv/pihole/compose.yaml':
pihole-2 compose file
services:
pihole:
image: pihole/pihole:latest
container_name: ${CONTAINER}
hostname: ${HOSTNAME}
dns: ${DNS}
network_mode: host
shm_size: 512mb
cap_add:
- NET_ADMIN # dhcp
environment:
- TZ=${TZ}
- WEBPASSWORD=${WEBPASSWORD}
- FTLCONF_LOCAL_IPV4=${FTLCONF_LOCAL_IPV4}
- PIHOLE_DNS_=${PIHOLE_DNS}
- DNSSEC=${DNSSEC}
- DNS_BOGUS_PRIV=${DNS_BOGUS_PRIV}
- DNS_FQDN_REQUIRED=${DNS_FQDN_REQUIRED}
- REV_SERVER=${REV_SERVER}
- REV_SERVER_DOMAIN=${REV_SERVER_DOMAIN}
- REV_SERVER_TARGET=${REV_SERVER_TARGET}
- REV_SERVER_CIDR=${REV_SERVER_CIDR}
- DHCP_ACTIVE=${DHCP_ACTIVE}
- DHCP_START=${DHCP_START}
- DHCP_END=${DHCP_END}
- DHCP_ROUTER=${DHCP_ROUTER}
- DHCP_LEASETIME=${DHCP_LEASETIME}
- PIHOLE_DOMAIN=${PIHOLE_DOMAIN}
- VIRTUAL_HOST=${VIRTUAL_HOST}
- INTERFACE=${INTERFACE}
- DNSMASQ_LISTENING=${DNSMASQ_LISTENING}
- WEB_PORT=${WEB_PORT}
- WEB_BIND_ADDR=${FTLCONF_LOCAL_IPV4}
- CORS_HOSTS=${CORS_HOSTS}
- FTLCONF_RATE_LIMIT=${FTLCONF_RATE_LIMIT}
volumes:
- ${DIRECTORY_PIHOLE}:/etc/pihole
- ${DIRECTORY_DNSMASQ}:/etc/dnsmasq.d
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
For pihole-2, contents of `/srv/pihole/.env' with secrets redacted:
pihole-2 .env file
# Host specifics
CONTAINER=pihole-2
HOSTNAME=edge2
DNS=192.168.1.1
#DNS=127.0.0.1
# Timezone from https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TZ=America/Edmonton
# Directory locations
DIRECTORY_PIHOLE=/srv/pihole/etc-pihole
DIRECTORY_DNSMASQ=/srv/pihole/etc-dnsmasq.d
# Container specifics
WEBPASSWORD=[password]
FTLCONF_LOCAL_IPV4=192.168.1.92
PIHOLE_DNS=208.67.222.222;208.67.220.220
DNSSEC=true
DNS_BOGUS_PRIV=true
DNS_FQDN_REQUIRED=true
REV_SERVER=false
REV_SERVER_DOMAIN=[domain]
REV_SERVER_TARGET=192.168.1.1
REV_SERVER_CIDR=192.168.1.0/24
DHCP_ACTIVE=true
DHCP_START=192.168.1.101
DHCP_END=192.168.1.251
DHCP_ROUTER=192.168.1.1
DHCP_LEASETIME=24
PIHOLE_DOMAIN=[domain]
VIRTUAL_HOST=pihole-2.[domain]
INTERFACE=eth0
DNSMASQ_LISTENING=all
WEB_PORT=8080
WEB_BIND_ADDR=192.168.1.92
CORS_HOSTS=https://[domain],https://homer.[domain],https://dashy.[domain]
FTLCONF_RATE_LIMIT=0/0
Folder Structure
For pihole-1, contents of folder `/srv/pihole/' and subfolders:
pihole-1 directory structure
$ ls -lhaR /srv/pihole/
/srv/pihole/:
total 40K
drwxrwxr-x 4 idsvc idsvc 4.0K Jul 7 15:47 .
drwxr-xr-x 14 idsvc idsvc 4.0K Jul 6 15:06 ..
-rwxrwxr-x 1 idsvc idsvc 996 Jul 6 15:15 .env
-rwxrwxr-x 1 idsvc idsvc 997 Jul 6 15:06 .env.example
-rwxrwxr-x 1 idsvc idsvc 1.2K Jul 6 15:06 Pihole-Configuration.md
-rwxrwxr-x 1 idsvc idsvc 593 Jul 7 15:45 Pihole-Installation.md
-rwxrwxr-x 1 idsvc idsvc 1.6K Jul 6 15:06 README.md
-rwxrwxr-x 1 idsvc idsvc 1.7K Jul 7 15:45 compose.yaml
drwxrwxr-x 2 idsvc idsvc 4.0K Jul 10 08:24 etc-dnsmasq.d
drwxrwxr-x 2 999 idsvc 4.0K Jul 10 12:26 etc-pihole
/srv/pihole/etc-dnsmasq.d:
total 32K
drwxrwxr-x 2 idsvc idsvc 4.0K Jul 10 08:24 .
drwxrwxr-x 4 idsvc idsvc 4.0K Jul 7 15:47 ..
-rw-r--r-- 1 root root 1.5K Jul 10 08:24 01-pihole.conf
-rw-r--r-- 1 idsvc idsvc 523 Jul 10 08:24 02-pihole-dhcp.conf
-rwxrwxr-x 1 idsvc idsvc 1.1K Jul 9 07:17 04-pihole-static-dhcp.conf
-rwxrwxr-x 1 idsvc idsvc 2.2K Jul 9 07:17 05-pihole-custom-cname.conf
-rw-r--r-- 1 root root 2.2K Jul 10 08:24 06-rfc6761.conf
-rwxrwxr-x 1 idsvc idsvc 269 Jul 9 07:17 07-id-custom.conf
/srv/pihole/etc-pihole:
total 1.8G
drwxrwxr-x 2 999 idsvc 4.0K Jul 10 12:26 .
drwxrwxr-x 4 idsvc idsvc 4.0K Jul 7 15:47 ..
-rwxrwxr-x 1 idsvc idsvc 730 Jul 9 07:17 adlists.list
-rwxrwxr-x 1 idsvc idsvc 896 Jul 9 07:17 custom.list
-rw-r--r-- 1 999 idsvc 1020 Jul 10 11:27 dhcp.leases
-rw-r--r-- 1 idsvc idsvc 651 Jul 10 08:24 dns-servers.conf
-rw-rw-r-- 1 999 idsvc 78M Jul 10 08:26 gravity.db
-rw-rw-r-- 1 999 idsvc 78M Jul 9 08:48 gravity_old.db
-rw-r--r-- 1 root root 4.5M Jul 10 08:24 list.18.raw.githubusercontent.com.domains
-rw-r--r-- 1 root root 96 Jul 10 08:24 list.18.raw.githubusercontent.com.domains.sha1
-rw-r--r-- 1 root root 3.8M Jul 10 08:24 list.19.raw.githubusercontent.com.domains
-rw-r--r-- 1 root root 96 Jul 10 08:24 list.19.raw.githubusercontent.com.domains.sha1
-rw-r--r-- 1 root root 1.2K Jul 10 08:24 list.20.raw.githubusercontent.com.domains
-rw-r--r-- 1 root root 96 Jul 10 08:24 list.20.raw.githubusercontent.com.domains.sha1
-rw-r--r-- 1 root root 6.7K Jul 10 08:25 list.21.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:25 list.21.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 840K Jul 10 08:25 list.22.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:25 list.22.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 18K Jul 10 08:25 list.23.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:25 list.23.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 448K Jul 10 08:25 list.24.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:25 list.24.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 449K Jul 10 08:25 list.25.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:25 list.25.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 59K Jul 10 08:25 list.26.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:25 list.26.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 298K Jul 10 08:25 list.27.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:25 list.27.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 1.9M Jul 10 08:25 list.28.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:25 list.28.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 16M Jul 10 08:25 list.29.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:26 list.29.v.firebog.net.domains.sha1
-rw-r--r-- 1 idsvc idsvc 65 Jul 10 08:26 local.list
-rwxrwxr-x 1 idsvc idsvc 241 Jul 6 15:16 logrotate
-rwxrwxr-x 1 idsvc idsvc 202 Jul 10 08:24 pihole-FTL.conf
-rw-rw-r-- 1 999 idsvc 1.6G Jul 10 08:24 pihole-FTL.db
-rwxrwxr-x 1 idsvc idsvc 583 Jul 10 08:24 setupVars.conf
-rwxrwxr-x 1 idsvc idsvc 583 Jul 10 08:24 setupVars.conf.update.bak
For pihole-2, contents of folder `/srv/pihole/' and subfolders:
pihole-2 directory structure
$ ls -lha /srv/pihole/
total 40K
drwxrwxr-x 4 idsvc idsvc 4.0K Jul 7 14:05 .
drwxr-xr-x 13 idsvc docker 4.0K Jul 7 09:27 ..
-rwxrwxr-x 1 idsvc idsvc 996 Jul 7 09:35 .env
-rwxrwxr-x 1 idsvc idsvc 997 Jul 7 09:27 .env.example
-rwxrwxr-x 1 idsvc idsvc 1.2K Jul 7 09:27 Pihole-Configuration.md
-rwxrwxr-x 1 idsvc idsvc 593 Jul 7 14:05 Pihole-Installation.md
-rwxrwxr-x 1 idsvc idsvc 1.6K Jul 7 09:27 README.md
-rwxrwxr-x 1 idsvc idsvc 1.7K Jul 7 14:05 compose.yaml
drwxrwxr-x 2 idsvc idsvc 4.0K Jul 10 08:18 etc-dnsmasq.d
drwxrwxr-x 2 999 idsvc 4.0K Jul 10 08:19 etc-pihole
idsvc@id-edge2:/srv/pihole $ ls -lhar /srv/pihole/
total 40K
drwxrwxr-x 2 999 idsvc 4.0K Jul 10 08:19 etc-pihole
drwxrwxr-x 2 idsvc idsvc 4.0K Jul 10 08:18 etc-dnsmasq.d
-rwxrwxr-x 1 idsvc idsvc 1.7K Jul 7 14:05 compose.yaml
-rwxrwxr-x 1 idsvc idsvc 1.6K Jul 7 09:27 README.md
-rwxrwxr-x 1 idsvc idsvc 593 Jul 7 14:05 Pihole-Installation.md
-rwxrwxr-x 1 idsvc idsvc 1.2K Jul 7 09:27 Pihole-Configuration.md
-rwxrwxr-x 1 idsvc idsvc 997 Jul 7 09:27 .env.example
-rwxrwxr-x 1 idsvc idsvc 996 Jul 7 09:35 .env
drwxr-xr-x 13 idsvc docker 4.0K Jul 7 09:27 ..
drwxrwxr-x 4 idsvc idsvc 4.0K Jul 7 14:05 .
idsvc@id-edge2:/srv/pihole $ ls -lhaR /srv/pihole/
/srv/pihole/:
total 40K
drwxrwxr-x 4 idsvc idsvc 4.0K Jul 7 14:05 .
drwxr-xr-x 13 idsvc docker 4.0K Jul 7 09:27 ..
-rwxrwxr-x 1 idsvc idsvc 996 Jul 7 09:35 .env
-rwxrwxr-x 1 idsvc idsvc 997 Jul 7 09:27 .env.example
-rwxrwxr-x 1 idsvc idsvc 1.2K Jul 7 09:27 Pihole-Configuration.md
-rwxrwxr-x 1 idsvc idsvc 593 Jul 7 14:05 Pihole-Installation.md
-rwxrwxr-x 1 idsvc idsvc 1.6K Jul 7 09:27 README.md
-rwxrwxr-x 1 idsvc idsvc 1.7K Jul 7 14:05 compose.yaml
drwxrwxr-x 2 idsvc idsvc 4.0K Jul 10 08:18 etc-dnsmasq.d
drwxrwxr-x 2 999 idsvc 4.0K Jul 10 08:19 etc-pihole
/srv/pihole/etc-dnsmasq.d:
total 32K
drwxrwxr-x 2 idsvc idsvc 4.0K Jul 10 08:18 .
drwxrwxr-x 4 idsvc idsvc 4.0K Jul 7 14:05 ..
-rw-r--r-- 1 root root 1.5K Jul 10 08:18 01-pihole.conf
-rw-r--r-- 1 idsvc idsvc 523 Jul 10 08:18 02-pihole-dhcp.conf
-rwxrwxr-x 1 idsvc idsvc 1.1K Jul 9 07:17 04-pihole-static-dhcp.conf
-rwxrwxr-x 1 idsvc idsvc 2.2K Jul 9 07:17 05-pihole-custom-cname.conf
-rw-r--r-- 1 root root 2.2K Jul 10 08:18 06-rfc6761.conf
-rwxrwxr-x 1 idsvc idsvc 269 Jul 9 07:17 07-id-custom.conf
/srv/pihole/etc-pihole:
total 2.0G
drwxrwxr-x 2 999 idsvc 4.0K Jul 10 08:19 .
drwxrwxr-x 4 idsvc idsvc 4.0K Jul 7 14:05 ..
-rwxrwxr-x 1 idsvc idsvc 730 Jul 9 07:17 adlists.list
-rwxrwxr-x 1 idsvc idsvc 896 Jul 9 07:17 custom.list
-rw-r--r-- 1 999 idsvc 1.3K Jul 10 12:22 dhcp.leases
-rw-r--r-- 1 idsvc idsvc 651 Jul 10 08:18 dns-servers.conf
-rw-rw-r-- 1 999 idsvc 78M Jul 10 08:19 gravity.db
-rw-rw-r-- 1 999 idsvc 78M Jul 9 08:48 gravity_old.db
-rw-r--r-- 1 root root 4.5M Jul 10 08:19 list.19.raw.githubusercontent.com.domains
-rw-r--r-- 1 root root 96 Jul 10 08:19 list.19.raw.githubusercontent.com.domains.sha1
-rw-r--r-- 1 root root 3.8M Jul 10 08:19 list.20.raw.githubusercontent.com.domains
-rw-r--r-- 1 root root 96 Jul 10 08:19 list.20.raw.githubusercontent.com.domains.sha1
-rw-r--r-- 1 root root 1.2K Jul 10 08:19 list.21.raw.githubusercontent.com.domains
-rw-r--r-- 1 root root 96 Jul 10 08:19 list.21.raw.githubusercontent.com.domains.sha1
-rw-r--r-- 1 root root 6.7K Jul 10 08:19 list.22.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:19 list.22.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 840K Jul 10 08:19 list.23.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:19 list.23.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 18K Jul 10 08:19 list.24.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:19 list.24.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 448K Jul 10 08:19 list.25.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:19 list.25.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 449K Jul 10 08:19 list.26.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:19 list.26.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 59K Jul 10 08:19 list.27.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:19 list.27.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 298K Jul 10 08:19 list.28.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:19 list.28.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 1.9M Jul 10 08:19 list.29.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:19 list.29.v.firebog.net.domains.sha1
-rw-r--r-- 1 root root 16M Jul 10 08:19 list.30.v.firebog.net.domains
-rw-r--r-- 1 root root 84 Jul 10 08:19 list.30.v.firebog.net.domains.sha1
-rw-r--r-- 1 idsvc idsvc 65 Jul 10 08:19 local.list
-rwxrwxr-x 1 idsvc idsvc 241 Jul 7 09:37 logrotate
-rwxrwxr-x 1 idsvc idsvc 202 Jul 10 08:18 pihole-FTL.conf
-rw-rw-r-- 1 999 idsvc 1.9G Jul 10 08:18 pihole-FTL.db
-rwxrwxr-x 1 idsvc idsvc 583 Jul 10 08:18 setupVars.conf
-rwxrwxr-x 1 idsvc idsvc 583 Jul 10 08:18 setupVars.conf.update.bak
-rw-r--r-- 1 idsvc idsvc 382 Jul 10 08:19 versions
Network Topology Overview
Summary of network configuration:
- 192.168.1.1 - Netgear Orbi RBR-850
- Primary DNS: 192.168.1.92
- Secondary DNS: 192.168.1.91
- DHCP disabled
- 192.168.1.91 - edge1 - Raspberry Pi 4B
- Docker container pihole-1 running in host networking mode
- 192.168.1.92 - edge2 - Raspberry Pi 4B
- Docker container pihole-2 running in host networking mode
Actual Behaviour:
-
On restart of docker container, no previous queries shown:
-
When running any query under Long-term Data, no values are returned:
-
When generating a debug log with database integrity checked, generation pauses at integrity check:
No errors or issues appear in the docker container logs. No errors or issues appear in the FTL logs, inspected using docker exec pihole-X cat /var/log/pihole/FTL.log
.
This feels like a permissions issue, but I cannot work out what it might be, and I've searched both the Discourse forum and Reddit.
Debug Tokens
Here are the debug tokens for each host:
Note that I was unable to check database integrity as previously stated as the check would run over 2 hours without completing - with no obvious errors.