What files does Pi-hole use?


#1

/etc/.pihole/

This directory is a clone of the pi-hole repo. During installation, the repository is cloned here so the files Pi-hole needs can be copied to your system.
#/etc/cron.d/

  • pihole: the cron file that runs scheduled tasks such as flushing the log file or downloading the latest updates from the blocklist sources

#/etc/dnsmasq.d/

  • 01-pihole.conf: the config specific to Pi-hole that controls how dnsmasq functions
  • 02-pihole-dhcp.conf: the config file used when Pi-hole’s DHCP server is active
  • 03-wildcard.conf: used for wildcard blacklisting

#/etc/lighttpd/

  • lighttpd.conf: this is used to configure the Web server to respond to black holed domains and return a 404 of a blank Webpage. It also contains X-Headers and a few other settings.
  • external.conf: this is a user-created file that can be used to modify the Web server. These changes will persist through updates, unlike if you were to manually edit lighttpd.conf

#/etc/pihole/
This is where most of Pi-hole’s config files exist. It contains:

  • adlists.default: the list of URLs where the block lists are sourced from
  • adlists.list: a custom user-defined list of URLs to source just like adlists.default. If created it will override adlists.default, but by default it does not exist until the user creates it.
  • blacklist.txt: a user-defined list of additional domains to block
  • gravity.list: perhaps Pi-hole’s most important file–it is a hosts file with all of the domains that are being blocked
  • install.log: a log file generated during installation
  • list.n.domain: these are the raw lists that are downloaded. You may have several others depending whether or not you use additional block lists
  • local.list: this contains local list entries such as pi.hole so you can access the Web interface via name instead of IP.
  • logrotate: this is the config file that controls how logrotate handles flushing the log file
  • setupVars.conf: this file contains variables needed to effectively setup and configure Pi-hole
  • whitelist.txt: a user-defined list of domains to be whitelisted. Pi-hole does generate this file during installation as it adds the domains that host the lists so they are not inadvertently blocked

#/opt/pihole

  • individual scripts that are called by pihole
  • coltable: used for showing colors in the output of scripts

#/usr/local/bin/

/run

  • pihole-FTL.pid: the process ID used by FTL
  • pihole-FTL.port the port number used by FTL (defaults to 4711)

#/var/log

  • pihole.log: This is the log file that contains all of the DNS queries Pi-hole handles as well as the queries that were blocked. See this post to learn how to interpret this file.
  • pihole_debug.log: This is the log file generated by pihole -d. This is stored locally, but you also have the option to upload it to our secure server
  • pihole-FTL.log: This is the log file that contains information handled by our FTL engine.

##/var/log/lighttpd/

  • access.log: this log contains entries from blocked domains (and the web interface). It is useful for visualizing Pi-hole.
  • error.log: this log file contains errors lighttpd may run into

#/var/www/html
##/var/www/html/admin

  • This folder contains all the files needed for the admin interface and is simply a clone of the repo.
    ##/var/www/html/pihole
  • This folder contains the blank HTML page that is delivered in place of advertisements.
  • It also contains the blockpage if you try to directly visit a domain that is blocked

How to manually configure DNS IP list?
How do I troubleshoot name resolution?
Why do some sites take forever to load when using Pi-hole?
#2