Commit graph

110 commits

Author SHA1 Message Date
Christian König
f713b14ba0
Cleanup if startup failed
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-12-08 09:49:02 +01:00
Adam Warner
ff5ee29566
Add native systemd service (#4924) 2022-11-27 21:41:35 +00:00
MichaIng
81927334f2
Add native systemd service
Inspired by: https://github.com/pi-hole/pi-hole/pull/2112

A pre-start and a post-stop script are added to reduce doubled setup and cleanup code.

Since systemd services do not natively support dynamic users, test once whether capabilities are supported during install/update, and remove User=pihole otherwise.

Signed-off-by: MichaIng <micha@dietpi.com>
Co-authored-by: DL6ER <dl6er@dl6er.de>
2022-10-30 19:40:33 +01:00
Christian König
18d28533eb
Update local and remote versions at the same time
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-10-06 12:36:17 +02:00
Christian König
3d01e4d0cf No detour - use pihole-FTL.conf to get the API port number
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-09-26 22:55:30 +02:00
Peter Russell
951b4ed002
Remove cronjob that checks local versions every 10 minutes - only check when required (#4939)
* eliminate updatechecker local from pihole cron job

Signed-off-by: jpgpi250 <jpgpi250@gmail.com>

* resolving stickler-ci items

Signed-off-by: jpgpi250 <jpgpi250@gmail.com>

* undo changes to updatecheck.sh (request from PromoFaux)

Signed-off-by: jpgpi250 <jpgpi250@gmail.com>

* applied recommendation from PromoFaux

Signed-off-by: jpgpi250 <jpgpi250@gmail.com>

* Indent the code inside the function

Signed-off-by: jpgpi250 <jpgpi250@gmail.com>

* removed unnecessary updatecheck for core

Signed-off-by: jpgpi250 <jpgpi250@gmail.com>

* eliminate updatechecker local from pihole cron job

Co-authored-by: jpgpi250 <jpgpi250@gmail.com>
Signed-off-by: Adam Warner <me@adamwarner.co.uk>

Signed-off-by: jpgpi250 <jpgpi250@gmail.com>
Signed-off-by: Adam Warner <me@adamwarner.co.uk>
Co-authored-by: Adam Warner <me@adamwarner.co.uk>
2022-09-24 16:14:44 +01:00
Dan Schaper
989c52ef24
Exit with return code if ftl does not start
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-08-04 17:20:39 -07:00
Christian König
3327df8d9c
Ensure user defined FTL_PID_FILE and FTL_PORT_FILE dirs are created on startup
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-08-04 14:47:43 +02:00
Christian König
7b77d991df
Move FTL port and PID functions to utils.sh
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-07-26 14:38:03 +02:00
DL6ER
98c238064e
Change FTL's default log file path from /var/log/pihole/pihole-FTL.log to /var/log/pihole/FTL.log
Signed-off-by: DL6ER <dl6er@dl6er.de>
2022-07-03 18:43:45 +02:00
Christian König
954a0c2a14
Remove read permission for others on senible log files
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-19 23:09:05 +02:00
yubiuser
3fa8f76d99
Combine mkdir in service file
Co-authored-by: MichaIng <micha@dietpi.com>
2022-05-29 16:15:18 +02:00
Christian König
ce8731b746
no-dereference
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-05-18 22:19:19 +02:00
Christian König
08faf21b2e
Set file owner and permission to symlinks
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-05-18 22:06:36 +02:00
Christian König
2dd08f070e
Fix copy&paste error
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-05-15 23:30:02 +02:00
Christian König
0961103933
Add backward compatibility to FTL service by creating symlinks
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-05-15 22:10:40 +02:00
Adam Warner
36dd533ef3 use directory /var/log/pihole/ for log storage
Signed-off-by: Adam Warner <me@adamwarner.co.uk>
2022-05-15 06:46:23 +02:00
yubiuser
0decc1252b
Respect user configurable path for pid and port file in pihole-FTL.service (#4680)
* Use pid file in pihole-FTL.service

Signed-off-by: Christian König <ckoenig@posteo.de>
Co-authored-by: MichaIng <micha@dietpi.com>
2022-05-11 16:03:44 -07:00
Dan Schaper
b714c4598a
Found it.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-04-01 14:49:30 -07:00
Dan Schaper
0f192998eb
Create empty files.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-04-01 14:17:57 -07:00
Dan Schaper
8a5c7dec71
Ensure existing files are proper owner and mode.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
co-authored-by: RD WebDesign <github@rdwebdesign.com.br>
2022-04-01 14:08:09 -07:00
DL6ER
74d7d10554
Orphans need to be deleted in the old database
Signed-off-by: DL6ER <dl6er@dl6er.de>
2022-01-30 21:09:24 +01:00
DL6ER
5bb79de70b
Clean possible leftovers in domainlist_by_group, adlist_by_group, and client_by_group before copying from database base to avoid foreign key violations.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2022-01-30 10:38:24 +01:00
yubiuser
c6a2a6f739
Install pihole-FTL.conf template on fresh installation (#4496)
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-01-04 19:09:30 +00:00
DL6ER
d03aa0c0c7
Merge pull request #4379 from pi-hole/tweak/vw_adlist
Simplify vw_adlist
2021-10-10 07:11:05 +02:00
yubiuser
3c41ec08a3
Set file permission for querie database in pihole-FTL.service (#4328)
* Set file permission for querie database in pihole-FTL.service

Signed-off-by: Christian König <ckoenig@posteo.de>

* Use -f flag for chmod of the macvendor.db

Signed-off-by: Christian König <ckoenig@posteo.de>

* Fix missing space

Signed-off-by: Christian König <ckoenig@posteo.de>

* Fix spelling

Signed-off-by: Christian König <ckoenig@posteo.de>
2021-10-08 22:54:23 +01:00
Christian König
b30d729aa4 Simplify vw_adlist
Signed-off-by: Christian König <ckoenig@posteo.de>
2021-10-08 21:08:10 +02:00
Adam Warner
62f29ba3fa
Merge branch 'release/v5.4' into development 2021-09-11 21:35:11 +01:00
DL6ER
a1ee7d92a9
Add possibly missing capabilities
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-09-06 22:38:16 +02:00
Adam Warner
c88c943cda
Merge branch 'release/v5.4' into dev-release5.4
Signed-off-by: Adam Warner <me@adamwarner.co.uk>
2021-08-13 20:24:35 +01:00
DL6ER
43b88cd628
Merge pull request #4236 from MichaIng/patch-4
Update pihole-FTL.service
2021-08-10 16:09:41 +02:00
Adam Warner
913dcead7f
move chmod/chown of macvendor.db to pihole-FTL.service
Signed-off-by: Adam Warner <me@adamwarner.co.uk>
2021-08-05 19:02:36 +01:00
MichaIng
57c40cbd09 Update pihole-FTL.service
Make this script a bourne shell script, which requires the removal of only a single bashism, the "{n..m}" expansion. Furthermore, since POSIX echo has no reliable command line options, switch to printf when line breaks shall be omitted. On most distros/setups "sh" calls a much lighter bourne shell like dash, which inits and runs much faster than bash.

Remove unused PIDFILE variable, remove the single case of FTLUSER call and remove it as well. Using variables here might give the wrong impression that there is a change these can be varied. But both are hardcoded in many places throughout Pi-hole, so in this service script.

Consolidate and merge the commands to pre-create and set permissions for required files and directories. The /var/log/pihole directory is and was never used, the touch, chmod and chown call can be merged into one each to reduce overhead. Use "-f" option to to fail on missing database files instead of redirecting STDERR, which is otherwise helpful to debug other possible errors, like missing or corrupted commands, filesystem errors and such.

Do not use "which pihole-FTL" when setting capabilities when the hardcoded path /usr/bin/pihole-FTL is used for the actual daemon call. It makes sense to use the full path here, as the Pi-hole installer and updater installs it explicitly there, and so we prevent users from e.g. overriding it via /usr/local/bin/pihole-FTL too easily.

On pgrep and pkill calls, add the "-x" flag to assure that only "pihole-FTL" is matched and not "foo-pihole-FTL" or "pihole-FTL-bar".

Do not remove possible leftovers from previous pihole-FTL processes on start, but on stop instead. Since "start" includes a proceeding "stop" as well, on service start nothing changes, but on service stop, some resources are now freed.

Remove leading "$" from usage message. In bash this was omitted, as $'...' is a special syntax for escape sequence expansion, which is not applicable here. In dash it would be printed literally. To keep previous behaviour, it is hence removed.

Signed-off-by: MichaIng <micha@dietpi.com>
2021-07-24 14:55:54 +02:00
Faye Duxovni
aa5c15a728 give pihole its own logrotate state file
Signed-off-by: Faye Duxovni <duxovni@duxovni.org>

Co-authored-by: Dan Schaper <dan.schaper@pi-hole.net>
2021-07-09 20:00:10 -04:00
DL6ER
6b33b8b4c0
Store status of downloaded list (downloaded, using cache, some error, ...) and number of (in-)valid domains on this list in the gravity database. This updates the gravity databaes to version 14.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-12-28 08:08:49 +01:00
Michael Woolweaver
3a05ac27a2
Fix typo found by #3933
Signed-off-by: Michael Woolweaver <m.woolweaver@icloud.com>
2020-12-19 17:37:17 -06:00
DL6ER
12b9748c43
Fine-tune adlist:adte_modified trigger and don't default new date_updated column to now but use NULL instead
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-07 21:11:57 +02:00
DL6ER
4fd412d7c3
Add date_updated field in adlist table set when a list changes.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-07 20:59:23 +02:00
DL6ER
8f7f0881c6
Add /usr/sbin to cronjob PATH
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-07-21 21:21:24 +02:00
DL6ER
17aabf26f7
Also use pkill/pgrep in the FTL service script
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-07-21 21:21:17 +02:00
DL6ER
202ba055ea
Change UNIQUEness constraint from (domain) to (domain, type) in the domainlist table. This will allow duplicates which can be associated to different groups.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-06-02 10:49:35 +02:00
DL6ER
de8976da7a
Add CAP_SYS_NICE to FTL's capabilities so it can control its own niceness.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-28 21:18:31 +02:00
MichaIng
5c17e41cf1 Start pihole-FTL after network
"$network" on a systemd-driven OS leads to "After=network-online.target" in the generated systemd unit.
This target is no guarantee that all network interfaces have been fully configured, as it depends on the related network services types, but at least it reduces the risk that those have not fully finished their job when pihole-FTL starts. If this is the case, certain issues can occur:
- https://github.com/pi-hole/pi-hole/issues/2924
- https://discourse.pi-hole.net/t/have-to-pihole-restartdns-after-reboot/28772

Runtime files are now consistently created in "/run" instead of "/var/run". The second is a symlink to the first for backwards compatibility but on none-ancient distro versions one should use "/run", systemd even prints a warnings if service files use "/var/run". The service file used "/run" and "/var/run" both, in cases for the same files/directories before, which does not directly cause issues currently, due to the symlink, but is inconsistent at best.

Signed-off-by: MichaIng <micha@dietpi.com>
2020-05-16 13:38:18 +02:00
Dan Schaper
10addc5923
Merge pull request #3218 from JulienOrain/patch-1
fix typo
2020-05-14 09:48:59 -07:00
DL6ER
7cc35d3b04
Add update to gravity database version 12, renaming the Unassociated group to Default group.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-07 18:01:37 +02:00
Julien Orain
6d4844a0b3 docs(typo): fix typo
Signed-off-by: Julien Orain <julien.orain@gmail.com>
2020-03-18 21:41:54 +01:00
DL6ER
e528903488
Merge pull request #3107 from pi-hole/new/client_comments
Add timestamps and comment fields to clients table
2020-02-12 19:35:01 +01:00
DL6ER
92aa510bda
Add timestamps and comment fields to clients. This updates the gravity database to version 11.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-01-27 10:36:16 +00:00
DL6ER
6b04997fc3
DROP and reCREATE TRIGGERs during gravity swapping.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-01-27 10:12:05 +00:00
DL6ER
10c2dad48a Improve gravity performance (#3100)
* Gravity performance improvements.

Signed-off-by: DL6ER <dl6er@dl6er.de>

* Do not move downloaded lists into migration_backup directory.

Signed-off-by: DL6ER <dl6er@dl6er.de>

* Do not (strictly) sort domains. Random-leaf access is faster than always-last-leaf access (on average).

Signed-off-by: DL6ER <dl6er@dl6er.de>

* Append instead of overwrite gravity_new collection list.

Signed-off-by: DL6ER <dl6er@dl6er.de>

* Rename table gravity_new to gravity_temp to clarify that this is only an intermediate table.

Signed-off-by: DL6ER <dl6er@dl6er.de>

* Add timers for each of the calls to compute intense parts. They are to be removed before this finally hits the release/v5.0 branch.

Signed-off-by: DL6ER <dl6er@dl6er.de>

* Fix legacy list files import. It currently doesn't work when the gravity database has already been updated to using the single domainlist table.

Signed-off-by: DL6ER <dl6er@dl6er.de>

* Simplify database_table_from_file(), remove all to this function for gravity lost downloads.

Signed-off-by: DL6ER <dl6er@dl6er.de>

* Update gravity.db.sql to version 10 to have newle created databases already reflect the most recent state.

Signed-off-by: DL6ER <dl6er@dl6er.de>

* Create second gravity database and swap them on success. This has a number of advantages such as instantaneous gravity updates (as seen from FTL) and always available gravity blocking. Furthermore, this saves disk space as the old database is removed on completion.

* Add timing output for the database swapping SQLite3 call.

Signed-off-by: DL6ER <dl6er@dl6er.de>

* Explicitly generate index as a separate process.

Signed-off-by: DL6ER <dl6er@dl6er.de>

* Remove time measurements.

Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-01-24 09:39:13 -08:00