Hello everyone,
I'm experiencing a persistent issue with my Pi-hole v6 installation (Core v6.0.6, Web v6.1, FTL v6.1) on my Raspberry Pi, and I would greatly appreciate your help. My main goal is to run the Pi-hole web interface on a different port (e.g., 8088) to free up port 80 for Nginx Proxy Manager. I also use DNSCrypt and Tailscale in my setup, and I need Pi-hole to work correctly with them.
My System Details:
- Device: Raspberry Pi 5
- Operating System: PiOS 64 bit
- Pi-hole Version: Core v6.0.6, Web v6.1, FTL v6.1
The Core Issues I'm Facing:
- The
/etc/pihole/setupVars.conffile is consistently missing/not found, even after attemptingpihole -ror a fresh reinstall using thecurl -sSL https://install.pi-hole.net | sudo bashscript. - As a likely consequence, the
pihole-FTLservice persistently occupies port 80. - When I manually configure
lighttpdto use port 8088 (via/etc/lighttpd/lighttpd.conf),lighttpdruns on that port, butpihole-FTLremains on port 80. If I try to setlighttpdto port 80, it fails to start due to the port conflict. - Despite
whiptailbeing installed, neither thepihole -rcommand nor the main installer script (curl...) runs in interactive mode (i.e., no "Repair/Reconfigure" menu appears, and no setup questions are asked during reinstall; it just runs through a series of non-interactive steps).
Troubleshooting Steps Taken So Far:
- Manually changed the
server.portsetting inlighttpd.confto 8088 (this successfully movedlighttpdto 8088, but FTL remained on port 80). - Ran
sudo pihole -rmultiple times (each time it ran non-interactively, completed a short process, andsetupVars.confwas still not created). - Performed a full uninstall (
sudo pihole uninstall) and a fresh reinstall usingcurl -sSL https://install.pi-hole.net | sudo bash(the result was the same:setupVars.confwas still missing,pihole-FTLremained on port 80, and the installer script was non-interactive). - Reset the Pi-hole web admin password using
sudo pihole setpassword(after the initial password from the reinstall attempt was not accepted). - Ensured the system time is synchronized using NTP.
Key Diagnostic Outputs:
ls -l /etc/pihole/setupVars.conf:ls: cannot access '/etc/pihole/setupVars.conf': No such file or directorysudo ss -tulnp | grep -E ':80|:8088'(showing FTL on port 80 and lighttpd on port 8088 after manuallighttpd.confedit):tcp LISTEN 0 200 0.0.0.0:80 0.0.0.0:* users:(("pihole-FTL",pid=107803,fd=35)) tcp LISTEN 0 1024 0.0.0.0:8088 0.0.0.0:* users:(("lighttpd",pid=103946,fd=5)) tcp LISTEN 0 4096 0.0.0.0:8080 0.0.0.0:* users:(("docker-proxy",pid=87975,fd=7)) tcp LISTEN 0 4096 0.0.0.0:8000 0.0.0.0:* users:(("docker-proxy",pid=4050,fd=7)) tcp LISTEN 0 200 [::]:80 [::]:* users:(("pihole-FTL",pid=107803,fd=36)) tcp LISTEN 0 1024 [::]:8088 [::]:* users:(("lighttpd",pid=103946,fd=4)) tcp LISTEN 0 4096 [::]:8080 [::]:* users:(("docker-proxy",pid=87983,fd=7)) tcp LISTEN 0 4096 [::]:8000 [::]:* users:(("docker-proxy",pid=4058,fd=7))sudo systemctl status lighttpd.service --no-pager -l(whenlighttpd.confis set to port 8088 and running):● lighttpd.service - Lighttpd Daemon Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled; preset: enabled) Active: active (running) since Sat 2025-05-24 18:49:22 +03; [UPDATE DURATION] Process: 103941 ExecStartPre=/usr/sbin/lighttpd -tt -f /etc/lighttpd/lighttpd.conf (code=exited, status=0/SUCCESS) Main PID: 103946 (lighttpd) ...sudo systemctl status lighttpd.service --no-pager -l(whenlighttpd.confis set to port 80 and fails):× lighttpd.service - Lighttpd Daemon Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled; preset: enabled) Active: failed (Result: exit-code) since Sat 2025-05-24 20:31:23 +03; [UPDATE DURATION] Process: 108839 ExecStart=/usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf (code=exited, status=255/EXCEPTION) ... May 24 20:31:23 raspberry systemd[1]: Failed to start lighttpd.service - Lighttpd Daemon.sudo systemctl status pihole-FTL.service --no-pager -l:[PASTE THE CURRENT OUTPUT of 'sudo systemctl status pihole-FTL.service --no-pager -l' HERE]ls -ld /etc/pihole/:drwxrwxr-x 8 pihole pihole 4096 May 24 19:09 /etc/pihole/dpkg -s whiptail:Package: whiptail Status: install ok installed ...- Contents of
/etc/pihole/install.log(noting it's very short and uninformative):[✓] Installing scripts from /etc/.pihole [i] Installing configs from /etc/.pihole... [✓] Installing latest Cron script [i] Installing latest logrotate script... [i] Existing logrotate file found. No changes made. [✓] man pages installed and database updated - Current DNS servers used by the Raspberry Pi (
cat /etc/resolv.conf):[PASTE THE CURRENT OUTPUT of 'cat /etc/resolv.conf' HERE]
My Questions:
- What could be the reason for
/etc/pihole/setupVars.confnot being created, even after a fresh installation? - Why might the Pi-hole scripts (installer,
pihole -r) not be running in interactive mode, despitewhiptailbeing installed? - Without a
setupVars.conffile, or if it cannot be correctly established, how can I configurepihole-FTLnot to use port 80 for web services, or direct it to acknowledge thatlighttpdis running on a different port (e.g., 8088)? - Could this be a known issue with Pi-hole v6.x on my specific OS/environment?
Any help or guidance you can provide would be highly appreciated. Please let me know if there's any other information I can provide. (I can also generate and upload a Pi-hole debug log if requested: pihole -d)
Thank you,