Pi-hole v6.1 Install Issue: setupVars.conf Missing, FTL on Port 80, Scripts Non-Interactive

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:

  1. The /etc/pihole/setupVars.conf file is consistently missing/not found, even after attempting pihole -r or a fresh reinstall using the curl -sSL https://install.pi-hole.net | sudo bash script.
  2. As a likely consequence, the pihole-FTL service persistently occupies port 80.
  3. When I manually configure lighttpd to use port 8088 (via /etc/lighttpd/lighttpd.conf), lighttpd runs on that port, but pihole-FTL remains on port 80. If I try to set lighttpd to port 80, it fails to start due to the port conflict.
  4. Despite whiptail being installed, neither the pihole -r command 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.port setting in lighttpd.conf to 8088 (this successfully moved lighttpd to 8088, but FTL remained on port 80).
  • Ran sudo pihole -r multiple times (each time it ran non-interactively, completed a short process, and setupVars.conf was still not created).
  • Performed a full uninstall (sudo pihole uninstall) and a fresh reinstall using curl -sSL https://install.pi-hole.net | sudo bash (the result was the same: setupVars.conf was still missing, pihole-FTL remained 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 directory
  • sudo ss -tulnp | grep -E ':80|:8088' (showing FTL on port 80 and lighttpd on port 8088 after manual lighttpd.conf edit): 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 (when lighttpd.conf is 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 (when lighttpd.conf is 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:

  1. What could be the reason for /etc/pihole/setupVars.conf not being created, even after a fresh installation?
  2. Why might the Pi-hole scripts (installer, pihole -r) not be running in interactive mode, despite whiptail being installed?
  3. Without a setupVars.conf file, or if it cannot be correctly established, how can I configure pihole-FTL not to use port 80 for web services, or direct it to acknowledge that lighttpd is running on a different port (e.g., 8088)?
  4. 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,

I solved the problem. Thank you.

This is 100% expected in Pi-hole v6.

There is no setupVars.conf anymore. It was the configuration file used by previous Pi-hole versions. The new config file is /etc/pihole/pihole.toml

Pi-hole v6 doesn't use lighttpd. If you don't use lighttpd for other services, you can uninstall it.

The installer doesn't use whiptail since July 2022.


Are you trying a Pi-hole fresh install or is this an update?

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.