Separate files currently in /etc in real config (setupVars.conf) , tempdata (list.0.raw.githubusercontent.com.domains) and userdata (whitelist/blacklist)

Actual behaviour:
I'm using docker, but I don't think it's docker-related:
In my /etc/pihole (which I map as a volume) I'm getting this:

 dns-servers.conf                         
 GitHubVersions                           
 gravity.db                               
 list.0.raw.githubusercontent.com.domains 
 list.1.mirror1.malwaredomains.com.domains
 list.2.s3.amazonaws.com.domains          
 list.3.s3.amazonaws.com.domains          
 localbranches                            
 local.list                               
 localversions                            
 migration_backup                         
 pihole-FTL.conf                          
 pihole-FTL.db                            
 setupVars.conf                           
 setupVars.conf.update.bak 
  • Some of this seem to be configs -> dns-servers.conf , setupVars.conf
  • Some seem to be data which could be recreated on restart: list.0.raw.githubusercontent.com.domains, ...
  • gravity.db seems to mix data like adlist (can be recreated, expect this to be downloaded?) and whitelist/blacklist (more like a user-config, since it's nothing you download from somewhere)

Expected behaviour:
I would expect that:

  • configs are in etc
  • downloaded (black)lists are in a var-folder (or something similar)
  • gravity.db is split somehow in a db which can be recreated (adlist) and a part which is solely for storing whitlists/blacklists (or other user-information)

What's the purpose on this

  • I'm commiting my local docker-configs with git
    • I would only commit real configs
    • files that can be recreated by downloading, would go on a volume (which isn't backed up)
    • whitelists/blacklists would be saved as "service-data" daily backed-up ...

That's not the way it is set up. Pi-hole files are in /etc/pihole for the most part (there is a config file in /etc/dnsmasq.d) and some of the logs are in /var/log.

There is a single gravity database that contains all the groups, adlists, domains and clients. When gravity is rebuilt, the public blocklists are fetched and the actual domains are also stored in this database.

These are the local copies of the public blocklists. When gravity is update, if a public blocklist cannot be downloaded (offline, etc.) or has not changed since the last gravity update, then the local copy is used.

You have the option of relocating some of the Pi-hole files, as discussed here:

https://docs.pi-hole.net/ftldns/configfile/

That exactly is my point here, I know "list.0.raw.githubusercontent.com.domains" are the local copies of the public blocklists, but most programs in linux don't store things like that in /etc but rather in something like /var/lib/pihole. /etc is thought for configs not for temporary files.

If I delete and rebuild gravity will it also rebuild my own blacklist/whitelist (from a place I haven't found)?

Logs, pid, ports aren't really interesting to me, ok I can move gravity.db, but nothing else of the above files.

Since this post is under feature requests, what feature are you requesting and why?

It looked more like a improvement/"bug" (different behaviour/storage locations I would expect from a linux-program) for me in first place, so I opened this improvement/issue in github to separate the files appropriately: https://github.com/pi-hole/pi-hole/issues/3508#event-3488225229
Dschaper told me, that this is definitely a feature request, so I made a feature request here.

It may depend from project to project how you define it, now I'm not quite sure what it really is anymore.
It's not a feature a user will see something, if you define that as a feature.
I dind't find a clear distinction between github issue and discource feature anyway and expected a comment from a pihole member as valid enough.

From: Linux Filesystem Hierarchy Standards v3 Compliance