Can this be done via the API?
$ curl -s http://localhost/api/endpoints | jq ".endpoints[][].uri"
[..]
"/api/stats/database/query_types"
"/api/stats/database/upstreams"
"/api/config"
"/api/config"
"/api/network/gateway"
"/api/network/routes"
[..]
$ curl -s http://localhost/api/config | jq
{
"config": {
"dns": {
"upstreams": [
"127.0.0.1#5335"
],
"CNAMEdeepInspect": true,
"blockESNI": true,
"EDNS0ECS": true,
"ignoreLocalhost": false,
"showDNSSEC": true,
"analyzeOnlyAandAAAA": false,
"piholePTR": "PI.HOLE",
"replyWhenBusy": "ALLOW",
"blockTTL": 2,
"hosts": [
XXXXX
XXXXX
XXXXX
],
"domainNeeded": true,
"expandHosts": true,
"domain": "home.dehakkelaar.nl",
"bogusPriv": true,
"dnssec": false,
"interface": "eth0",
"hostRecord": "",
"listeningMode": "LOCAL",
"queryLogging": true,
"cnameRecords": [],
"port": 53,
"revServers": [
"true,10.0.0.0/24,10.0.0.2,home.dehakkelaar.nl"
],
"cache": {
"size": 10000,
"optimizer": 3600
},
"blocking": {
"active": true,
"mode": "NULL"
},
"specialDomains": {
"mozillaCanary": true,
"iCloudPrivateRelay": true
},
"reply": {
"host": {
"force4": false,
"IPv4": "",
"force6": false,
"IPv6": ""
},
"blocking": {
"force4": false,
"IPv4": "",
"force6": false,
"IPv6": ""
}
},
"rateLimit": {
"count": 1000,
"interval": 60
}
},
"dhcp": {
"active": false,
"start": "10.0.0.11",
"end": "10.0.0.254",
"router": "10.0.0.1",
"netmask": "",
"leaseTime": "24h",
"ipv6": false,
"rapidCommit": false,
"multiDNS": true,
"logging": false,
"ignoreUnknownClients": false,
"hosts": []
},
"ntp": {
"ipv4": {
"active": true,
"address": ""
},
"ipv6": {
"active": true,
"address": ""
},
"sync": {
"active": true,
"server": "pool.ntp.org",
"interval": 3600,
"count": 8,
"rtc": {
"set": true,
"device": "",
"utc": true
}
}
},
"resolver": {
"resolveIPv4": true,
"resolveIPv6": true,
"networkNames": true,
"refreshNames": "IPV4_ONLY"
},
"database": {
"DBimport": true,
"maxDBdays": 91,
"DBinterval": 60,
"useWAL": true,
"network": {
"parseARPcache": true,
"expire": 91
}
},
"webserver": {
"domain": "pi.hole",
"acl": "",
"port": "80,[::]:80,443s,[::]:443s",
"session": {
"timeout": 300,
"restore": true
},
"tls": {
"cert": "/etc/pihole/tls.pem"
},
"paths": {
"webroot": "/var/www/html",
"webhome": "/admin/"
},
"interface": {
"boxed": true,
"theme": "default-auto"
},
"api": {
"max_sessions": 16,
"prettyJSON": false,
"pwhash": "",
"password": "********",
"totp_secret": "********",
"app_pwhash": "",
"app_sudo": false,
"cli_pw": true,
"excludeClients": [],
"excludeDomains": [],
"maxHistory": 86400,
"maxClients": 10,
"client_history_global_max": true,
"allow_destructive": true,
"temp": {
"limit": 60,
"unit": "C"
}
}
},
"files": {
"pid": "/run/pihole-FTL.pid",
"database": "/etc/pihole/pihole-FTL.db",
"gravity": "/etc/pihole/gravity.db",
"gravity_tmp": "/tmp",
"macvendor": "/etc/pihole/macvendor.db",
"setupVars": "/etc/pihole/setupVars.conf",
"pcap": "",
"log": {
"ftl": "/var/log/pihole/FTL.log",
"dnsmasq": "/var/log/pihole/pihole.log",
"webserver": "/var/log/pihole/webserver.log"
}
},
"misc": {
"privacylevel": 0,
"delay_startup": 0,
"nice": -10,
"addr2line": true,
"etc_dnsmasq_d": false,
"dnsmasq_lines": [],
"extraLogging": false,
"readOnly": false,
"check": {
"load": true,
"shmem": 90,
"disk": 90
}
},
"debug": {
"database": false,
"networking": false,
"locks": false,
"queries": true,
"flags": false,
"shmem": false,
"gc": false,
"arp": false,
"regex": false,
"api": false,
"tls": false,
"overtime": false,
"status": false,
"caps": false,
"dnssec": false,
"vectors": false,
"resolver": false,
"edns0": false,
"clients": false,
"aliasclients": false,
"events": false,
"helper": false,
"config": false,
"inotify": false,
"webserver": false,
"extra": false,
"reserved": false,
"ntp": false,
"all": false
}
},
"took": 0.00011277198791503906
}