DL6ER
|
48fc06d46b
|
Add POST /api/teleporter to upload and install backed up configuration
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-25 21:51:12 +01:00 |
|
DL6ER
|
d51aa378a3
|
Add /api/action/reboot and /api/action/poweroff (needs extra capability CAP_SYS_BOOT)
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-24 20:26:37 +01:00 |
|
DL6ER
|
e4383775d1
|
Add /api/action/gravity which can be used to trigger a run of pihole -g. The output is live streamed using HTTP/1.1 chunked encoding.
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-24 20:15:45 +01:00 |
|
DL6ER
|
f9a9f3aa8f
|
Add "--teleporter" to "pihole -FTL -h"
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-24 19:42:05 +01:00 |
|
DL6ER
|
2ecf2b841e
|
Add (a stripped down variant of the) pihole-FTL.db database into the Teleporter archive
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-24 19:39:51 +01:00 |
|
DL6ER
|
1e4dbe41b5
|
Add (a stripped down variant of the) gravity.db database into the Teleporter archive
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-24 19:24:15 +01:00 |
|
DL6ER
|
aec188bea1
|
Add /etc/hosts, /etc/pihole/dhcp.leases (if it exists) and all files in /etc/dnsmasq.d into the Teleporter archive
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-24 19:24:20 +01:00 |
|
DL6ER
|
785c21817e
|
Add pihole-FTL --teleporter to create Teleporter ZIP file in the current directory. We need to add "zipinfo" as package to our ftl-build containers to be able to verify the fiel independently (this is already done by Python for the ZIP archive received from the API - but it doesn't hurt to test twice)
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-23 22:21:19 +01:00 |
|
DL6ER
|
96434c3e9a
|
Fix a small logic quirk preventing us from being able to change config parameters via PATCH /api/config. This issue was created in 4c62a02026
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-23 22:02:05 +01:00 |
|
DL6ER
|
13168c377b
|
Add GET /api/teleporter
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-23 21:56:11 +01:00 |
|
DL6ER
|
4c62a02026
|
Only change config when new value is different from the current value. This allows to set all config options at once but without restarting dnsmasq when none of its config values are changed
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-23 21:35:35 +01:00 |
|
DL6ER
|
6afab76dcc
|
Give hint about where the JSON parser failed when passing invalid JSON.
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-23 21:26:11 +01:00 |
|
DL6ER
|
15dd20b8ec
|
Mark several config options as "advanced" (will be hidden by default on the future settings page)
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-23 21:21:22 +01:00 |
|
DL6ER
|
22941f9490
|
Update .github/workflows/openapi-validator.yml to account for "Node.js 12 actions are deprecated" warnings
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-23 21:06:11 +01:00 |
|
DL6ER
|
88e8ab9fd5
|
!!! BREAKING CHANGE !!! Redesign TOML config structure
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-22 12:32:10 +01:00 |
|
DL6ER
|
0856153699
|
Add ability to list allowed values (for enums) in JSON form. Add pretty-printing for TOML and update all help test descriptions from the official Pi-hole documentation
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-22 12:01:42 +01:00 |
|
DL6ER
|
2e54ca5577
|
Add /config/_server offering DNS server suggestions for the settings page
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-22 10:11:31 +01:00 |
|
DL6ER
|
db128644c9
|
Rotate config files into /etc/pihole/config_backups instead of cluttering /etc/pihole itself
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-22 10:06:22 +01:00 |
|
DL6ER
|
47ac129a53
|
!!! BREAKING CHANGE !!! Rename pihole-FTL.toml to pihole.toml and it is a Pi-hole wide config file also covering all the dnsmasq settings, etc.
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-22 10:01:54 +01:00 |
|
DL6ER
|
517e58909a
|
Include FTL version in headers of pihole-FTL.toml and 01-pihole.conf
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-22 09:55:34 +01:00 |
|
DL6ER
|
d5fd0f7dcf
|
Remove mictortar, we'll use ZIP instead of TAR.GZ for multi-file archives. This is already available through miniz.
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-22 09:49:11 +01:00 |
|
DL6ER
|
b55c1a673a
|
Add Desktop Management Interface (DMI) properties to /api/info/host
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-22 09:44:40 +01:00 |
|
DL6ER
|
5e67e488dc
|
Tests: Add test for embedded GZIP compressor
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-22 09:24:40 +01:00 |
|
DL6ER
|
024130a638
|
Expose GZIP uncompressor via CLI
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-22 09:10:49 +01:00 |
|
DL6ER
|
acf187d8b3
|
Expose GZIP compressor via CLI
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-21 19:43:22 +01:00 |
|
DL6ER
|
4026d5f7a2
|
Include info.yaml in build
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-21 14:54:13 +01:00 |
|
DL6ER
|
6e6b74a453
|
Add line with error on request for setting an invalid dnsmasq configuration to ease debugging
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-21 13:44:47 +01:00 |
|
DL6ER
|
1142540aac
|
Single out a few items from /api/info/system into /api/info/{sensors,host,ftl}
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-18 20:16:31 +01:00 |
|
DL6ER
|
37bafc1365
|
Move /api/{ftl -> info}/client, /api/ftl/dbinfo -> /api/info/database, /api/ftl/sysinfo -> /api/info/system, and /api/version -> /api/info/version
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-18 20:16:31 +01:00 |
|
DL6ER
|
aeb61a3026
|
Add HTTP OPTIONS method processing. Using something like "curl -X OPTIONS -I pi.hole:8080/api/... will return an Allow header specifying which endpoint supports which method.
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-21 12:53:04 +01:00 |
|
DL6ER
|
6233bb489a
|
Add GET /config/_topics which will be helpful when automatically generating a Pi-hole settings page
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-18 20:16:31 +01:00 |
|
DL6ER
|
10ed1459b3
|
Add "allowed" as JSON (where applicable) and "type" in /api/config?detailed=true to allow automatic settings page generation
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-18 20:16:31 +01:00 |
|
DL6ER
|
02b7f50c55
|
Keep (up to) 15 config files in rotated form. To save space, we leave the most recent 4 uncompressed and compress the remaining files
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 18:51:11 +01:00 |
|
DL6ER
|
88e57ef9e3
|
Manage custom.list through the universal /config/dns/hosts instead of its own interface. This reduces code duplication.
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 18:32:21 +01:00 |
|
DL6ER
|
91f04fd053
|
Check if /sys/firmware/devicetree/base/model exists before trying to access it
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 18:15:41 +01:00 |
|
DL6ER
|
91f2645ace
|
Also allow all IPv6 addresses in default webserver ACL
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 04:59:43 +01:00 |
|
DL6ER
|
a59efd3ebd
|
Run config file rotation only when writing to the config file
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 04:58:55 +01:00 |
|
DL6ER
|
28bb27c125
|
Fix incorrectly returned 404 for existing API endpoints when not logged in
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 04:56:11 +01:00 |
|
DL6ER
|
19d7582896
|
Free regex memory in final cleanup routine to ensure allocated regex do not show up as definitely lost memory in valgrind analysis
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 04:52:54 +01:00 |
|
DL6ER
|
d041c494ae
|
Add missing specs/{logs,endpoints}.yaml to pre-compiled logs
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 04:49:11 +01:00 |
|
DL6ER
|
0f69342811
|
Rotate config files away instead of forcefully overwriting them. This allows users to easily revert in case they made unwanted changes.
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 04:47:27 +01:00 |
|
DL6ER
|
bd266d6589
|
Further improvements for check_space()
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 04:39:31 +01:00 |
|
DL6ER
|
1a084c3fda
|
Improve code comments in daemon.c
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 04:37:11 +01:00 |
|
DL6ER
|
145d84db95
|
Add more detailed warning about why writing to or removing the PID file failed (if this is the case)
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 04:33:21 +01:00 |
|
DL6ER
|
ea8ef2aa1b
|
Fix incorrect union member being used in check_space()
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-20 04:32:24 +01:00 |
|
DL6ER
|
7b479782fd
|
Implement proper testing of dnsmasq options before applying new configuration
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-18 20:12:11 +01:00 |
|
DL6ER
|
2d6c25d573
|
Add GET /config/{element} for more specific requests as well as PATCH and DELETE /config/{element}/{value} for direct array manipulation
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-18 18:19:19 +01:00 |
|
DL6ER
|
a506d38d9f
|
Materialize the pseudoelement config.port as config.dnsmasq.port (it can now also be changed)
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-18 04:39:09 +01:00 |
|
DL6ER
|
8cd94adbc4
|
Add ability to query nested config items, e.g. /api/config/dnsmasq/upstreams returning: {"config": { "dnsmasq": { "upstreams": [ "127.0.0.1#5335" ] } } }
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-18 04:31:11 +01:00 |
|
DL6ER
|
1ae49c7baf
|
Add /api/logs/{ftl,http,ph7}
Signed-off-by: DL6ER <dl6er@dl6er.de>
|
2023-01-18 04:22:50 +01:00 |
|