Compare commits

...

110 Commits

Author SHA1 Message Date
Dan Schaper
ef71ca05a9 Merge pull request #4794 from pi-hole/fix/mkdir_always
Always create log directory if it doesn't exist
2022-07-07 13:41:45 -07:00
Dan Schaper
48d5d6bed2 Always create the log target directory before any movements
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-07 13:23:13 -07:00
Adam Warner
04abc4dacd Merge pull request #4792 from pi-hole/fix/mkdir_logs
Create new log directory
2022-07-07 20:18:18 +01:00
Dan Schaper
fd41801977 Create new log directory
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-07 12:12:53 -07:00
Adam Warner
1be082a0e1 Merge pull request #4789 from pi-hole/development
v5.11 Release
2022-07-07 19:48:32 +01:00
Adam Warner
6204698e05 Merge pull request #4790 from pi-hole/reformat-yml
[Meta] Reformat yml files
2022-07-07 19:16:03 +01:00
Adam Warner
edba325a3e Disable line length rule for yamllint - fix indentation in stale.yml
Signed-off-by: Adam Warner <me@adamwarner.co.uk>
2022-07-07 19:11:23 +01:00
yubiuser
3d4476c9fb Merge pull request #4786 from pi-hole/regex_lenght
Do not restrict RegEx added from CLI by length
2022-07-06 21:23:23 +02:00
Adam Warner
e05b64b56b Merge pull request #4782 from pi-hole/fix/stale_reason
Fix close-issue-reason
2022-07-06 18:28:48 +01:00
Adam Warner
4150826211 Merge pull request #4784 from pi-hole/space
Fix indention in install script output
2022-07-06 18:28:32 +01:00
Christian König
469776afd6 Do not restrict RegEx added from CLI by length
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-07-06 19:27:33 +02:00
Christian König
5c564e53ca Fix indention in install script output
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-07-06 12:29:03 +02:00
Dan Schaper
853cd9670a Merge pull request #4772 from pi-hole/tweak/dialog
Convert installer whiptail to dialog
2022-07-05 20:56:02 -07:00
Dan Schaper
cfbc731eab Apply suggestions from code review
Co-authored-by: yubiuser <ckoenig@posteo.de>

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-05 20:25:27 -07:00
Dan Schaper
46f991f578 Apply suggestions from code review
Co-authored-by: yubiuser <ckoenig@posteo.de>

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-05 20:11:00 -07:00
RD WebDesign
ad70ece73e Fixing dialog line breaks
Signed-off-by: RD WebDesign <github@rdwebdesign.com.br>
2022-07-05 23:10:40 -03:00
Dan Schaper
39cb1029e9 Clarify button labels
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-05 14:23:59 -07:00
Christian König
c058a511e6 Fix close-issue-reason
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-07-05 10:15:18 +02:00
Dan Schaper
a39c470f2d Requested changes.
Co-authored-by: MichaIng <micha@dietpi.com>

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-05 00:06:12 -07:00
Dan Schaper
72fcdb128a Rework cenos7 functions
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-04 23:14:02 -07:00
Dan Schaper
44667b5ffb Add dialog to RPM installer requirements.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-04 12:35:08 -07:00
yubiuser
696d1c4ec3 Merge pull request #4777 from pi-hole/tweak/default_log_path
Change default FTL log file path to /var/log/pihole/FTL.log
2022-07-03 22:19:14 +02:00
Dan Schaper
0b10c50a0b Merge branch 'development' into tweak/dialog 2022-07-03 11:58:45 -07:00
Dan Schaper
c78aac3051 Merge pull request #4778 from pi-hole/fix/epel_mirrors
Fix for epel mirror timeouts
2022-07-03 11:57:21 -07:00
Dan Schaper
6efb3a3372 Fix for epel mirror timeouts
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-03 11:48:12 -07:00
Dan Schaper
2845c72bde Add testing dependencies for CentOS7 and dialog
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-03 11:08:56 -07:00
Dan Schaper
a650641da4 Change tests to mock dialog
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-03 11:08:56 -07:00
Dan Schaper
1ed5ff306d Align dialog texts.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-03 11:08:56 -07:00
Dan Schaper
bf57a786e6 Convert whiptail to dialog.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-03 11:08:56 -07:00
yubiuser
37889f27de Merge pull request #4775 from pi-hole/fix/centos_epel
Directly download CentOS 7 epel-release
2022-07-03 20:08:21 +02:00
Dan Schaper
80bef5f6b6 Direct pull for epel-release
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2022-07-03 10:47:05 -07:00
DL6ER
bd8288d6ef Special renaming for pihole-FTL.* to pihole/FTL.log.*
Signed-off-by: DL6ER <dl6er@dl6er.de>
2022-07-03 18:54:13 +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
DL6ER
312fa6d134 Merge pull request #4776 from pi-hole/less_stale
Run stale workflow at 8:00 once per day
2022-07-03 16:30:12 +02:00
Christian König
a783da823e Run stale workflow at 8:00 once per day
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-07-03 14:40:03 +02:00
yubiuser
17485023a2 Merge pull request #4713 from pi-hole/new/code-spell
Add code-spell action / Move editorconfig-checker action to smoke-tests
2022-07-02 17:26:50 +02:00
Adam Warner
0be987239e Adds spellcheck action to the smoke-tests (also moves editorconfig-checker to smoketests away from it's own action)
Signed-off-by: Adam Warner <me@adamwarner.co.uk>
2022-07-02 14:04:08 +01:00
Adam Warner
75f40e7160 Merge pull request #4771 from pi-hole/action/ediorconfig-checker
Action/editorconfig checker
2022-07-02 13:24:41 +01:00
Christian König
73d5902bed Add editorconfig-checker workflow
Add yml style to editorconfig
Add markdown styling to editorconfig

Signed-off-by: Christian König <ckoenig@posteo.de>
2022-07-02 09:36:52 +02:00
yubiuser
eb045a0dea Merge pull request #4773 from pi-hole/yamllint_and_mkdownlint
Add mkdown and yaml linters to stickler
2022-07-01 11:46:54 +02:00
Christian König
b70b895fc5 Add mkdown and yaml linters to stickler
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-29 20:07:43 +02:00
yubiuser
46331e415c Merge pull request #4762 from pi-hole/drop_fedora
Update test to reflect currently supported OS
2022-06-28 21:45:50 +02:00
Dan Schaper
dcea3cf2c6 Merge branch 'development' into drop_fedora 2022-06-27 11:48:26 -07:00
yubiuser
e02c7ff249 Merge pull request #4760 from pi-hole/hands_off
Remove read permission for others on sensible log files
2022-06-27 00:27:24 +02:00
Adam Warner
f3d062aaf4 Merge pull request #4770 from pi-hole/master
sync: master to development
2022-06-26 13:20:18 +01:00
Adam Warner
bacb98be32 Merge pull request #4767 from pi-hole/stale_reason
Add stale-issue-reason: not planned
2022-06-26 13:19:47 +01:00
Adam Warner
7ef7719b6b Merge pull request #4761 from pi-hole/re_sudo
Require sudo for pihole -t
2022-06-26 13:18:07 +01:00
Christian König
f740e0fefb Ubt22 is jammy not impish
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-25 23:11:16 +02:00
Christian König
a33f71289d Re-add centos_7
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-25 23:09:10 +02:00
Christian König
8c498acd4c Re-add Ubuntu21 tests
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-25 23:04:16 +02:00
yubiuser
3d773beff2 Merge pull request #4769 from pi-hole/tweak/editorconfig
Remove unnecessary file types from editorconfig
2022-06-25 22:35:55 +02:00
Christian König
d88ab2ca60 Remove unnecassry file types from editorconfig
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-24 19:57:44 +02:00
Christian König
287d5d37b1 Add stale-issue-reason: not planned
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-24 08:33:21 +02:00
Christian König
f9d1893f96 Update test to reflect currently supported OS
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-20 10:34:32 +02:00
Christian König
2c5907a8b1 Requiere sudo for pihole -t
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-19 23:25:53 +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
b20aa865b9 Merge pull request #4757 from pi-hole/4751-unable-to-locate-php00-common
Exit installer if no valid PHP version is found
2022-06-15 06:45:05 +02:00
Christian König
ed8c6c04d4 Use PHP_VERSION
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-14 23:04:31 +02:00
Christian König
4b674ecfe3 Fix first install
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-14 00:58:10 +02:00
Christian König
5818f3f997 Check for validity first
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-14 00:05:27 +02:00
Christian König
7d731870e5 Fix stickler
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-13 16:06:59 +02:00
Christian König
1f26e85399 Exit installer if no valid PHP version is found
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-13 15:50:51 +02:00
Adam Warner
de02220a12 Merge pull request #4756 from pi-hole/PromoFaux-patch-1
Update dependabot.yml
2022-06-12 13:25:47 +01:00
Adam Warner
4d24fa6c15 Merge pull request #4755 from pi-hole/dependabot/github_actions/development/actions/setup-python-4
Bump actions/setup-python from 3 to 4
2022-06-12 13:12:26 +01:00
dependabot[bot]
50d14fb6db Bump actions/setup-python from 3 to 4
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 4.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-12 11:35:59 +00:00
Adam Warner
b6cc845caf Merge pull request #4733 from pi-hole/dependabot/github_actions/development/github/codeql-action-2
Bump github/codeql-action from 1 to 2
2022-06-12 12:35:25 +01:00
Adam Warner
635b67dbf3 Merge pull request #4732 from pi-hole/dependabot/github_actions/development/actions/stale-5
Bump actions/stale from 4 to 5
2022-06-12 12:35:04 +01:00
Adam Warner
e7289563df Merge pull request #4731 from pi-hole/dependabot/github_actions/development/actions/checkout-3
Bump actions/checkout from 2 to 3
2022-06-12 12:33:57 +01:00
Adam Warner
d501b676e9 Merge pull request #4730 from pi-hole/master
sync: master to development
2022-06-12 12:31:27 +01:00
Adam Warner
fbc0b57dd1 Update dependabot.yml
Signed-off-by: Adam Warner <me@adamwarner.co.uk>
2022-06-12 12:30:29 +01:00
yubiuser
cf0fcf3ad7 Merge pull request #4356 from yubiuser/remove_IPvX_setupVars
Remove IPv4 and IPv6 adresses from setupVars.conf
2022-06-12 13:23:55 +02:00
DL6ER
e2e803f76c Merge pull request #4508 from Omoeba/fix-ipv6
Fix IPv6 support when Pi-hole is a router
2022-06-06 14:20:07 +02:00
Christian König
2c07d27ad7 Forgot two places
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-04 22:42:41 +02:00
Christian König
0b9d4a47ad Remove IPv4 and IPv6 adresses from setupVars.conf
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-06-04 22:38:00 +02:00
Dan Schaper
67f5f16f84 Merge branch 'development' into fix-ipv6 2022-06-02 12:24:01 -07:00
yubiuser
ae9d16baf2 Merge pull request #3732 from pi-hole/tweak/moveloglocation
Utilise /var/log/pihole/ for log storage
2022-05-31 22:59:32 +02:00
Dan Schaper
fe51a4f8d0 Merge pull request #4749 from pi-hole/webroot
Do not hardcode webroot dir for teleporter
2022-05-31 11:46:58 -07:00
Christian König
300c7b1518 Do not hardcode webroot dir for teleporter
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-05-31 14:11:39 +02:00
yubiuser
5241c1c704 Merge pull request #4747 from pi-hole/lighttpd_logs
Change lighttpd log file names
2022-05-30 21:51:19 +02:00
Christian König
dae96e7384 Change lighttpd log file names
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-05-29 21:04:18 +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
52c3df1a8e lighttpd log dir is now different than Pi-hole log dir
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-05-28 21:21:48 +02:00
yubiuser
477df86ff1 Merge pull request #4738 from pi-hole/tweak/service_file
Always install pihole-FTL.service file
2022-05-21 06:46:56 +02:00
Christian König
b7742ddb9b Always install pihole-FTL.service file
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-05-19 06:17:46 +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
60615e60aa Make sure FTL is stopped before old logfiles are moved
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-05-18 21:11:38 +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
110e752552 Move existing log files
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-05-15 22:30:17 +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
Christian König
0fa94e0946 Remove unused test which was commented since 5 years by PR 1244
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-05-15 20:26:25 +02:00
Christian König
9b9acfd4a7 Remove log files from new location during uninstalling
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-05-15 20:22:06 +02:00
Adam Warner
82695aba7d update LOG_DIRECTORY variable in debug script
Signed-off-by: Adam Warner <me@adamwarner.co.uk>
2022-05-15 07:09:27 +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
Dan Schaper
2735481da8 Logo for light and dark modes. (#4735)
* Logo for light and dark modes.
2022-05-14 14:25:57 -07:00
dependabot[bot]
edec1220fc Bump github/codeql-action from 1 to 2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-12 07:24:06 +00:00
dependabot[bot]
c5b3f6c27a Bump actions/stale from 4 to 5
Bumps [actions/stale](https://github.com/actions/stale) from 4 to 5.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-12 07:24:01 +00:00
dependabot[bot]
1d033ef441 Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-12 07:23:57 +00:00
Dan Schaper
83ac2c5005 Merge pull request #4729 from pi-hole/fix/dependabot_action_yaml
Typo fix on dependabot yaml.
2022-05-12 00:23:29 -07: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
f2e1cc9dae Typo fix on dependabot yaml. 2022-05-11 12:28:32 -07:00
Omoeba
f7c800863e Remove DHCPv6, use leasetime from interface (#4507)
Signed-off-by: Omoeba <38597972+Omoeba@users.noreply.github.com>
2022-05-11 11:57:42 -07:00
yubiuser
6d73454942 Merge pull request #4718 from sed-i/patch-1
Add example for custom DNS server with port number
2022-05-09 17:24:26 +02:00
yubiuser
2e2a3aa048 Add port info to explanation text 2022-05-09 17:14:16 +02:00
Leon
e23e291dd4 Merge branch 'development' into patch-1 2022-04-25 19:47:01 -04:00
Leon
6a0c6c4a9b Add example for custom DNS server with port number
Signed-off-by: sed-i <82407168+sed-i@users.noreply.github.com>
2022-04-25 19:00:01 -04:00
yubiuser
94cb0d0a7e Merge pull request #4709 from pi-hole/follow-my-own-rules
[Housekeeping] Remove alphabetical rule from utils.sh
2022-04-21 21:07:08 +02:00
Adam Warner
d78c689e55 no more alphabetical order
Signed-off-by: Adam Warner <me@adamwarner.co.uk>
2022-04-21 19:56:21 +01:00
Adam Warner
3915efbfd5 Merge pull request #4706 from pi-hole/master
sync: master to development
2022-04-20 19:43:29 +01:00
Omoeba
5b84cd0a61 Fix IPv6 support when Pi-hole is a router
Signed-off-by: Omoeba <38597972+Omoeba@users.noreply.github.com>
2022-01-03 04:02:01 -08:00
44 changed files with 725 additions and 512 deletions

3
.codespellignore Normal file
View File

@@ -0,0 +1,3 @@
doubleclick
wan
nwe

View File

@@ -13,26 +13,8 @@ tab_width = 4
charset = utf-8
trim_trailing_whitespace = true
# Matches multiple files with brace expansion notation
# Set default charset
[*.{js,py}]
charset = utf-8
[*.yml]
tab_width = 2
# 4 space indentation
[*.py]
indent_style = space
indent_size = 4
# Tab indentation (no size specified)
[Makefile]
indent_style = tab
# Indentation override for all JS under lib directory
[scripts/**.js]
indent_style = space
indent_size = 2
# Matches the exact files either package.json or .travis.yml
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2
[*.md]
tab_width = 2

View File

@@ -7,4 +7,6 @@ updates:
day: saturday
time: "10:00"
open-pull-requests-limit: 10
target-branch: developement
target-branch: development
reviewers:
- "pi-hole/core-maintainers"

View File

@@ -25,16 +25,16 @@ jobs:
steps:
-
name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
-
name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v2
with:
languages: 'python'
-
name: Autobuild
uses: github/codeql-action/autobuild@v1
uses: github/codeql-action/autobuild@v2
-
name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v2

View File

@@ -2,7 +2,7 @@ name: Mark stale issues
on:
schedule:
- cron: '0 * * * *'
- cron: '0 8 * * *'
workflow_dispatch:
jobs:
@@ -13,13 +13,14 @@ jobs:
issues: write
steps:
- uses: actions/stale@v4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 30
days-before-close: 5
stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Please comment or update this issue or it will be closed in 5 days.'
stale-issue-label: 'stale'
exempt-issue-labels: 'Internal, Fixed in next release, Bug: Confirmed, Documentation Needed'
exempt-all-issue-assignees: true
operations-per-run: 300
- uses: actions/stale@v5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 30
days-before-close: 5
stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Please comment or update this issue or it will be closed in 5 days.'
stale-issue-label: 'stale'
exempt-issue-labels: 'Internal, Fixed in next release, Bug: Confirmed, Documentation Needed'
exempt-all-issue-assignees: true
operations-per-run: 300
close-issue-reason: 'not_planned'

View File

@@ -11,7 +11,7 @@ jobs:
name: Syncing branches
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Opening pull request
id: pull
uses: tretuna/sync-branches@1.4.0

View File

@@ -8,39 +8,50 @@ permissions:
contents: read
jobs:
smoke-test:
smoke-tests:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
-
name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
-
name: Run Smoke Tests
name: Check scripts in repository are executable
run: |
# Ensure scripts in repository are executable
IFS=$'\n';
for f in $(find . -name '*.sh'); do if [[ ! -x $f ]]; then echo "$f is not executable" && FAIL=1; fi ;done
unset IFS;
# If FAIL is 1 then we fail.
[[ $FAIL == 1 ]] && exit 1 || echo "Smoke Tests Passed"
[[ $FAIL == 1 ]] && exit 1 || echo "Scripts are executable!"
-
name: Spell-Checking
uses: codespell-project/actions-codespell@master
with:
ignore_words_file: .codespellignore
-
name: Get editorconfig-checker
uses: editorconfig-checker/action-editorconfig-checker@main
-
name: Run editorconfig-checker
run: editorconfig-checker
distro-test:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
needs: smoke-test
needs: smoke-tests
strategy:
matrix:
distro: [debian_9, debian_10, debian_11, ubuntu_16, ubuntu_18, ubuntu_20, ubuntu_21, centos_7, centos_8, fedora_33, fedora_34]
distro: [debian_10, debian_11, ubuntu_18, ubuntu_20, ubuntu_21, ubuntu_22, centos_7, centos_8, fedora_34]
env:
DISTRO: ${{matrix.distro}}
steps:
-
name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
-
name: Set up Python 3.8
uses: actions/setup-python@v3
uses: actions/setup-python@v4
with:
python-version: 3.8
-

View File

@@ -1,6 +1,10 @@
---
linters:
shellcheck:
shell: bash
phpcs:
flake8:
max-line-length: 120
yamllint:
config: ./.yamllint.conf
remarklint:

3
.yamllint.conf Normal file
View File

@@ -0,0 +1,3 @@
rules:
line-length: disable
document-start: disable

View File

@@ -3,5 +3,3 @@
Please read and understand the contribution guide before creating an issue or pull request.
The guide can be found here: [https://docs.pi-hole.net/guides/github/contributing/](https://docs.pi-hole.net/guides/github/contributing/)

View File

@@ -3,8 +3,11 @@
#
<p align="center">
<a href="https://pi-hole.net/">
<img src="https://pi-hole.github.io/graphics/Vortex/Vortex_with_Wordmark.svg" width="150" height="260" alt="Pi-hole">
<a href="https://pi-hole.net/#gh-light-mode-only">
<img src="https://github.com/pi-hole/graphics/blob/master/Vortex/Vortex_Vertical_wordmark_lightmode.png?raw=true)" alt="Pi-hole">
</a>
<a href="https://pi-hole.net/#gh-dark-mode-only">
<img src="https://github.com/pi-hole/graphics/blob/master/Vortex/Vortex_Vertical_wordmark_darkmode.png?raw=true" alt="Pi-hole">
</a>
<br>
<strong>Network-wide ad blocking via your own Linux hardware</strong>

View File

@@ -37,6 +37,6 @@ interface=@INT@
cache-size=@CACHE_SIZE@
log-queries
log-facility=/var/log/pihole.log
log-facility=/var/log/pihole/pihole.log
log-async

View File

@@ -16,4 +16,4 @@ CREATE TRIGGER tr_group_zero AFTER DELETE ON "group"
UPDATE info SET value = 12 WHERE property = 'version';
COMMIT;
COMMIT;

View File

@@ -15,4 +15,4 @@ CREATE TRIGGER tr_adlist_update AFTER UPDATE OF address,enabled,comment ON adlis
UPDATE info SET value = 13 WHERE property = 'version';
COMMIT;
COMMIT;

View File

@@ -93,4 +93,4 @@ CREATE VIEW vw_regex_blacklist AS SELECT domain, domainlist.id AS id, domainlist
UPDATE info SET value = 4 WHERE property = 'version';
COMMIT;
COMMIT;

View File

@@ -35,4 +35,4 @@ CREATE TABLE client_by_group
UPDATE info SET value = 5 WHERE property = 'version';
COMMIT;
COMMIT;

View File

@@ -100,21 +100,29 @@ Options:
ValidateDomain() {
# Convert to lowercase
domain="${1,,}"
local str validDomain
# Check validity of domain (don't check for regex entries)
if [[ "${#domain}" -le 253 ]]; then
if [[ ( "${typeId}" == "${regex_blacklist}" || "${typeId}" == "${regex_whitelist}" ) && "${wildcard}" == false ]]; then
validDomain="${domain}"
else
if [[ ( "${typeId}" == "${regex_blacklist}" || "${typeId}" == "${regex_whitelist}" ) && "${wildcard}" == false ]]; then
validDomain="${domain}"
else
# Check max length
if [[ "${#domain}" -le 253 ]]; then
validDomain=$(grep -P "^((-|_)*[a-z\\d]((-|_)*[a-z\\d])*(-|_)*)(\\.(-|_)*([a-z\\d]((-|_)*[a-z\\d])*))*$" <<< "${domain}") # Valid chars check
validDomain=$(grep -P "^[^\\.]{1,63}(\\.[^\\.]{1,63})*$" <<< "${validDomain}") # Length of each label
# set error string
str="is not a valid argument or domain name!"
else
validDomain=
str="is too long!"
fi
fi
if [[ -n "${validDomain}" ]]; then
domList=("${domList[@]}" "${validDomain}")
else
echo -e " ${CROSS} ${domain} is not a valid argument or domain name!"
echo -e " ${CROSS} ${domain} ${str}"
fi
domaincount=$((domaincount+1))

View File

@@ -66,8 +66,8 @@ PIHOLE_DIRECTORY="/etc/pihole"
PIHOLE_SCRIPTS_DIRECTORY="/opt/pihole"
BIN_DIRECTORY="/usr/local/bin"
RUN_DIRECTORY="/run"
LOG_DIRECTORY="/var/log"
WEB_SERVER_LOG_DIRECTORY="${LOG_DIRECTORY}/lighttpd"
LOG_DIRECTORY="/var/log/pihole"
WEB_SERVER_LOG_DIRECTORY="/var/log/lighttpd"
WEB_SERVER_CONFIG_DIRECTORY="/etc/lighttpd"
HTML_DIRECTORY="/var/www/html"
WEB_GIT_DIRECTORY="${HTML_DIRECTORY}/admin"
@@ -129,36 +129,17 @@ FTL_PORT="${RUN_DIRECTORY}/pihole-FTL.port"
PIHOLE_LOG="${LOG_DIRECTORY}/pihole.log"
PIHOLE_LOG_GZIPS="${LOG_DIRECTORY}/pihole.log.[0-9].*"
PIHOLE_DEBUG_LOG="${LOG_DIRECTORY}/pihole_debug.log"
PIHOLE_FTL_LOG="$(get_ftl_conf_value "LOGFILE" "${LOG_DIRECTORY}/pihole-FTL.log")"
PIHOLE_FTL_LOG="$(get_ftl_conf_value "LOGFILE" "${LOG_DIRECTORY}/FTL.log")"
PIHOLE_WEB_SERVER_ACCESS_LOG_FILE="${WEB_SERVER_LOG_DIRECTORY}/access.log"
PIHOLE_WEB_SERVER_ERROR_LOG_FILE="${WEB_SERVER_LOG_DIRECTORY}/error.log"
PIHOLE_WEB_SERVER_ACCESS_LOG_FILE="${WEB_SERVER_LOG_DIRECTORY}/access-pihole.log"
PIHOLE_WEB_SERVER_ERROR_LOG_FILE="${WEB_SERVER_LOG_DIRECTORY}/error-pihole.log"
RESOLVCONF="${ETC}/resolv.conf"
DNSMASQ_CONF="${ETC}/dnsmasq.conf"
# An array of operating system "pretty names" that we officially support
# We can loop through the array at any time to see if it matches a value
#SUPPORTED_OS=("Raspbian" "Ubuntu" "Fedora" "Debian" "CentOS")
# Store Pi-hole's processes in an array for easy use and parsing
PIHOLE_PROCESSES=( "lighttpd" "pihole-FTL" )
# Store the required directories in an array so it can be parsed through
#REQUIRED_DIRECTORIES=("${CORE_GIT_DIRECTORY}"
#"${CRON_D_DIRECTORY}"
#"${DNSMASQ_D_DIRECTORY}"
#"${PIHOLE_DIRECTORY}"
#"${PIHOLE_SCRIPTS_DIRECTORY}"
#"${BIN_DIRECTORY}"
#"${RUN_DIRECTORY}"
#"${LOG_DIRECTORY}"
#"${WEB_SERVER_LOG_DIRECTORY}"
#"${WEB_SERVER_CONFIG_DIRECTORY}"
#"${HTML_DIRECTORY}"
#"${WEB_GIT_DIRECTORY}"
#"${BLOCK_PAGE_DIRECTORY}")
# Store the required directories in an array so it can be parsed through
REQUIRED_FILES=("${PIHOLE_CRON_FILE}"
"${WEB_SERVER_CONFIG_FILE}"
@@ -603,7 +584,7 @@ disk_usage() {
# Additinal keywords can be added, separated by "|"
hide="curlftpfs"
# only show those lines not containg a sensitive phrase
# only show those lines not containing a sensitive phrase
for line in "${file_system[@]}"; do
if [[ ! $line =~ $hide ]]; then
log_write " ${line}"
@@ -1394,7 +1375,7 @@ curl_to_tricorder() {
upload_to_tricorder() {
local username="pihole"
# Set the permissions and owner
chmod 644 ${PIHOLE_DEBUG_LOG}
chmod 640 ${PIHOLE_DEBUG_LOG}
chown "$USER":"${username}" ${PIHOLE_DEBUG_LOG}
# Let the user know debugging is complete with something strikingly visual

View File

@@ -31,7 +31,7 @@ if [ -z "$DBFILE" ]; then
fi
if [[ "$@" != *"quiet"* ]]; then
echo -ne " ${INFO} Flushing /var/log/pihole.log ..."
echo -ne " ${INFO} Flushing /var/log/pihole/pihole.log ..."
fi
if [[ "$@" == *"once"* ]]; then
# Nightly logrotation
@@ -44,9 +44,9 @@ if [[ "$@" == *"once"* ]]; then
# Note that moving the file is not an option, as
# dnsmasq would happily continue writing into the
# moved file (it will have the same file handler)
cp -p /var/log/pihole.log /var/log/pihole.log.1
echo " " > /var/log/pihole.log
chmod 644 /var/log/pihole.log
cp -p /var/log/pihole/pihole.log /var/log/pihole/pihole.log.1
echo " " > /var/log/pihole/pihole.log
chmod 640 /var/log/pihole/pihole.log
fi
else
# Manual flushing
@@ -56,10 +56,10 @@ else
/usr/sbin/logrotate --force --state "${STATEFILE}" /etc/pihole/logrotate
else
# Flush both pihole.log and pihole.log.1 (if existing)
echo " " > /var/log/pihole.log
if [ -f /var/log/pihole.log.1 ]; then
echo " " > /var/log/pihole.log.1
chmod 644 /var/log/pihole.log.1
echo " " > /var/log/pihole/pihole.log
if [ -f /var/log/pihole/pihole.log.1 ]; then
echo " " > /var/log/pihole/pihole.log.1
chmod 640 /var/log/pihole/pihole.log.1
fi
fi
# Delete most recent 24 hours from FTL's database, leave even older data intact (don't wipe out all history)
@@ -70,6 +70,6 @@ else
fi
if [[ "$@" != *"quiet"* ]]; then
echo -e "${OVER} ${TICK} Flushed /var/log/pihole.log"
echo -e "${OVER} ${TICK} Flushed /var/log/pihole/pihole.log"
echo -e " ${TICK} Deleted ${deleted} queries from database"
fi

View File

@@ -12,7 +12,7 @@
# Basic Housekeeping rules
# - Functions must be self contained
# - Functions must be added in alphabetical order
# - Functions should be grouped with other similar functions
# - Functions must be documented
# - New functions must have a test added for them in test/test_any_utils.py
@@ -89,7 +89,7 @@ getFTLAPIPort(){
# -s: FILE exists and has a size greater than zero
ftl_api_port=$(cat "${PORTFILE}")
# Exploit prevention: unset the variable if there is malicious content
# Verify that the value read from the file is numeric
# Verify that the value read from the file is numeric
expr "$ftl_api_port" : "[^[:digit:]]" > /dev/null && unset ftl_api_port
fi

View File

@@ -296,7 +296,7 @@ trust-anchor=.,20326,8,2,E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC68345710423
# changes in the non-FQDN forwarding. This cannot be done in 01-pihole.conf
# as we don't want to delete all local=/.../ lines so it's much safer to
# simply rewrite the entire corresponding config file (which is what the
# DHCP settings subroutie is doing)
# DHCP settings subroutine is doing)
ProcessDHCPSettings
}
@@ -440,8 +440,8 @@ dhcp-leasefile=/etc/pihole/dhcp.leases
echo "#quiet-dhcp6
#enable-ra
dhcp-option=option6:dns-server,[::]
dhcp-range=::100,::1ff,constructor:${interface},ra-names,slaac,64,3600
ra-param=*,0,0
dhcp-range=::,constructor:${interface},ra-names,ra-stateless,64
" >> "${dhcpconfig}"
fi
@@ -650,7 +650,8 @@ Teleporter() {
host="${host//./_}"
filename="pi-hole-${host:-noname}-teleporter_${datetimestamp}.tar.gz"
fi
php /var/www/html/admin/scripts/pi-hole/php/teleporter.php > "${filename}"
# webroot is sourced from basic-install above
php "${webroot}/admin/scripts/pi-hole/php/teleporter.php" > "${filename}"
}
checkDomain()

View File

@@ -1,4 +1,4 @@
/var/log/pihole.log {
/var/log/pihole/pihole.log {
# su #
daily
copytruncate
@@ -9,7 +9,7 @@
nomail
}
/var/log/pihole-FTL.log {
/var/log/pihole/FTL.log {
# su #
weekly
copytruncate

View File

@@ -9,8 +9,55 @@
# Description: Enable service provided by pihole-FTL daemon
### END INIT INFO
# Global variables
FTLCONFFILE="/etc/pihole/pihole-FTL.conf"
DEFAULT_PID_FILE="/run/pihole-FTL.pid"
DEFAULT_PORT_FILE="/run/pihole-FTL.port"
FTL_PID=''
# Get the file path of the pihole-FTL.pid file
getFTLPIDFile() {
if [ -s "${FTLCONFFILE}" ]; then
# if PIDFILE is not set in pihole-FTL.conf, use the default path
FTL_PID_FILE="$({ grep '^PIDFILE=' "${FTLCONFFILE}" || echo "${DEFAULT_PID_FILE}"; } | cut -d'=' -f2-)"
else
# if there is no pihole-FTL.conf, use the default path
FTL_PID_FILE="${DEFAULT_PID_FILE}"
fi
}
# Get the PID of the FTL process based on the content of the pihole-FTL.pid file
getFTLPID() {
if [ -s "${FTL_PID_FILE}" ]; then
# -s: FILE exists and has a size greater than zero
FTL_PID="$(cat "${FTL_PID_FILE}")"
# Exploit prevention: unset the variable if there is malicious content
# Verify that the value read from the file is numeric
expr "${FTL_PID}" : "[^[:digit:]]" > /dev/null && unset FTL_PID
fi
# If FTL is not running, or the PID file contains malicious stuff, substitute
# negative PID to signal this
FTL_PID=${FTL_PID:=-1}
}
# Get the file path of the pihole-FTL.port file
getFTLPortFile() {
if [ -s "${FTLCONFFILE}" ]; then
# if PORTFILE is not set in pihole-FTL.conf, use the default path
FTL_PORT_FILE="$({ grep '^PORTFILE=' "${FTLCONFFILE}" || echo "${DEFAULT_PORT_FILE}"; } | cut -d'=' -f2-)"
else
# if there is no pihole-FTL.conf, use the default path
FTL_PORT_FILE="${DEFAULT_PORT_FILE}"
fi
}
is_running() {
pgrep -xo "pihole-FTL" > /dev/null
if [ -d "/proc/${FTL_PID}" ]; then
return 0
fi
return 1
}
@@ -20,20 +67,34 @@ start() {
echo "pihole-FTL is already running"
else
# Touch files to ensure they exist (create if non-existing, preserve if existing)
mkdir -pm 0755 /run/pihole
[ ! -f /run/pihole-FTL.pid ] && install -m 644 -o pihole -g pihole /dev/null /run/pihole-FTL.pid
[ ! -f /run/pihole-FTL.port ] && install -m 644 -o pihole -g pihole /dev/null /run/pihole-FTL.port
[ ! -f /var/log/pihole-FTL.log ] && install -m 644 -o pihole -g pihole /dev/null /var/log/pihole-FTL.log
[ ! -f /var/log/pihole.log ] && install -m 644 -o pihole -g pihole /dev/null /var/log/pihole.log
mkdir -pm 0755 /run/pihole /var/log/pihole
[ ! -f "${FTL_PID_FILE}" ] && install -m 644 -o pihole -g pihole /dev/null "${FTL_PID_FILE}"
[ ! -f "${FTL_PORT_FILE}" ] && install -m 644 -o pihole -g pihole /dev/null "${FTL_PORT_FILE}"
[ ! -f /var/log/pihole/FTL.log ] && install -m 644 -o pihole -g pihole /dev/null /var/log/pihole/FTL.log
[ ! -f /var/log/pihole/pihole.log ] && install -m 640 -o pihole -g pihole /dev/null /var/log/pihole/pihole.log
[ ! -f /etc/pihole/dhcp.leases ] && install -m 644 -o pihole -g pihole /dev/null /etc/pihole/dhcp.leases
# Ensure that permissions are set so that pihole-FTL can edit all necessary files
chown pihole:pihole /run/pihole /etc/pihole /var/log/pihole.log /var/log/pihole.log /etc/pihole/dhcp.leases
chown pihole:pihole /run/pihole /etc/pihole /var/log/pihole /var/log/pihole/FTL.log /var/log/pihole/pihole.log /etc/pihole/dhcp.leases
# Ensure that permissions are set so that pihole-FTL can edit the files. We ignore errors as the file may not (yet) exist
chmod -f 0644 /etc/pihole/macvendor.db /etc/pihole/dhcp.leases /var/log/pihole-FTL.log /var/log/pihole.log
chmod -f 0644 /etc/pihole/macvendor.db /etc/pihole/dhcp.leases /var/log/pihole/FTL.log
chmod -f 0640 /var/log/pihole/pihole.log
# Chown database files to the user FTL runs as. We ignore errors as the files may not (yet) exist
chown -f pihole:pihole /etc/pihole/pihole-FTL.db /etc/pihole/gravity.db /etc/pihole/macvendor.db
# Chown database file permissions so that the pihole group (web interface) can edit the file. We ignore errors as the files may not (yet) exist
chmod -f 0664 /etc/pihole/pihole-FTL.db
# Backward compatibility for user-scripts that still expect log files in /var/log instead of /var/log/pihole/
# Should be removed with Pi-hole v6.0
if [ ! -f /var/log/pihole.log ]; then
ln -s /var/log/pihole/pihole.log /var/log/pihole.log
chown -h pihole:pihole /var/log/pihole.log
fi
if [ ! -f /var/log/pihole-FTL.log ]; then
ln -s /var/log/pihole/FTL.log /var/log/pihole-FTL.log
chown -h pihole:pihole /var/log/pihole-FTL.log
fi
if setcap CAP_NET_BIND_SERVICE,CAP_NET_RAW,CAP_NET_ADMIN,CAP_SYS_NICE,CAP_IPC_LOCK,CAP_CHOWN+eip "/usr/bin/pihole-FTL"; then
su -s /bin/sh -c "/usr/bin/pihole-FTL" pihole
else
@@ -47,7 +108,7 @@ start() {
# Stop the service
stop() {
if is_running; then
pkill -xo "pihole-FTL"
kill "${FTL_PID}"
for i in 1 2 3 4 5; do
if ! is_running; then
break
@@ -60,8 +121,7 @@ stop() {
if is_running; then
echo "Not stopped; may still be shutting down or shutdown may have failed, killing now"
pkill -xo -9 "pihole-FTL"
exit 1
kill -9 "${FTL_PID}"
else
echo "Stopped"
fi
@@ -69,7 +129,7 @@ stop() {
echo "Not running"
fi
# Cleanup
rm -f /run/pihole/FTL.sock /dev/shm/FTL-*
rm -f /run/pihole/FTL.sock /dev/shm/FTL-* "${FTL_PID_FILE}" "${FTL_PORT_FILE}"
echo
}
@@ -86,6 +146,14 @@ status() {
### main logic ###
# Get file paths
getFTLPIDFile
getFTLPortFile
# Get FTL's current PID
getFTLPID
case "$1" in
stop)
stop

View File

@@ -18,7 +18,7 @@
# early morning. Download any updates from the adlists
# Squash output to log, then splat the log to stdout on error to allow for
# standard crontab job error handling.
59 1 * * 7 root PATH="$PATH:/usr/sbin:/usr/local/bin/" pihole updateGravity >/var/log/pihole_updateGravity.log || cat /var/log/pihole_updateGravity.log
59 1 * * 7 root PATH="$PATH:/usr/sbin:/usr/local/bin/" pihole updateGravity >/var/log/pihole/pihole_updateGravity.log || cat /var/log/pihole/pihole_updateGravity.log
# Pi-hole: Flush the log daily at 00:00
# The flush script will use logrotate if available

View File

@@ -507,7 +507,7 @@
# (using /etc/hosts) then that name can be specified as the
# tftp_servername (the third option to dhcp-boot) and in that
# case dnsmasq resolves this name and returns the resultant IP
# addresses in round robin fasion. This facility can be used to
# addresses in round robin fashion. This facility can be used to
# load balance the tftp load among a set of servers.
#dhcp-boot=/var/ftpd/pxelinux.0,boothost,tftp_server_name

View File

@@ -28,12 +28,12 @@ server.modules = (
server.document-root = "/var/www/html"
server.error-handler-404 = "/pihole/index.php"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.errorlog = "/var/log/lighttpd/error-pihole.log"
server.pid-file = "/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
accesslog.filename = "/var/log/lighttpd/access.log"
accesslog.filename = "/var/log/lighttpd/access-pihole.log"
accesslog.format = "%{%s}t|%V|%r|%s|%b"
# Allow streaming response

View File

@@ -29,12 +29,12 @@ server.modules = (
server.document-root = "/var/www/html"
server.error-handler-404 = "/pihole/index.php"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.errorlog = "/var/log/lighttpd/error-pihole.log"
server.pid-file = "/run/lighttpd.pid"
server.username = "lighttpd"
server.groupname = "lighttpd"
server.port = 80
accesslog.filename = "/var/log/lighttpd/access.log"
accesslog.filename = "/var/log/lighttpd/access-pihole.log"
accesslog.format = "%{%s}t|%V|%r|%s|%b"
# Allow streaming response

File diff suppressed because it is too large Load Diff

View File

@@ -146,6 +146,7 @@ removeNoPurge() {
${SUDO} rm -f /etc/dnsmasq.d/01-pihole.conf &> /dev/null
${SUDO} rm -f /etc/dnsmasq.d/06-rfc6761.conf &> /dev/null
${SUDO} rm -rf /var/log/*pihole* &> /dev/null
${SUDO} rm -rf /var/log/pihole/*pihole* &> /dev/null
${SUDO} rm -rf /etc/pihole/ &> /dev/null
${SUDO} rm -rf /etc/.pihole/ &> /dev/null
${SUDO} rm -rf /opt/pihole/ &> /dev/null

View File

@@ -540,7 +540,7 @@ parseList() {
num_target_lines_new="$(grep -c "^" "${target}")"
# Number of new correctly added lines
num_correct_lines="$(( num_target_lines_new-num_target_lines ))"
# Upate number of lines in target file
# Update number of lines in target file
num_target_lines="$num_target_lines_new"
num_invalid="$(( num_source_lines-num_correct_lines ))"
if [[ "${num_invalid}" -eq 0 ]]; then

View File

@@ -187,12 +187,12 @@ Available commands and options:
(Logging options):
.br
on Enable the Pi-hole log at /var/log/pihole.log
on Enable the Pi-hole log at /var/log/pihole/pihole.log
.br
off Disable and flush the Pi-hole log at
/var/log/pihole.log
/var/log/pihole/pihole.log
.br
off noflush Disable the Pi-hole log at /var/log/pihole.log
off noflush Disable the Pi-hole log at /var/log/pihole/pihole.log
.br
\fB-up, updatePihole\fR [--check-only]

12
pihole
View File

@@ -254,9 +254,9 @@ Example: 'pihole logging on'
Specify whether the Pi-hole log should be used
Options:
on Enable the Pi-hole log at /var/log/pihole.log
off Disable and flush the Pi-hole log at /var/log/pihole.log
off noflush Disable the Pi-hole log at /var/log/pihole.log"
on Enable the Pi-hole log at /var/log/pihole/pihole.log
off Disable and flush the Pi-hole log at /var/log/pihole/pihole.log
off noflush Disable the Pi-hole log at /var/log/pihole/pihole.log"
exit 0
elif [[ "${1}" == "off" ]]; then
# Disable logging
@@ -382,7 +382,7 @@ tailFunc() {
# Color blocklist/blacklist/wildcard entries as red
# Color A/AAAA/DHCP strings as white
# Color everything else as gray
tail -f /var/log/pihole.log | grep --line-buffered "${1}" | sed -E \
tail -f /var/log/pihole/pihole.log | grep --line-buffered "${1}" | sed -E \
-e "s,($(date +'%b %d ')| dnsmasq\[[0-9]*\]),,g" \
-e "s,(.*(blacklisted |gravity blocked ).*),${COL_RED}&${COL_NC}," \
-e "s,.*(query\\[A|DHCP).*,${COL_NC}&${COL_NC}," \
@@ -503,7 +503,7 @@ case "${1}" in
"-c" | "chronometer" ) chronometerFunc "$@";;
"-q" | "query" ) queryFunc "$@";;
"status" ) statusFunc "$2";;
"-t" | "tail" ) tailFunc "$2";;
"tricorder" ) tricorderFunc;;
# we need to add all arguments that require sudo power to not trigger the * argument
@@ -527,6 +527,7 @@ case "${1}" in
"checkout" ) ;;
"updatechecker" ) ;;
"arpflush" ) ;;
"-t" | "tail" ) ;;
* ) helpFunc;;
esac
@@ -563,4 +564,5 @@ case "${1}" in
"checkout" ) piholeCheckoutFunc "$@";;
"updatechecker" ) updateCheckFunc "$@";;
"arpflush" ) arpFunc "$@";;
"-t" | "tail" ) tailFunc "$2";;
esac

View File

@@ -1,5 +1,5 @@
FROM centos:7
RUN yum install -y git
RUN yum install -y dialog git python3
ENV GITDIR /etc/.pihole
ENV SCRIPTDIR /opt/pihole
@@ -9,6 +9,7 @@ ADD . $GITDIR
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
ADD test/centos7.epel.override /etc/yum/pluginconf.d/fastestmirror.conf
RUN true && \
chmod +x $SCRIPTDIR/*

View File

@@ -1,18 +0,0 @@
FROM fedora:33
RUN dnf install -y git
ENV GITDIR /etc/.pihole
ENV SCRIPTDIR /opt/pihole
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
ADD . $GITDIR
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
RUN true && \
chmod +x $SCRIPTDIR/*
ENV PH_TEST true
ENV OS_CHECK_DOMAIN_NAME dev-supportedos.pi-hole.net
#sed '/# Start the installer/Q' /opt/pihole/basic-install.sh > /opt/pihole/stub_basic-install.sh && \

View File

@@ -1,17 +0,0 @@
FROM buildpack-deps:xenial-scm
ENV GITDIR /etc/.pihole
ENV SCRIPTDIR /opt/pihole
RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
ADD . $GITDIR
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
RUN true && \
chmod +x $SCRIPTDIR/*
ENV PH_TEST true
ENV OS_CHECK_DOMAIN_NAME dev-supportedos.pi-hole.net
#sed '/# Start the installer/Q' /opt/pihole/basic-install.sh > /opt/pihole/stub_basic-install.sh && \

View File

@@ -1,4 +1,4 @@
FROM buildpack-deps:stretch-scm
FROM buildpack-deps:jammy-scm
ENV GITDIR /etc/.pihole
ENV SCRIPTDIR /opt/pihole
@@ -7,6 +7,7 @@ RUN mkdir -p $GITDIR $SCRIPTDIR /etc/pihole
ADD . $GITDIR
RUN cp $GITDIR/advanced/Scripts/*.sh $GITDIR/gravity.sh $GITDIR/pihole $GITDIR/automated\ install/*.sh $SCRIPTDIR/
ENV PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$SCRIPTDIR
ENV DEBIAN_FRONTEND=noninteractive
RUN true && \
chmod +x $SCRIPTDIR/*

View File

@@ -0,0 +1,7 @@
[main]
verbose = 0
socket_timeout = 3
enabled = 1
hostfilepath = /var/cache/yum/timedhosts.txt
maxhostfileage = 1
exclude=.edu

View File

@@ -150,10 +150,10 @@ def get_directories_recursive(host, directory):
def test_installPihole_fresh_install_readableFiles(host):
'''
confirms all neccessary files are readable by pihole user
confirms all necessary files are readable by pihole user
'''
# Whiptail dialog returns Cancel for user prompt
mock_command('whiptail', {'*': ('', '0')}, host)
# dialog returns Cancel for user prompt
mock_command('dialog', {'*': ('', '0')}, host)
# mock git pull
mock_command_passthrough('git', {'pull': ('', '0')}, host)
# mock systemctl to not start lighttpd and FTL
@@ -393,8 +393,8 @@ def test_installPihole_fresh_install_readableBlockpage(host, test_webpage):
"127.0.0.1",
# "pi.hole"
]
# Whiptail dialog returns Cancel for user prompt
mock_command('whiptail', {'*': ('', '0')}, host)
# dialog returns Cancel for user prompt
mock_command('dialog', {'*': ('', '0')}, host)
# mock git pull
mock_command_passthrough('git', {'pull': ('', '0')}, host)
@@ -483,7 +483,6 @@ def test_installPihole_fresh_install_readableBlockpage(host, test_webpage):
setup_var_file += "{}={}\n".format(k, v)
setup_var_file += "INSTALL_WEB_SERVER=true\n"
setup_var_file += "INSTALL_WEB_INTERFACE=true\n"
setup_var_file += "IPV4_ADDRESS=127.0.0.1\n"
setup_var_file += "EOF\n"
host.run(setup_var_file)
installWeb = host.run('''
@@ -871,8 +870,8 @@ def test_FTL_download_aarch64_no_errors(host):
'''
confirms only aarch64 package is downloaded for FTL engine
'''
# mock whiptail answers and ensure installer dependencies
mock_command('whiptail', {'*': ('', '0')}, host)
# mock dialog answers and ensure installer dependencies
mock_command('dialog', {'*': ('', '0')}, host)
host.run('''
source /opt/pihole/basic-install.sh
package_manager_detect
@@ -905,23 +904,6 @@ def test_FTL_binary_installed_and_responsive_no_errors(host):
assert expected_stdout in installed_binary.stdout
# def test_FTL_support_files_installed(host):
# '''
# confirms FTL support files are installed
# '''
# support_files = host.run('''
# source /opt/pihole/basic-install.sh
# FTLdetect
# stat -c '%a %n' /var/log/pihole-FTL.log
# stat -c '%a %n' /run/pihole-FTL.port
# stat -c '%a %n' /run/pihole-FTL.pid
# ls -lac /run
# ''')
# assert '644 /run/pihole-FTL.port' in support_files.stdout
# assert '644 /run/pihole-FTL.pid' in support_files.stdout
# assert '644 /var/log/pihole-FTL.log' in support_files.stdout
def test_IPv6_only_link_local(host):
'''
confirms IPv6 blocking is disabled for Link-local address
@@ -1118,7 +1100,7 @@ def test_os_check_passes(host):
def test_package_manager_has_installer_deps(host):
''' Confirms OS is able to install the required packages for the installer'''
mock_command('whiptail', {'*': ('', '0')}, host)
mock_command('dialog', {'*': ('', '0')}, host)
output = host.run('''
source /opt/pihole/basic-install.sh
package_manager_detect
@@ -1131,7 +1113,7 @@ def test_package_manager_has_installer_deps(host):
def test_package_manager_has_pihole_deps(host):
''' Confirms OS is able to install the required packages for Pi-hole '''
mock_command('whiptail', {'*': ('', '0')}, host)
mock_command('dialog', {'*': ('', '0')}, host)
output = host.run('''
source /opt/pihole/basic-install.sh
package_manager_detect
@@ -1145,7 +1127,7 @@ def test_package_manager_has_pihole_deps(host):
def test_package_manager_has_web_deps(host):
''' Confirms OS is able to install the required packages for web '''
mock_command('whiptail', {'*': ('', '0')}, host)
mock_command('dialog', {'*': ('', '0')}, host)
output = host.run('''
source /opt/pihole/basic-install.sh
package_manager_detect

View File

@@ -26,8 +26,8 @@ def test_php_upgrade_user_optout_centos_eq_7(host):
confirms installer behavior when user opt-out of installing PHP7 from REMI
(php not currently installed)
'''
# Whiptail dialog returns Cancel for user prompt
mock_command('whiptail', {'*': ('', '1')}, host)
# dialog returns Cancel for user prompt
mock_command('dialog', {'*': ('', '1')}, host)
package_manager_detect = host.run('''
source /opt/pihole/basic-install.sh
package_manager_detect
@@ -45,8 +45,8 @@ def test_php_upgrade_user_optin_centos_eq_7(host):
confirms installer behavior when user opt-in to installing PHP7 from REMI
(php not currently installed)
'''
# Whiptail dialog returns Continue for user prompt
mock_command('whiptail', {'*': ('', '0')}, host)
# dialog returns Continue for user prompt
mock_command('dialog', {'*': ('', '0')}, host)
package_manager_detect = host.run('''
source /opt/pihole/basic-install.sh
package_manager_detect

View File

@@ -29,8 +29,8 @@ def test_php_upgrade_user_optout_skipped_centos_gte_8(host):
latest CentOS (should trigger on CentOS7 only)
(php not currently installed)
'''
# Whiptail dialog returns Cancel for user prompt
mock_command('whiptail', {'*': ('', '1')}, host)
# dialog dialog returns Cancel for user prompt
mock_command('dialog', {'*': ('', '1')}, host)
package_manager_detect = host.run('''
source /opt/pihole/basic-install.sh
package_manager_detect
@@ -50,8 +50,8 @@ def test_php_upgrade_user_optin_skipped_centos_gte_8(host):
latest CentOS (should trigger on CentOS7 only)
(php not currently installed)
'''
# Whiptail dialog returns Continue for user prompt
mock_command('whiptail', {'*': ('', '0')}, host)
# dialog dialog returns Continue for user prompt
mock_command('dialog', {'*': ('', '0')}, host)
package_manager_detect = host.run('''
source /opt/pihole/basic-install.sh
package_manager_detect

View File

@@ -36,7 +36,7 @@ def test_enable_epel_repository_centos(host):
expected_stdout = info_box + (' Enabling EPEL package repository '
'(https://fedoraproject.org/wiki/EPEL)')
assert expected_stdout in package_manager_detect.stdout
expected_stdout = tick_box + ' Installed epel-release'
expected_stdout = tick_box + ' Installed'
assert expected_stdout in package_manager_detect.stdout
epel_package = host.package('epel-release')
assert epel_package.is_installed
@@ -76,8 +76,8 @@ def test_php_version_lt_7_detected_upgrade_user_optout_centos(host):
default_centos_php_version = php_package.version.split('.')[0]
if int(default_centos_php_version) >= 7: # PHP7 is supported/recommended
pytest.skip("Test deprecated . Detected default PHP version >= 7")
# Whiptail dialog returns Cancel for user prompt
mock_command('whiptail', {'*': ('', '1')}, host)
# dialog returns Cancel for user prompt
mock_command('dialog', {'*': ('', '1')}, host)
package_manager_detect = host.run('''
source /opt/pihole/basic-install.sh
package_manager_detect
@@ -101,8 +101,8 @@ def test_php_version_lt_7_detected_upgrade_user_optin_centos(host):
default_centos_php_version = php_package.version.split('.')[0]
if int(default_centos_php_version) >= 7: # PHP7 is supported/recommended
pytest.skip("Test deprecated . Detected default PHP version >= 7")
# Whiptail dialog returns Continue for user prompt
mock_command('whiptail', {'*': ('', '0')}, host)
# dialog returns Continue for user prompt
mock_command('dialog', {'*': ('', '0')}, host)
package_manager_detect = host.run('''
source /opt/pihole/basic-install.sh
package_manager_detect

View File

@@ -1,8 +0,0 @@
[tox]
envlist = py38
[testenv]
whitelist_externals = docker
deps = -rrequirements.txt
commands = docker build -f _debian_9.Dockerfile -t pytest_pihole:test_container ../
pytest {posargs:-vv -n auto} ./test_any_automated_install.py ./test_any_utils.py

View File

@@ -1,8 +0,0 @@
[tox]
envlist = py38
[testenv]
whitelist_externals = docker
deps = -rrequirements.txt
commands = docker build -f _fedora_33.Dockerfile -t pytest_pihole:test_container ../
pytest {posargs:-vv -n auto} ./test_any_automated_install.py ./test_any_utils.py ./test_centos_fedora_common_support.py ./test_fedora_support.py

View File

@@ -4,5 +4,5 @@ envlist = py38
[testenv]
whitelist_externals = docker
deps = -rrequirements.txt
commands = docker build -f _ubuntu_16.Dockerfile -t pytest_pihole:test_container ../
commands = docker build -f _ubuntu_22.Dockerfile -t pytest_pihole:test_container ../
pytest {posargs:-vv -n auto} ./test_any_automated_install.py ./test_any_utils.py