Compare commits

...

2264 Commits
2.0 ... v3.0

Author SHA1 Message Date
Adam Warner
1dcc1871fb Merge pull request #1404 from pi-hole/development
3.0
2017-05-01 22:03:54 +01:00
Dan Schaper
bfc4775b34 Merge pull request #1297 from raincoats/development
Redirect to admin panel when accessing 'http://pi.hole/'
2017-04-26 12:35:19 -07:00
Adam Warner
981004606b Merge branch 'master' into development 2017-04-26 20:12:34 +01:00
Adam Warner
9d40fd1eda Merge branch 'development' Resolved conflicts
# Conflicts:
#	advanced/Scripts/piholeCheckout.sh
2017-04-26 20:12:16 +01:00
DL6ER
fbb6b56d99 Merge pull request #1397 from pi-hole/fix/ipv4ipv6error
Bugfix: Blocking page
2017-04-20 16:18:50 +02:00
DL6ER
f1f70133dc Populate $ipv4 and $ipv6 + fix small error that prevented blocking page from coming up at all. Fixes #1396 2017-04-20 13:53:27 +02:00
DL6ER
d0f55e5125 Merge pull request #1394 from pi-hole/fix/remove-temp-gravity-files
Delete the temp files created by gravity
2017-04-19 08:46:01 +02:00
Mcat12
5e308dbd51 Delete the temp files created by gravity 2017-04-18 20:35:06 -04:00
Mcat12
c3c554f4d6 Merge pull request #1391 from pi-hole/tweak/flush
Flush twice to move data out-of-sight of FTL
2017-04-17 20:10:03 -04:00
DL6ER
320c06e0a4 Flush twice to move data out-of-sight of FTL 2017-04-17 21:25:15 +02:00
DL6ER
b1484104bd Merge pull request #1379 from pi-hole/tweak/FTLinit.d
Tweaks for `FTL`'s init file
2017-04-13 12:53:37 +02:00
Mcat12
c738a9a044 Merge pull request #1381 from technicalpyro/development
Grammar Fix
2017-04-12 21:29:39 -04:00
Technicalpyro
519cb71022 Grammar Fix
]
2017-04-12 16:05:21 -04:00
DL6ER
fcd92d27f7 Don't use PID file but rather "pidof pihole-FTL" for detecting if another process is already running 2017-04-12 15:12:09 +02:00
DL6ER
3eacfa9831 Improve FTL's service script 2017-04-12 14:13:18 +02:00
Mcat12
1d64b614c7 Merge pull request #1349 from pi-hole/internal/editorconfig
Add .editorconfig
2017-04-06 18:05:56 -04:00
Dan Schaper
a832dd7f67 Update .editorconfig
Set path for JS source.
2017-04-06 14:55:21 -07:00
Mcat12
a96b4d28e1 Merge pull request #1365 from pi-hole/adlistImprovements
Adlist improvements
2017-04-06 16:15:50 -04:00
Mcat12
57e8b7f924 Merge pull request #1355 from pmo3/development
Mask password input when changing password
2017-04-03 20:23:19 -04:00
Patrick O'Brien
263eb856d5 remove vagrant from gitignore 2017-04-03 15:15:44 -04:00
DL6ER
5a4f088b24 Merge pull request #1341 from pi-hole/tweak/readme-tm
Update logo and Pi-hole™ name with a trademark symbol.
2017-04-03 17:35:58 +02:00
DL6ER
c1913bfa7d Merge pull request #1366 from pi-hole/fix/adaway-list-agent
Use correct agent when downloading adaway.org list
2017-04-03 17:32:44 +02:00
DL6ER
474881e4c7 Merge pull request #1346 from pi-hole/varChanges
Clean up previous PR
2017-04-03 17:32:02 +02:00
Flo
7e0aa822b6 Match the Pi-hole brand (#1358)
* Update README.md

* Update index.php

* Update basic-install.sh

* Update piholeCheckout.sh

* Update update.sh

* Update CONTRIBUTING.md

* Update the Pi-hole brand tip in CONTRIBUTING.md

Use a better formulation.

* Update README.md 2
2017-04-03 17:29:57 +02:00
DL6ER
940d780a4c Merge pull request #1361 from pi-hole/new/error404page
Improve Error 404 page behavior
2017-04-03 17:25:46 +02:00
DL6ER
ad9575ce18 Recognize more host names 2017-04-03 16:28:18 +02:00
Mcat12
ce86205df0 Use correct agent when downloading adaway.org list
See https://discourse.pi-hole.net/t/2278
2017-04-02 12:44:00 -04:00
Adam Warner
3cf9942465 spacing fixed 2017-03-31 23:00:56 +01:00
Adam Warner
153031482f Add delete mode to adlist command. Might be abetter way to do this 2017-03-31 22:51:10 +01:00
Adam Warner
1f74b1e2fd newline 2017-03-31 21:12:17 +01:00
Adam Warner
42393123a0 add newline to adlists.default 2017-03-31 20:15:13 +01:00
Adam Warner
af2cff5177 remove call to user list 2017-03-31 20:13:04 +01:00
Adam Warner
5435b93df2 remove spaces 2017-03-31 20:05:45 +01:00
Adam Warner
3a3dde6298 add adlist argument redirector 2017-03-31 20:03:56 +01:00
Adam Warner
b4bc90fb85 add in CustomizeAdlists function 2017-03-31 19:35:52 +01:00
Adam Warner
02040cd25d We no longer need to do this, either 2017-03-31 19:23:26 +01:00
Adam Warner
bdc6bd4135 Don't need this comment anymore 2017-03-31 19:18:28 +01:00
Adam Warner
e720de401d One file to rule them all, same functionality (made changes and want to go back to default? Delete your adlists.list) 2017-03-31 19:16:09 +01:00
Adam Warner
ce97896ffd account for new adlists.custom file 2017-03-31 19:00:04 +01:00
Adam Warner
86fa4e9ee8 trim down default adlist 2017-03-31 18:55:07 +01:00
DL6ER
f09c166350 Improve Error 404 page behavior 2017-03-28 14:02:00 +02:00
Patrick O'Brien
24868fdb2b Merge remote-tracking branch 'upstream/development' into development 2017-03-27 13:38:19 -04:00
Patrick O'Brien
a463250ecf don't hash an empty password 2017-03-27 13:37:19 -04:00
Mcat12
d38e034e92 Merge pull request #1354 from flokX/patch-4
Complete blocking page
2017-03-26 13:12:42 -04:00
Flo
6eb9192cd1 Complete site
The start <html>-tag was missing.
2017-03-25 16:11:37 +01:00
Patrick O'Brien
94f15f1b3c Merge remote-tracking branch 'upstream/development' into development 2017-03-23 18:47:50 -04:00
Patrick O'Brien
ee296f36c1 mask password input on command line 2017-03-23 18:47:30 -04:00
Dan Schaper
598a7b3cc0 Add .editorconfig
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-22 13:44:04 -07:00
Mcat12
52baf26d7d Merge pull request #1348 from pi-hole/fix/update-without-web
Source setupVars in the updater before attempting to use it
2017-03-21 18:18:03 -04:00
Mcat12
fb3e6ee35c Source setupVars before attempting to use it
Fixes #1347
2017-03-21 18:01:51 -04:00
Dan Schaper
af1d1bd9c2 One more change
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-21 05:04:58 -07:00
Dan Schaper
f32ad7699d Merge pull request #1320 from georou/development
Use Firewalld --add-service instead of port
2017-03-21 04:49:59 -07:00
Dan Schaper
79294bb6ca Merge pull request #1332 from pi-hole/varChanges
replace instances of "/etc/.pihole" with ${PI_HOLE_LOCAL_REPO}
2017-03-21 04:49:10 -07:00
Jacob Salmela
1cd4710718 replace logo with TM logo 2017-03-19 15:41:16 -05:00
Jacob Salmela
48c19ade8e add trademarks to Pi-hole name in signifigant places 2017-03-19 15:36:22 -05:00
Adam Warner
0acf70f836 Merge pull request #1340 from AnthonyGiorgio/development
Formatting cleanup.
2017-03-19 18:40:50 +00:00
Anthony Giorgio
fd584dd03b Formatting cleanup.
Convert backticks to quotes to fix error message.
Make Pi-hole capitalization consistent.
 Make Pi-hole capitalization consistent.
2017-03-18 20:47:13 -04:00
Dan Schaper
2740c68a63 Merge pull request #1335 from pi-hole/tweak/debug_templog
Debugging tweaks for temporary logfiles
2017-03-16 23:35:15 -07:00
Mcat12
62a242a894 Merge pull request #1334 from pi-hole/tweak/interface_detect
Let `ip` determine which links are candidates.
2017-03-16 21:36:13 -04:00
DL6ER
8b060e9699 Merge pull request #1333 from Wandmalfarbe/development
Fixed minor spelling mistakes in README.md
2017-03-16 18:02:40 +01:00
Dan Schaper
b1f769b671 Output cleaning, IP stack check headers.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-15 23:50:29 -07:00
Dan Schaper
77378da70a Cat out temp files to final log.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-15 23:43:41 -07:00
Dan Schaper
160030b75f Quiet systemctl output to just the current daemon status.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-15 23:27:18 -07:00
Dan Schaper
0a0c3a2fb7 Copy working temp to final location.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-15 23:20:12 -07:00
Dan Schaper
e9f1ca338f Create temp files for working storage, log to working storage temps.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-15 22:49:47 -07:00
Dan Schaper
073c7e54df Merge pull request #1331 from pi-hole/RemovePasswordFromDebugLogBecauseSomePeopleFeelItUnderminesSecurity-TheyProbablyHaveAPoint
add check on file_parse to not include WEBPASSWORD= in the debug log
2017-03-15 22:08:48 -07:00
Dan Schaper
2834f2ccc2 Let ip determine which links are candidates.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-15 22:05:48 -07:00
georou
6c56665403 updated travis for new firewalld add service 2017-03-16 10:26:51 +11:00
georou
0d794226ab Removed unsupported POSIX brace expansion 2017-03-16 09:29:33 +11:00
Wandmalfarbe
ab2af11775 Fixed minor spelling mistakes in README.md 2017-03-15 20:58:41 +01:00
Adam Warner
83662c9e50 additional requested changes 2017-03-15 19:50:22 +00:00
Adam Warner
6c1d52199f Merge branch 'master' of https://github.com/jftuga/pi-hole into jftuga-master 2017-03-15 19:47:31 +00:00
Adam Warner
cfaf1ac67c add check on file_parse to not include WEBPASSWORD= in the debug log 2017-03-15 18:59:41 +00:00
Mcat12
a6caa0e680 Merge pull request #1327 from pi-hole/fix/pihole-help-text
Fix help text bug
2017-03-14 15:00:25 -04:00
Mcat12
c4b43f92ce Fix help text bug
Fixes #1325
2017-03-14 13:19:43 -04:00
DL6ER
3d1ccd9625 Merge pull request #1312 from pi-hole/pihole-backports
Pi-hole Core v2.13.2
2017-03-14 11:32:34 +01:00
John Taylor
76bd53ef1f replace instances of "/etc/.pihole" with ${PI_HOLE_LOCAL_REPO} 2017-03-13 20:24:04 -04:00
Mcat12
8fa209f0df Merge pull request #1322 from pi-hole/FixWildCardBlacklisting
Only remove from wildcard list if domain is being added to whitelist …
2017-03-13 17:52:28 -04:00
Mcat12
88835512dd Merge pull request #1322 from pi-hole/FixWildCardBlacklisting
Only remove from wildcard list if domain is being added to whitelist …
2017-03-13 17:50:18 -04:00
Adam Warner
6b862dd9e9 Only remove from wildcard list if domain is being added to whitelist or blacklist 2017-03-13 20:38:34 +00:00
DL6ER
be0b76c954 Merge pull request #1319 from pi-hole/fix/gravitypath
Use absolute path for pihole command in gravity.sh
2017-03-13 21:16:31 +01:00
georou
e45559da20 Use Firewalld services instead of ports 2017-03-14 01:13:23 +11:00
DL6ER
d7b5870ba6 Use absolute path for pihole command in gravity.sh. Fixes #1318 2017-03-12 23:15:23 +01:00
Dan Schaper
df18c7cd59 Merge pull request #1313 from pi-hole/new/piholecheckout
Checkout adjustments
2017-03-11 22:54:57 +01:00
Dan Schaper
2e74219ff9 Merge pull request #1313 from pi-hole/new/piholecheckout
Checkout adjustments
2017-03-11 13:01:11 -08:00
Dan Schaper
b0ae954f1e Only update when update flag is set to "true"
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-11 12:37:36 -08:00
Dan Schaper
a2404f104a Just some style and linting. And a cd in fetch_checkout_pull_branch
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-11 12:21:15 -08:00
DL6ER
38547ced7a Can only diff once upstream branch is tracked 2017-03-11 16:55:37 +01:00
DL6ER
9a9d9007cd Add missing "== true" 2017-03-11 16:49:47 +01:00
DL6ER
bd2d81f691 source setupVars.conf to see if INSTALL_WEB is true or not 2017-03-11 16:46:52 +01:00
DL6ER
1b9e7fbf2e Test if branch is locally available is not reliable because of possible ambiguities 2017-03-11 16:40:10 +01:00
DL6ER
d4a49d192f Correct variable name 2017-03-11 16:38:28 +01:00
DL6ER
8cb66544d2 Remove "\ " 2017-03-11 16:36:54 +01:00
DL6ER
140ac192aa The web repo might actually be missing and this is n error (not installed because the user didn't want it) 2017-03-11 16:30:58 +01:00
DL6ER
b961b13d60 Small bugfix 2017-03-11 16:27:00 +01:00
DL6ER
febdb4a190 Use git diff to determine if code has changed (no need to run the installer if it hasn't changed at all) 2017-03-11 16:24:13 +01:00
DL6ER
1d60b62e7a Testing alternative way of fetching/checking out of a single branch 2017-03-11 16:11:23 +01:00
Dan Schaper
41e1e4cb68 Rearrange pull logic, some optimization.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-10 11:25:35 -08:00
Dan Schaper
d5b88e0df8 Get the right name for the options.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-10 11:07:58 -08:00
Dan Schaper
20fd61468d Require branch to check out
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-10 11:04:37 -08:00
Dan Schaper
0a0d25dff4 Script runs in subshell, no need to cd back to pwd.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-10 10:57:46 -08:00
DL6ER
38ba079baa Merge pull request #1307 from pi-hole/fix/versionwithoutwebinterface
Don't try to obtain version of web interface it it is not installed
2017-03-10 14:33:12 +01:00
Dan Schaper
33f7979359 Merge pull request #1293 from pi-hole/fix/version
Account for hash in versioning
2017-03-10 14:32:52 +01:00
Dan Schaper
8460b2544b Merge pull request #1295 from pi-hole/tweak/pullapprove
Require 4 approvals instead of five for merging into master
2017-03-10 14:31:53 +01:00
Dan Schaper
bc514ea955 Merge pull request #1296 from pi-hole/fix/debugVersion
Debug version detection improvements
2017-03-10 14:30:50 +01:00
DL6ER
6f8893d950 Merge pull request #1301 from pi-hole/fix/removewildcard
Remove wildcard entry when adding the very same domain either the white- or blacklist
2017-03-10 14:29:38 +01:00
DL6ER
de6aaf18ab Merge pull request #1302 from pi-hole/fix/nowildcardlistfile
Check for existence of wildcard blocking list (query adlists)
2017-03-10 14:29:13 +01:00
DL6ER
0fe64cf5cc Merge pull request #1300 from pi-hole/fix/deletehostrecord
Bugfix for when deleting host-record
2017-03-10 14:28:52 +01:00
DL6ER
9a95531fb9 Merge pull request #1310 from pi-hole/new/piholecheckout
Pi-hole checkout feature
2017-03-10 14:24:15 +01:00
Mcat12
9df6a8dd06 Merge pull request #1311 from pi-hole/tweak/ascii-berry
add ascii berry to beginning of installer
2017-03-09 13:40:57 -05:00
raincoats
1590a179fa Change 302 redirect to 301
Change "302 Found" response to "301 Moved Permanently", as "302 Found" is meant for temporary redirects.

Was asked to do so in this comment: https://github.com/pi-hole/pi-hole/pull/1297#issuecomment-284335421
2017-03-09 17:38:56 +11:00
Jacob Salmela
5e16487ef6 add ascii berry to beginning of installer 2017-03-08 21:14:21 -06:00
DL6ER
2b3afbfef8 Merge pull request #1310 from pi-hole/new/piholecheckout
Pi-hole checkout feature
2017-03-09 00:43:35 +01:00
Dan Schaper
c3c7dcc9f5 Merge remote-tracking branch 'origin/new/piholecheckout' into new/piholecheckout 2017-03-08 15:32:14 -08:00
Dan Schaper
273728b481 One more argument to shift.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-08 15:32:06 -08:00
DL6ER
81a1057cac Fix something Dan has overlooked 2017-03-09 00:30:36 +01:00
DL6ER
fd310c6445 Back to how we had it before, because --unshallow does not work at all 2017-03-09 00:28:02 +01:00
Dan Schaper
a9b52518bf Shift numbers for argument identifiers, functions are called after shift
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-08 14:29:51 -08:00
Dan Schaper
87da40068c Always exited with value 1, now exits with proper value.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-08 14:18:08 -08:00
Dan Schaper
b8f1eadb7f Shift off checkout from being passed to script from pihole
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-08 14:17:56 -08:00
Dan Schaper
b522d8eaf6 Source and reuse existing variables, centralize code.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-08 13:41:11 -08:00
Dan Schaper
89ff99322d Don't need to remember pwd inside a function, calling function doesn't change directories.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-08 13:30:08 -08:00
Dan Schaper
56e17d1010 Source functions and variables from basic-install.sh
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-08 13:28:24 -08:00
DL6ER
708067e875 Merge pull request #1309 from pi-hole/new/FTLChronometer
Remove duplicated line
2017-03-08 13:27:11 +01:00
DL6ER
d2ab0694b7 Add "master" shortcut 2017-03-08 13:18:34 +01:00
DL6ER
8a14a63d5d Pi-hole checkout feature 2017-03-08 13:16:40 +01:00
DL6ER
8235b18854 Remove duplicated line 2017-03-08 12:09:34 +01:00
DL6ER
e0e9ebbe74 Merge pull request #1307 from pi-hole/fix/versionwithoutwebinterface
Don't try to obtain version of web interface it it is not installed
2017-03-07 23:54:32 +01:00
DL6ER
6e6259975e Merge pull request #1308 from pi-hole/new/FTLChronometer
Let Chronometer query all data from FTL directly
2017-03-07 19:41:23 +01:00
DL6ER
10bc8414b9 Move FTL querying before clearing the terminal to avoid flashing on Pi B+ 2017-03-07 18:10:05 +01:00
DL6ER
4e25e0dc5c Add missing } to JSON output 2017-03-07 17:57:57 +01:00
DL6ER
b1a9793d94 Let Chronometer query all data from FTL (no need for having the API). Fixes #1305 2017-03-07 17:54:11 +01:00
DL6ER
6dea00668e Don't try to obtain version of web interface it it is not installed. Fixes #1303 2017-03-07 13:08:01 +01:00
DL6ER
ae9182c92e Merge pull request #1301 from pi-hole/fix/removewildcard
Remove wildcard entry when adding the very same domain either the white- or blacklist
2017-03-06 23:53:06 +01:00
DL6ER
af17355fe7 Merge pull request #1302 from pi-hole/fix/nowildcardlistfile
Check for existence of wildcard blocking list (query adlists)
2017-03-06 17:03:34 +01:00
DL6ER
dce3e50a00 Check for existence of wildcard blocking list before trying to acces it 2017-03-06 16:44:56 +01:00
DL6ER
cf31561267 Remove wildcard entry when adding the very same domain either the white- or blacklist 2017-03-06 16:25:35 +01:00
DL6ER
a97f0b1298 Merge pull request #1300 from pi-hole/fix/deletehostrecord
Bugfix for when deleting host-record
2017-03-06 16:16:42 +01:00
Dan Schaper
d1e0f3ae18 Merge pull request #1294 from pi-hole/tweak/debugDNS
Tweak DNS debugging
2017-03-06 05:50:37 -08:00
DL6ER
47a6786e8f Use proper test syntax 2017-03-06 14:02:56 +01:00
DL6ER
a69fcbb91e Bugfix for when deleting host-record 2017-03-06 13:44:13 +01:00
Dan Schaper
8e2b51b391 Merge pull request #1296 from pi-hole/fix/debugVersion
Debug version detection improvements
2017-03-05 07:13:41 -08:00
Dan Schaper
560af43204 Merge pull request #1293 from pi-hole/fix/version
Account for hash in versioning
2017-03-05 07:10:18 -08:00
DL6ER
9c119f919e Merge pull request #1298 from pi-hole/new/teleporter
Add CLI Teleporter feature
2017-03-05 15:05:07 +01:00
DL6ER
baefec86f2 Add CLI teleporter feature 2017-03-05 14:08:44 +01:00
raincoats
eb763d2dc2 Redirect to admin panel when accessing 'http://pi.hole/'
If someone tries to access 'http://pi.hole/', it will take them to the "Website blocked" page. Very confusing if you don't know to go to 'http://pi.hole/admin/'. This just redirects them to the admin panel.
2017-03-05 16:58:21 +11:00
Dan Schaper
512c650441 Shellchecking.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-04 19:07:55 -08:00
Dan Schaper
dc44fc9e27 Version check amalgamation and removal of && || logic.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-04 17:54:38 -08:00
Dan Schaper
05640f9a6b Merge pull request #1295 from pi-hole/tweak/pullapprove
Require 4 approvals instead of five for merging into master
2017-03-04 15:17:25 -08:00
Dan Schaper
6f2fb57c08 Protocol specific records checks.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-04 15:16:33 -08:00
Dan Schaper
2547cc4c8d Only run IPv6 if enabled, split out Chaos TXT checks.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-04 15:06:34 -08:00
DL6ER
112ddb3c77 Require 4 approvals instead of five for merging into master 2017-03-04 22:57:37 +01:00
DL6ER
9f4ef66f41 Add IPv6 resolver test 2017-03-04 22:38:52 +01:00
DL6ER
086f0790fc Add Google's IPv6 address for potential IPv6 resolver tests 2017-03-04 22:31:18 +01:00
Dan Schaper
709b44f736 IPv4 DNS tests
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-04 12:16:43 -08:00
Dan Schaper
6cd4ff6d68 Organize functions and function calls.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-04 12:16:32 -08:00
Dan Schaper
abd3e828de Optimize normalOutput
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-04 07:46:00 -08:00
DL6ER
b85af50d14 Generate only the information that is actually asked for 2017-03-04 14:08:11 +01:00
Dan Schaper
0e8fd49669 Function...
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-03 23:30:57 -08:00
Dan Schaper
945e22874e Collapse duplicate functions, and take out argument loops.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-03 23:12:28 -08:00
Dan Schaper
77ab47a984 Awk for perl
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-03 22:34:55 -08:00
Dan Schaper
ed8088f203 Functions for Core/Web version and hash. And only check first argument in each section.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-03 22:10:32 -08:00
Dan Schaper
8831b22fc8 Prototype function for getting version of local repo
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-03 21:36:38 -08:00
Dan Schaper
0341bd1758 Optimize code, undoc flag for current hash.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-03 20:32:26 -08:00
Dan Schaper
9bb4a5fb25 Factor out variables from display.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-03 20:16:53 -08:00
Dan Schaper
ebfffea5dc Always show something, even if it's just the short hash of the latest commit.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-03 20:04:55 -08:00
Dan Schaper
81939ab265 Get short hash of local and remote
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-03 19:14:30 -08:00
DL6ER
f2fe84c9d3 Merge pull request #1292 from pi-hole/master
Merge patches back into devel
2017-03-03 23:45:29 +01:00
DL6ER
051f463350 Merge pull request #1291 from pi-hole/fix/defaultlisteningbehavior
Fix default listening behavior of dnsmasq
2017-03-03 23:33:44 +01:00
DL6ER
f626406685 Revert #1273 2017-03-03 23:14:12 +01:00
DL6ER
dd971b6ee5 Default behavior is old behavir (listen on gravity interface (e.g. eth0), permit all origins) 2017-03-03 22:58:41 +01:00
Dan Schaper
8776b822db Merge pull request #1287 from pi-hole/fix/update_fail
Exit script immediately if we can't update package cache.
2017-03-03 12:20:29 -08:00
DL6ER
fc76b1a6a3 Merge pull request #1244 from pi-hole/new/FTL-binary
FTL
2017-03-03 13:41:27 +01:00
DL6ER
9183200b6f Merge pull request #1286 from pi-hole/tweak/dpkg_lock
Test for dpkg lock before using apt-get
2017-03-03 13:39:40 +01:00
DL6ER
f1b8abf503 Merge pull request #1146 from pi-hole/tweak/chronometer_recentlyblocked
[FTL] Show most recently blocked domain in chronometer
2017-03-03 12:20:43 +01:00
DL6ER
9502356980 Move test_dpkg_lock to initial UPDATE_PKG_CACHE. There was unpredictable interference with debconf-apt-progress 2017-03-03 11:55:15 +01:00
DL6ER
a535ca9db4 Some tweaks to the new dpkg lock detector 2017-03-03 11:55:13 +01:00
DL6ER
2c762899de Add loop to wait if package manager is blocked externally 2017-03-03 11:55:10 +01:00
Dan Schaper
24fd23493d Exit script immediately if we can't update package cache.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-03-02 15:54:58 -08:00
Dan Schaper
6f1ed28d0a Merge pull request #1274 from pi-hole/development
Pi-hole Core v2.13
2017-03-02 14:34:43 -08:00
DL6ER
66b7d04b82 Merge branch 'development' into new/FTL-binary 2017-03-01 12:42:48 +01:00
DL6ER
044afa838c Merge pull request #1284 from pi-hole/new/dnsmasqListeningBehavior
Setup interface listening behavior of dnsmasq
2017-03-01 12:20:59 +01:00
DL6ER
7ba47f504c Add special "except-interface" line in case of listening on all interfaces 2017-03-01 12:15:04 +01:00
DL6ER
0be1717ff4 Fix config error 2017-03-01 11:46:48 +01:00
DL6ER
189a4e0078 Add option to skip restarting of dnsmasq 2017-03-01 11:26:06 +01:00
DL6ER
3adf8785d8 Move "all" down in help text to not suggest that it is the default 2017-03-01 11:07:05 +01:00
DL6ER
b74862bfc5 Actually apply new setting by restarting dnsmasq 2017-03-01 11:02:08 +01:00
DL6ER
01273124ea Change to -i, interface 2017-03-01 10:59:55 +01:00
DL6ER
721ada7e16 Fix typo 2017-03-01 10:52:21 +01:00
DL6ER
bd9dc91396 Add response for users manually setting this up via CLI 2017-03-01 10:50:13 +01:00
DL6ER
de6c43a8d3 Setup interface listening behavior of dnsmasq 2017-03-01 10:46:20 +01:00
Dan Schaper
f6fc6a5e56 Merge pull request #1281 from pi-hole/tweak/web_debug
Back end changes for Web based debug calls.
2017-02-27 12:21:33 -08:00
Dan Schaper
ca24f7c143 Merge pull request #1273 from pi-hole/new/no_fixed_interface
Don't save `interface=` line to `dnsmasq`s config file
2017-02-27 11:50:28 -08:00
Dan Schaper
17b0db6515 Fix for calling -w without -a.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-27 11:40:20 -08:00
Dan Schaper
83b0600863 Carriage return or newline based webcalls.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-27 11:03:57 -08:00
Dan Schaper
38961fb31b Help text clarification and addition of the automated debuggin flag.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-27 10:49:25 -08:00
Dan Schaper
6c130b7960 Vebiage and highligh the token, also :::
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-27 10:27:11 -08:00
Dan Schaper
7244d44a1d Notify user that log is being uploaded.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-27 10:02:00 -08:00
Dan Schaper
9b060aab34 Debug auto mode engaged
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-26 18:22:06 -08:00
Dan Schaper
ba5bbf3523 Modify pihole for -d -a arguments. 2017-02-26 15:36:53 -08:00
Mcat12
66d7ebd6c3 Merge pull request #1276 from pi-hole/fix/INSTALL_WEB
Bugfix: Delete INSTALL_WEB line before adding new one
2017-02-25 10:50:09 -05:00
DL6ER
ae24f1255f Bugfix: Delete INSTALL_WEB line before adding new one 2017-02-25 11:29:12 +01:00
DL6ER
ec7e75a6e3 Don't save interface= line to dnsmasqs config file 2017-02-24 16:02:24 +01:00
DL6ER
aee106ae69 Merge pull request #1272 from flokX/patch-1
Update old install command to new
2017-02-24 13:32:20 +01:00
Flo
2a881a90ac Update old install command to new 2017-02-24 11:29:19 +01:00
DL6ER
ce6c465942 Merge pull request #1266 from pi-hole/new/host-record
Add host-record option
2017-02-23 17:32:10 +01:00
Jacob Salmela
3748a0ed33 Merge pull request #1267 from pi-hole/tweak/license
update license to EUPL on core files
2017-02-22 15:51:54 -06:00
Jacob Salmela
7a1a2dec67 update license to EUPL on core files 2017-02-22 11:55:20 -06:00
DL6ER
7ed1bbad49 Add host-record option 2017-02-22 14:43:07 +01:00
DL6ER
078cc7660e Improved updater logic 2017-02-22 11:00:45 +01:00
DL6ER
af2893d2ce Updater implementation for FTL 2017-02-22 10:43:13 +01:00
Jacob Salmela
0fe5efba76 Merge pull request #1265 from ProtoFoo/ProtoFoo-redirect
Redirect pi.hole to pi.hole/admin/
2017-02-21 15:49:19 -06:00
ProtoFoo
fb6631d317 Removed a line that did nothing. 2017-02-21 22:22:30 +01:00
ProtoFoo
cd0b8927c5 Removed a line that did nothing. 2017-02-21 22:22:03 +01:00
ProtoFoo
3fab34687c Redirect pi.hole to pi.hole/admin/ 2017-02-21 20:38:09 +01:00
ProtoFoo
b2d78edae9 Redirect pi.hole to pi.hole/admin/ 2017-02-21 20:36:59 +01:00
ProtoFoo
412cacac49 Merge pull request #1 from pi-hole/development
Development
2017-02-21 19:10:47 +01:00
Dan Schaper
dcb9797f35 Tests changed to reflect uname calls.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-21 09:24:00 -08:00
Dan Schaper
4dcee5cd84 arch is not portable.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-21 09:14:49 -08:00
DL6ER
a64211123f Some debug additions 2017-02-21 16:46:54 +01:00
DL6ER
1645677c3a Cosmetics 2017-02-21 16:42:52 +01:00
DL6ER
4f85ace525 Force pihole user to use sh-shell (instead of nologin) 2017-02-21 14:46:53 +01:00
DL6ER
e8fde702a0 Also chown the other files 2017-02-21 11:52:07 +01:00
DL6ER
e339f3852c Change ownership of FTL log to pihole user 2017-02-21 11:50:08 +01:00
DL6ER
032f94afc0 Don't suppress su's output 2017-02-21 11:46:31 +01:00
DL6ER
e9b50442fa Remove test_FTL_support_files_installed as we create them using the init.d script as of now 2017-02-21 11:25:18 +01:00
DL6ER
77b3764481 Remove resundant code (FTL will later be enabled by enable_service) 2017-02-21 11:23:01 +01:00
DL6ER
90ccbef431 pihole-FTL init.d script 2017-02-21 11:18:47 +01:00
Dan Schaper
02ea9b9abc Check file path and permissions in one go.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 18:15:40 -08:00
Dan Schaper
4cd598ae10 Check support files installed and permissions.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 18:12:51 -08:00
Dan Schaper
8eeb8ad779 Check binary installed and functional.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 17:15:04 -08:00
Dan Schaper
2ffb103acb Move binary to final home.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 15:44:33 -08:00
Dan Schaper
a0c17368ed cd to directory to sha1sum
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 15:27:24 -08:00
Dan Schaper
d76e761d0b Merge remote-tracking branch 'origin/new/FTL-binary' into new/FTL-binary
# Conflicts:
#	automated install/basic-install.sh
2017-02-20 15:22:55 -08:00
Dan Schaper
6023984703 Silence sha check
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 15:13:54 -08:00
Dan Schaper
cde7b53de3 Check sha1 of transferred file.
Sha1sum file in temp directory.

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 15:13:26 -08:00
Dan Schaper
b36a44a954 Check sha1 of transferred file. 2017-02-20 14:44:34 -08:00
Adam Warner
fcc3d5450d Merge pull request #1263 from pi-hole/idea
accidentally the idea file
2017-02-20 22:16:50 +00:00
Dan Schaper
057cecb3e0 Replace ignored file. 2017-02-20 14:12:45 -08:00
Adam Warner
86c6e0e826 accidentally the idea file 2017-02-20 21:36:27 +00:00
Adam Warner
5c223b5f4e Merge pull request #1262 from pi-hole/gitAttributes
linux style line endings enforced
2017-02-20 21:28:16 +00:00
Dan Schaper
883aa30aca Revert reversion. 2017-02-20 13:25:28 -08:00
Adam Warner
763b51fe22 linux style line endings enforced 2017-02-20 21:12:04 +00:00
Dan Schaper
dd1aa9163c Fix IDEA ignoring pullapprove.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 12:01:38 -08:00
Dan Schaper
e087797edc Test for format of tag version.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 11:49:20 -08:00
Dan Schaper
5e6f8489a9 Find 404 errors and relay message.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 11:45:58 -08:00
Dan Schaper
48351fed79 Remove trailing newline from curl'd variable.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 11:33:55 -08:00
Dan Schaper
875a5d309d Check downloaded file for binary or text.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 11:28:36 -08:00
Dan Schaper
70e876ee13 Download tests.
Make sure we download a binary and not just get the GitHub page.

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 11:11:16 -08:00
Dan Schaper
7a269e757e Debian buildpack image for docker (Need curl for testing, using scm version to add curl and git.)
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 09:24:47 -08:00
Dan Schaper
87edbeaf58 Factor out downloader from detector function.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 08:40:17 -08:00
Dan Schaper
339f95b00c Change from uname -m to straight arch
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 08:13:46 -08:00
Dan Schaper
e480c761cd Merge remote-tracking branch 'origin/new/FTL-binary' into new/FTL-binary
# Conflicts:
#	test/test_automated_install.py
2017-02-20 07:25:34 -08:00
Dan Schaper
26c628f8a5 Mock ldd command response.
Test aarch64 detection

Arm v6/v7 little endian.

x86_64 native

Test aarch64 detection

Unknown platform detection.

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 07:22:25 -08:00
Dan Schaper
59d6907d71 Test aarch64 detection
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 06:34:57 -08:00
Dan Schaper
b4450a3918 Mock ldd command response.
Test aarch64 detection

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 06:34:54 -08:00
Dan Schaper
7032be6049 Template for FTL engine type tests.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-02-20 06:34:40 -08:00
DL6ER
70a6a79b8c Detect library differently 2017-02-20 13:40:32 +01:00
DL6ER
f24f77c5bd Detect if architecture is *aarch* + use hf binary only if ARMv7+ is detected 2017-02-20 11:14:23 +01:00
DL6ER
66ae79f9b8 Merge pull request #1259 from friimaind/patch-1
Added my personal project Pi-hole Droid to the Projects's list
2017-02-20 10:49:00 +01:00
DL6ER
378338c684 Install pihole-FTL to /usr/bin instead of /usr/local/bin 2017-02-20 10:42:07 +01:00
Massimiliano Monaro
7da076df18 Added my personal project Pi-hole Droid to the Projects's list
Pi-hole Droid is an unofficial client that connects to your Pi-hole to show charts and statistics.
2017-02-20 10:04:14 +01:00
Adam Warner
45fbadbb26 Merge pull request #1257 from pi-hole/revert-1241-feature/redirect-pi-hole-to-admin
Revert "redirect pi.hole to pi.hole/admin"
2017-02-20 02:10:13 +00:00
Adam Warner
a7def771c8 Revert "redirect pi.hole to pi.hole/admin" 2017-02-19 20:12:32 +00:00
Adam Warner
543f1243e2 Merge pull request #1241 from pi-hole/feature/redirect-pi-hole-to-admin
redirect pi.hole to pi.hole/admin
2017-02-18 20:59:03 +00:00
Adam Warner
a001443ad7 Merge pull request #1252 from pi-hole/tweak/debug_IP
Debug IP stack fixes
2017-02-18 19:33:54 +00:00
Adam Warner
36166c129a Merge pull request #1253 from Skittels0/even_more_dns
Adds DNS.WATCH to default dns servers
2017-02-18 19:12:32 +00:00
Skittels
4e7a485e23 Update basic-install.sh 2017-02-18 13:42:13 +01:00
Skittels
9e5795bf55 Added DNS.WATCH to default dns servers 2017-02-18 13:03:40 +01:00
Dan Schaper
053b38e0bd Set up for IP matching in detection. 2017-02-16 19:45:44 -08:00
Dan Schaper
2aa3a109a0 Ping gateways and Internet. 2017-02-16 18:38:05 -08:00
Dan Schaper
472708376d Split out IP checks. 2017-02-16 18:30:15 -08:00
Dan Schaper
cfed3d59e9 Begin fixing IP detection functions. 2017-02-16 16:49:14 -08:00
Adam Warner
95fd9d4863 Merge pull request #1248 from IanOliver/patch-3
Update malwaredomains.com and mahakala.is URLs to HTTPS
2017-02-16 08:07:18 +00:00
Ian Oliver
c89bca6ec8 Update malwaredomains.com and mahakala.is URLs to HTTPS 2017-02-15 21:31:42 +00:00
Dan Schaper
ee262c30c2 Merge pull request #1245 from pi-hole/readme/magic-mirror-project
add magic mirror project link to readme
2017-02-14 19:21:27 -08:00
Jacob Salmela
6b8240d4de add magic mirror project link to readme 2017-02-14 20:25:11 -06:00
DL6ER
4035c933df Moved echo to else block 2017-02-13 16:50:48 +01:00
DL6ER
abd44dd284 Add 32bit message 2017-02-13 16:33:22 +01:00
DL6ER
95d7fe76b5 Make comments more pretty 2017-02-13 14:50:25 +01:00
DL6ER
a052f397fe Be more verbose during install 2017-02-13 14:47:06 +01:00
DL6ER
09d6e73b0a Don't print error message on 32bit platforms 2017-02-13 14:42:11 +01:00
DL6ER
7fb6b71d52 Fix install path 2017-02-13 14:40:31 +01:00
DL6ER
07e37d7fc3 Proper error handling 2017-02-13 11:33:09 +01:00
DL6ER
fbe3dc0dcd Have to get latest tag via GitHub API for downloading the binaries 2017-02-13 11:27:52 +01:00
DL6ER
6018c0c2fc Add FTLinstall() 2017-02-13 11:07:29 +01:00
DL6ER
52a2f166fd Add FTLdownload() subroutine 2017-02-13 10:29:27 +01:00
Jacob Salmela
26cb6a1929 redirect pi.hole to pi.hole/admin 2017-02-11 20:46:27 -06:00
Jacob Salmela
7c63bbfe44 Merge pull request #1233 from ProtoFoo/patch-1
Add manual edit warnings to lighttpd.conf.* files
2017-02-11 08:10:35 -06:00
Adam Warner
109026222e Merge pull request #1237 from IanOliver/patch-1
Spelling corrections in adlists.default comments
2017-02-10 23:43:11 +00:00
DL6ER
af8e629df4 Merge pull request #1239 from pi-hole/tweak/debug48h
Change description as we want to save the debug log for 48h instead of only 24h
2017-02-10 20:46:12 +01:00
DL6ER
f7f1daa69f Merge pull request #1238 from pi-hole/tweak/debugLogdnsmasq
Scan whole dnsmasq.d directory for cofigurations files
2017-02-10 20:46:01 +01:00
DL6ER
01f980d49c Change description as we want to save the debug log for 48h instead of only 24h 2017-02-10 17:45:20 +01:00
DL6ER
99fab7e52a Scan whole dnsmasq.d directory for cofigurations files 2017-02-10 17:42:37 +01:00
Ian Oliver
692292b1d4 Spelling corrections in comments 2017-02-10 11:22:14 +00:00
Mcat12
cd608d9d5b Merge pull request #1182 from pi-hole/adminPageAsOption
Give user the choice to install web admin or not
2017-02-09 20:20:08 -05:00
Mcat12
ba67144e34 Merge branch 'development' into adminPageAsOption 2017-02-09 16:27:07 -05:00
ProtoFoo
162d9d7d57 Add manual edit warning
Added text block from 01-pihole.conf to warn user that manual changes to lighttpd config will be overwritten.
Slight cosmetic adjustments (tabs -> spaces).
2017-02-09 17:00:52 +01:00
ProtoFoo
357f5a2cfd Add manual edit warning
Added text block from dns config file to warn user that manual changes to lighttpd config will be overwritten.
Slight cosmetic adjustments (tabs -> spaces).
2017-02-09 16:46:55 +01:00
Mcat12
d1ca32b0a5 Merge pull request #1231 from pi-hole/fix/iproute_deps
Update basic-install.sh
2017-02-09 10:12:05 -05:00
Dan Schaper
34f326c559 Update basic-install.sh 2017-02-08 14:13:49 -08:00
DL6ER
7785dac50e Merge pull request #1228 from r0ckarong/development
Justify and improve help texts, add missing wildcard description
2017-02-08 14:05:53 +01:00
Markus Napp
01f643e5eb fixup! Fix spacing for wildcard help in list script 2017-02-08 12:56:28 +01:00
Markus Napp
8037f3e332 Fix spacing for wildcard help in list script 2017-02-08 12:55:14 +01:00
Markus Napp
19e30b829a Add wildcard description to help text, improve other help texts 2017-02-08 12:42:14 +01:00
Markus Napp
afe5176e01 Justify help output to match main script 2017-02-08 12:41:53 +01:00
Mcat12
a48317883d Fix indentation 2017-02-07 18:14:41 -05:00
DL6ER
5ac92ae4eb Merge pull request #1222 from pi-hole/fix/installer
Remove double echos
2017-02-07 09:21:22 +01:00
DL6ER
8fb6ba19a1 Remove double echos 2017-02-06 12:06:38 +01:00
Dan Schaper
314f7e7889 Merge pull request #1183 from pi-hole/tweak/update_cache_trap
Trap for package cache update failures.
2017-02-05 16:04:19 -08:00
Promofaux
4fcf8fd23f Merge in development branch - resolve conflict in update.sh 2017-02-05 19:39:02 +00:00
Promofaux
10a30344e5 No need to source setupVars, as basic-install.sh is sourced, which sources setupVars itself. Sourception. 2017-02-05 19:29:56 +00:00
Promofaux
1206dda347 testing putting runGravity at a different part of the script 2017-02-05 19:23:04 +00:00
Promofaux
b764d17c64 comment 2017-02-05 19:18:27 +00:00
Promofaux
ba0abdb88d wrap update logic in admin_installed bool check 2017-02-05 19:12:09 +00:00
Promofaux
1428b58dde source setupVars and only check admin repo if it is enabled 2017-02-05 19:07:04 +00:00
Promofaux
e57425df5f 0.0.0.0 instead of pi-holes IP address for redirect purposes 2017-02-04 15:25:11 +00:00
Jacob Salmela
5e7dfaf220 Merge pull request #1214 from pi-hole/tweak/readme-updates
Update README with latest version screenshots and remove Raspberry references
2017-02-03 15:43:31 -06:00
Jacob Salmela
ad5c011b6c Add new screenshots from latest version 2017-02-03 15:33:44 -06:00
Jacob Salmela
fcdd33b585 Update and remove old FAQ links 2017-02-03 15:21:42 -06:00
Jacob Salmela
f767f066ad Update outdated text and describe features from recent versions 2017-02-03 15:18:28 -06:00
Dan Schaper
b8d0e5e5a1 Merge pull request #1210 from pi-hole/fix/dhcpcd_int
Remove comment leaders from DHCPCD interface
2017-02-02 12:48:29 -08:00
Dan Schaper
26ad23f01e Remove comment leaders from DHCPCD interface
We need to set the interface in DHCPCD, comments were inadvertently added a while ago.
2017-02-01 18:33:42 -08:00
DL6ER
21d771e171 Merge pull request #1207 from r0ckarong/master
Fix output for wildcards in gravity.sh
2017-02-01 20:13:47 +01:00
Markus Napp
66616eb0f0 Rename missing plurals check 2017-02-01 19:55:33 +01:00
Mcat12
18eb8a2159 Merge pull request #1185 from pi-hole/cleanup/git_functions
Move git functions to one script
2017-01-31 19:05:53 -05:00
Markus Napp
72a1fc3f64 Fix output for wildcards in gravity.sh 2017-02-01 00:07:47 +01:00
Dan Schaper
96eea32a9d Merge pull request #1205 from pi-hole/master
Sync master and development
2017-01-31 12:35:08 -08:00
DL6ER
3239c7023a Merge pull request #1170 from pi-hole/new/DHCPstaticleases
Backend changes for static DHCP leases
2017-01-31 21:07:36 +01:00
Dan Schaper
5333895a9f Merge pull request #1201 from pi-hole/development
[RELEASE] Pi-hole Core 2.12.1
2017-01-31 11:37:05 -08:00
DL6ER
da05491992 Merge pull request #1192 from pi-hole/fix/regex
Remove misplaced start of string expression
2017-01-30 21:25:45 +01:00
DL6ER
b9f5d79f3d Merge pull request #1203 from pi-hole/master
Sync development and master
2017-01-30 20:46:12 +01:00
DL6ER
fddc515ee1 Merge pull request #1195 from pi-hole/fix/logrotate
Change how user and group are stored in the logrotate config file
2017-01-29 21:35:31 +01:00
DL6ER
3d4516dc95 Improve regex 2017-01-29 20:27:20 +01:00
DL6ER
509c864cc3 Merge branch 'development' into fix/regex 2017-01-29 20:27:04 +01:00
DL6ER
8b22f435ad Change how user and group are stored in the logrotate config file (necessary on Ubuntu 16.04.1) 2017-01-29 19:58:53 +01:00
Adam Warner
55d39595e1 Merge pull request #1194 from pi-hole/fix/chronometer-summary
Fix chronometer interpreting summaryRaw
2017-01-29 18:35:51 +00:00
Mcat12
f8944177a0 Fix chronometer interpreting summaryRaw 2017-01-29 13:32:48 -05:00
Mcat12
3060c4d887 Merge pull request #1184 from pi-hole/fix/updater-debugging
Stay in repo directory until we error check
2017-01-29 12:02:55 -05:00
Mcat12
13ee5dc728 Merge pull request #1190 from pi-hole/tweak/gravity_showwildcards
Show number of wildcard blocked domains in gravity's summary
2017-01-29 11:57:47 -05:00
DL6ER
06873fe69e Remove misplaced start of string expression. Fixes #1191 2017-01-29 13:54:39 +01:00
DL6ER
a8ac212ee6 Show number of wildcard blocked domains in gravity's summary 2017-01-29 13:46:27 +01:00
Dan Schaper
3d9d13222b Use constants for leading paths. 2017-01-28 17:42:55 -08:00
Dan Schaper
745adabb05 Path to source basic-install.sh 2017-01-28 17:38:14 -08:00
Dan Schaper
3861b57dc6 Start moving reused utility functions to one script. 2017-01-28 17:32:42 -08:00
Dan Schaper
99a4a80017 Spelling 2017-01-28 17:08:38 -08:00
Mcat12
033ba26041 Stay in repo directory until we error check 2017-01-28 20:00:02 -05:00
Dan Schaper
439999cb62 Last rule check. 2017-01-28 16:47:53 -08:00
Dan Schaper
7291aa07ca Silenc cache updater. 2017-01-28 16:46:37 -08:00
Dan Schaper
9181e2652e Merge remote-tracking branch 'dschaper/tweak/update_cache_trap' into tweak/update_cache_trap 2017-01-28 16:43:28 -08:00
Dan Schaper
409f76aa34 Error check. 2017-01-28 16:37:31 -08:00
Dan Schaper
54e2c6181a Populate all required variables with a distro check. 2017-01-28 16:37:28 -08:00
Dan Schaper
a281d87315 Eval variable. (Not a fan.) 2017-01-28 16:37:26 -08:00
Dan Schaper
2a5587f236 Test for failure. 2017-01-28 16:37:17 -08:00
Dan Schaper
2d18b2d784 Start test templates. 2017-01-28 16:37:04 -08:00
Dan Schaper
585f842206 Error check. 2017-01-28 16:33:40 -08:00
Mcat12
8cb4304c13 Merge pull request #1158 from pi-hole/development
[RELEASE] Pi-hole Core 2.12
2017-01-28 19:19:18 -05:00
Dan Schaper
737819b56e Populate all required variables with a distro check. 2017-01-28 16:08:43 -08:00
Dan Schaper
a7130e6530 Eval variable. (Not a fan.) 2017-01-28 16:03:48 -08:00
Dan Schaper
f9cfed5aff Test for failure. 2017-01-28 15:56:43 -08:00
Dan Schaper
f65a9dbfd2 Test for failure. 2017-01-28 15:49:28 -08:00
Dan Schaper
96c59fada4 Spelling check. 2017-01-28 15:47:27 -08:00
Dan Schaper
153a9d8ac7 Start test templates. 2017-01-28 15:45:25 -08:00
Dan Schaper
297d4eec57 Start test templates. 2017-01-28 15:44:31 -08:00
Promofaux
c31b4383e6 add back in code to stop dnsmasq and lighttpd during install. 2017-01-28 21:37:21 +00:00
DL6ER
0375a3caa3 Merge pull request #1178 from pi-hole/fix/validation
Use perl instead of grep for domain validation
2017-01-28 22:14:02 +01:00
DL6ER
08cddba200 There should be no echo here 2017-01-28 21:49:31 +01:00
DL6ER
1bf43b0425 Improved regex: Remove all leading points from domain (.....xyz => .xyz). Return not only a part, but fill validated domain 2017-01-28 21:48:19 +01:00
Promofaux
35828f9cea Source setupvars earlier in update/repair process 2017-01-28 19:05:55 +00:00
Promofaux
90af12fdb8 Remember the [@] 2017-01-28 18:41:37 +00:00
Dan Schaper
dc63182647 Merge pull request #1180 from pi-hole/fix/web_install_css
Install blockingpage.css on new installation.
2017-01-28 10:40:31 -08:00
Promofaux
5fede23cf7 trying another tactic 2017-01-28 18:39:15 +00:00
Promofaux
bc4762f270 no need to stop dnsmasq/lighttpt if we're going to reload them at the end anyway. 2017-01-28 16:27:02 +00:00
Promofaux
01429d59bd more web checks 2017-01-28 15:45:14 +00:00
Promofaux
731d15f9b5 don't display web admin info in final dialog if it's not selected 2017-01-28 15:43:33 +00:00
Promofaux
f0bd7fae5c ) not } 2017-01-28 15:32:07 +00:00
Promofaux
f8322cc2d4 use the web install flag. Could be optimised 2017-01-28 15:25:02 +00:00
Promofaux
dfdb9e393b move repo clone to function 2017-01-28 15:15:42 +00:00
Promofaux
bd07d7f32e Only install web dependenices if flag is true 2017-01-28 15:11:39 +00:00
Promofaux
f588c6f93c introduce web toggle flag 2017-01-28 14:40:47 +00:00
Promofaux
d9ec3d2c22 spelling 2017-01-28 14:28:18 +00:00
Promofaux
e2b87759d8 split out web dependencies 2017-01-28 14:27:08 +00:00
Dan Schaper
52e0aa11af Have install create directory 2017-01-27 22:06:48 -08:00
Dan Schaper
1421c31179 install index and blockingpage assets. 2017-01-27 21:41:17 -08:00
Dan Schaper
d5587e32d0 Populated directory test 2017-01-27 21:41:14 -08:00
Dan Schaper
28eb348707 Individual Page tests 2017-01-27 21:41:05 -08:00
Dan Schaper
91bcc18e6a Make full path to directory for pihole web page. 2017-01-27 21:40:52 -08:00
Dan Schaper
5b43f13935 Fresh install web page directory tests 2017-01-27 20:24:20 -08:00
DL6ER
85b3fef08d Use perl instead of grep? 2017-01-28 00:39:10 +01:00
DL6ER
cc7c48237c Merge pull request #1177 from pi-hole/fix/validation
Fix CLI domain validation
2017-01-28 00:22:34 +01:00
DL6ER
15037fa888 Typo 2017-01-28 00:17:32 +01:00
DL6ER
d595fef18f Fix regex 2017-01-28 00:15:06 +01:00
Dan Schaper
be5fa22b6f Merge pull request #1174 from pi-hole/tweak/logrotate_insecure_directory
Improve logrotate support
2017-01-27 11:18:06 -08:00
Dan Schaper
a5c6bbeee7 Merge pull request #1173 from pi-hole/tweak/domainfilter
Improve CLI domain filter
2017-01-27 11:16:18 -08:00
DL6ER
094a645e60 Merge pull request #1176 from pi-hole/tweak/remove-pihole-s
remove pihole -s flag
2017-01-27 17:20:12 +01:00
Jacob Salmela
51acdfa633 remove pihole -s flag 2017-01-27 10:12:51 -06:00
DL6ER
2c16a75ef1 Use stat to get owner of /var/log 2017-01-27 14:28:59 +01:00
DL6ER
6fd7e0311c Install customized version of logrotate script 2017-01-27 14:16:24 +01:00
DL6ER
1bcf2dd0fc Tweak CLI domain filter 2017-01-27 00:45:57 +01:00
DL6ER
9a3cf949cf Merge pull request #1149 from pi-hole/tweak/firewall_warning
Add warning to firewall configuration
2017-01-27 00:03:41 +01:00
Dan Schaper
cec214f900 User decline to install shouldn't be an error return. 2017-01-26 14:38:02 -08:00
Jacob Salmela
dad669d68b Merge pull request #1172 from pi-hole/tweak/readme-youtube
Put new video into README
2017-01-25 21:30:12 -06:00
jacobsalmela
561f40d97e replace youtube links with new explainer video 2017-01-25 20:19:06 -06:00
DL6ER
dad18dc5de Changed keywords 2017-01-25 10:35:45 +01:00
DL6ER
5c95c4074b Remove static leases from DHCP static leases file 2017-01-25 10:35:03 +01:00
DL6ER
4301b9a12a Add static DHCP leases to new file 2017-01-25 10:33:25 +01:00
Dan Schaper
0bbe0aed83 Last of the IPTables tests, new test rig is operating. 2017-01-24 20:09:10 -08:00
Dan Schaper
b16f797317 firewall-cmd --state returns 0 on 'running' non 0 on 'not running',
so check retval and not text returned.

FirewallD conversion to multicall

IPTables test
2017-01-24 19:57:31 -08:00
Dan Schaper
4bb71ae046 IPtables tests.
mock commands for iptables check.

Test setting IPTables ruleset.

Test setting IPTables ruleset.

Test for already configured IPTables rules.

Test for addition of iptables rules.

Can only mock so deep in the commands.
2017-01-24 13:42:51 -08:00
Dan Schaper
679b098aa7 No firewall enabled test. 2017-01-24 12:04:45 -08:00
Dan Schaper
e0e88fdb52 Start IPTables test, get baseline for commands in the container. See
what we have to mock to start testing.
2017-01-24 11:58:22 -08:00
Dan Schaper
8bba3a257c Merge branch 'tweak/firewall_tests' into tweak/firewall_warning 2017-01-24 11:51:41 -08:00
Dan Schaper
8529c1287f Full test suite for firewallD configuration. 2017-01-24 11:03:37 -08:00
Dan Schaper
9c7f7756b4 Revert second test. 2017-01-23 19:03:00 -08:00
Dan Schaper
f1cfb16bf9 Test firewallD enabled and disabled. 2017-01-23 18:59:48 -08:00
Dan Schaper
95796e1978 Only expect text output, not the leader ::: 2017-01-23 18:52:05 -08:00
Dan Schaper
968b981ecb Try mocking whiptail 2017-01-23 18:47:52 -08:00
Dan Schaper
3aeb378b56 Fix moved incorrect blocks. 2017-01-23 18:21:50 -08:00
Dan Schaper
28bafe7427 Rename test for firewallD, running state. 2017-01-23 18:14:40 -08:00
Dan Schaper
1317b67657 Attempt at modifying firewall rules for testing. 2017-01-23 18:13:18 -08:00
Dan Schaper
3f462c771f Merge pull request #1166 from pi-hole/tweak/momentOfClarity
Transparency in `sudo` refire.
2017-01-23 16:41:21 -08:00
Dan Schaper
31aa42c35e Transparency in sudo refire. 2017-01-23 14:28:56 -08:00
Dan Schaper
f7a17248b7 Warn with whiptail if firewall-cmd is running. 2017-01-23 14:19:51 -08:00
DL6ER
b60e6310bf Merge pull request #1164 from pi-hole/tweak/slience_rm
Silence rm warning if no DHCP server is used
2017-01-23 16:25:50 +01:00
DL6ER
6a89c6bf3b Silence rm warning if no DHCP server is used 2017-01-23 15:06:36 +01:00
Dan Schaper
b3b7aae7d7 Merge pull request #1160 from pi-hole/logSizeToDebugLog
Log size to debug log
2017-01-22 13:13:33 -08:00
Promofaux
fe8c365d17 codacy never lies 2017-01-22 20:53:30 +00:00
Promofaux
9acc3aac01 pipe du -h output to awk to ensure we only get the file size, and not the filename too. Yeah that's right Dom, pipe. 2017-01-22 20:44:07 +00:00
Promofaux
1ad23a065e switch out wc -l with grep -c ^ 2017-01-22 20:38:46 +00:00
Promofaux
de102fde5c Add line count and size check for pihole.log 2017-01-22 20:38:09 +00:00
Adam Warner
77554fbd13 Merge pull request #1145 from pi-hole/cleanup/more_shellcheck
Cleanup/more shellcheck
2017-01-22 13:31:09 +00:00
Mcat12
6863bff7c5 Merge pull request #1156 from pi-hole/tweak/whiptail_dns
DNS whiptail from radio to menu
2017-01-21 19:54:16 -05:00
Dan Schaper
eaf6938c35 DNS whiptail from radio to menu 2017-01-21 16:14:05 -08:00
Mcat12
34ad2157dd Merge pull request #1155 from pi-hole/tweak/root_first
Move distribution check to function.
2017-01-21 17:59:30 -05:00
Dan Schaper
0635309f23 Move distribution check to function.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-21 12:34:47 -08:00
DL6ER
2661ef53a2 Merge pull request #1152 from jwiebalk/patch-2
Correct path for automated installer
2017-01-20 10:35:31 +01:00
John Wiebalk
eddca8f127 Correct path for automated installer
basic-install.sh is in the `automated install` dir instead of `automated_installer`
2017-01-19 21:40:52 -05:00
Dan Schaper
cef0211c00 Merge pull request #1151 from pi-hole/fix/CIDR
Include CIDR notation for IPv4 non-natural blocks.
2017-01-19 14:02:28 -08:00
Dan Schaper
86052540d9 Add back CIDR notation for non-natural blocks. Includes multi-address
configs.

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-19 13:50:42 -08:00
DL6ER
930cb15e2c Merge pull request #1150 from pi-hole/tweak/DHCPdomain
Be able to disable the DHCP domain name
2017-01-18 14:23:30 +01:00
DL6ER
8bb9dd460b Be able to disable the DHCP domain name 2017-01-18 12:22:03 +01:00
Mcat12
8a3c78ca0a Merge pull request #1148 from pi-hole/fix/installer_array
Fedora dependency installer fix
2017-01-17 17:44:21 -05:00
Dan Schaper
62a5e36afd Remove firewall configuration from update portion of script.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-17 14:40:30 -08:00
Dan Schaper
00b28f0aed IPTables Whiptal option to install.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-17 14:19:19 -08:00
Dan Schaper
7c94aa9f07 Merge branches 'development' and 'fix/installer_array' of https://github.com/pi-hole/pi-hole into fix/installer_array 2017-01-17 13:05:51 -08:00
Dan Schaper
ec8c40b69b Fix array declaration for Fedora package management.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-17 13:00:17 -08:00
Mcat12
2981f3cbd1 Merge pull request #1147 from pi-hole/uncommentLine391
Uncomment gravity.sh line 391
2017-01-17 15:26:43 -05:00
Promofaux
c2e1819098 This should not have been commented out. It's stopping any changes we make to the default lists getting out. 2017-01-17 19:48:20 +00:00
Mcat12
58f3ff69d8 Align comment with referenced line 2017-01-16 18:51:13 -05:00
DL6ER
72d8d10e64 Show most recently blocked domain in chronometer (using FTL). Fixes #717 2017-01-16 22:39:58 +01:00
Mcat12
63d02df0bc Merge pull request #1130 from pi-hole/new/logrotate
Use logrotate for pihole.log
2017-01-16 15:11:11 -05:00
Mcat12
f579fd3895 Merge pull request #1143 from pi-hole/fix/ignore_down
Only ignore DOWN interfaces, `tun` interfaces are UNKNOWN.
2017-01-15 19:19:07 -05:00
Dan Schaper
34df34ba27 Actually rm the Pi-hole scripts.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-14 20:16:27 -08:00
Dan Schaper
2689b37c35 Combine multiple calls to interface length code.
&& ||

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-14 19:40:29 -08:00
Dan Schaper
9b6427144f || && conversion.
Fedora deps array.

Use full name of `source`

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-14 19:39:37 -08:00
Dan Schaper
9212eea8bd Only ignore DOWN interfaces, tun interfaces are UNKNOWN.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-14 15:25:42 -08:00
Mcat12
6de5d6dd0a Merge pull request #1113 from trick77/multi-if-fix
Bugfix if multiple interfaces are present
2017-01-13 18:28:23 -05:00
DL6ER
08f08fea61 Merge pull request #1135 from pi-hole/new/multipleDNSservers
Allow multiple DNS servers
2017-01-13 23:48:38 +01:00
DL6ER
1ed2a8637f Removed debug echo's 2017-01-13 23:39:57 +01:00
Mcat12
d8bcbdadd6 Merge pull request #1133 from pi-hole/fix/gravity_collapse
Make sure to read all lines of adlists file
2017-01-13 17:11:33 -05:00
Mcat12
d196c13f2c Merge pull request #1131 from pi-hole/chronometerJsonUnixTools
No excuse for chronometer not to match API
2017-01-13 16:34:51 -05:00
Dan Schaper
7ba251d3a6 Merge pull request #1136 from pi-hole/fix/installer_iptables
Check for existance of iptables command
2017-01-13 11:04:14 -08:00
DL6ER
0b72c639fb Check for existance of iptables command. Fixes #1125 2017-01-13 18:13:10 +01:00
DL6ER
bd1c5a42e8 Allow multiple DNS servers 2017-01-13 17:49:55 +01:00
DL6ER
845d8c0e63 Ensure LC_NUMERIC=C is set when evaluating floating point number (non-English systems might expect "," as decimal separator 2017-01-13 12:59:49 +01:00
DL6ER
bcb8a52418 Added user to cron file 2017-01-13 11:57:07 +01:00
DL6ER
322cb2387b Also accept the last line of the adlist file if there is no newline at the end 2017-01-13 11:02:51 +01:00
DL6ER
bfe56942f9 Merge pull request #1128 from pi-hole/DNSSEC
Add DNSSEC support to Pi-hole core
2017-01-13 10:54:25 +01:00
Promofaux
b4c32e47c6 Missed one! 2017-01-12 22:07:07 +00:00
Promofaux
248d8680f7 actual codacy complaints 2017-01-12 21:51:10 +00:00
Promofaux
1bda965a7c Codacy complaints 2017-01-12 21:50:16 +00:00
Promofaux
2ee305769d Replace all calculations with values read directly web admin API. Parse JSON using native unix tools, no additional requirements needed. 2017-01-12 21:23:58 +00:00
DL6ER
3a8a936575 Corrected path 2017-01-12 21:01:52 +01:00
DL6ER
6b6fbc4709 Remove --force on @reboot 2017-01-12 20:41:25 +01:00
DL6ER
3fd2ffd466 Add logrotate for pihole.log 2017-01-12 20:39:25 +01:00
DL6ER
b56ca2b834 Add DNSSEC support to Pi-hole core 2017-01-12 16:02:41 +01:00
DL6ER
10f77df8bb Merge pull request #1065 from pi-hole/wildcardblacklisting
Add blacklisting wildcard support
2017-01-12 00:13:32 +01:00
Mcat12
df7671d393 Add a few comments and remove debug output 2017-01-11 18:01:27 -05:00
DL6ER
a263936243 Merge branch 'development' into wildcardblacklisting 2017-01-11 18:25:51 +01:00
DL6ER
11924d425b Hide whitelist option if we detected that the domain as blocked due to wildcard blocking 2017-01-11 17:07:08 +01:00
DL6ER
0bd5a5f382 Merge pull request #1114 from pi-hole/tweak/debugger_show_branch_revision
Debugger: show branch + revision of repositories
2017-01-11 10:59:32 +01:00
Mcat12
757eb64be3 Merge pull request #1118 from pi-hole/cleanup/shellcheck
Cleanup/shellcheck
2017-01-10 19:29:49 -05:00
DL6ER
6b3aea933d Add info that whitelisting blocked pages does not work 2017-01-09 15:02:31 +01:00
DL6ER
2935275227 Merge branch 'development' into wildcardblacklisting 2017-01-09 14:53:01 +01:00
Dan Schaper
cbe045b946 Merge remote-tracking branch 'origin/cleanup/shellcheck' into cleanup/shellcheck
# Conflicts:
#	automated install/basic-install.sh
2017-01-09 00:17:15 -08:00
Dan Schaper
c58a95ca2e setDNS whiptail direct, not in array.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-09 00:10:14 -08:00
Dan Schaper
80a3bce6d5 PI_HOLE_INSTALL_DIR global variable
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

`"${pw}"`

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

Absolute path for pihole

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

Debian PKG_INSTALL as array

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-09 00:10:06 -08:00
Dan Schaper
6f0289de49 Vestigial variable that was never populated.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-09 00:09:52 -08:00
Dan Schaper
0966d7660e Take out some whiptail subshells that aren't needed.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

Take out some whiptail subshells that aren't needed.

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-09 00:09:45 -08:00
Dan Schaper
27e90cc4e6 Repetitive ip route get was resetting counts.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-09 00:09:39 -08:00
Dan Schaper
b785213c3a Shellcheck for Test for $? -eq 0
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

Shellcheck for Test for $? -eq 0

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-09 00:09:32 -08:00
Dan Schaper
642a73508d Merge pull request #1119 from pi-hole/tweak/dry_installer
Repetitive `ip route get` was resetting counts.
2017-01-08 20:43:40 -08:00
Dan Schaper
8f7b023769 Shellcheck for Test for $? -eq 0
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-08 18:48:54 -08:00
Dan Schaper
a122fb2900 Shellcheck for Test for $? -eq 0
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-08 18:46:15 -08:00
Dan Schaper
a299a2cc5f Repetitive ip route get was resetting counts.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-08 18:04:24 -08:00
Adam Warner
47196d86ad Merge pull request #1115 from pi-hole/development
[RELEASE] Pi-hole Core 2.11.2
2017-01-08 23:22:26 +00:00
Mcat12
a713cf7952 Merge pull request #1116 from pi-hole/fix/multi_interface
Fix/multi interface
2017-01-08 17:57:29 -05:00
Dan Schaper
6cd7b8ff5e Merge branch 'master' into fix/multi_interface 2017-01-08 14:54:46 -08:00
Dan Schaper
f8264f8277 Merge branch 'development' of github.com:pi-hole/pi-hole into development 2017-01-08 14:49:29 -08:00
Dan Schaper
0e4d5e9103 Bash splitting and globin
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-08 14:49:08 -08:00
trick77
f599bcfef9 Bugfix if multiple interfaces are present 2017-01-08 13:56:08 +01:00
DL6ER
74a4e62cc9 Codacy fix 2017-01-08 11:26:56 +01:00
DL6ER
63a414a544 Align outputs 2017-01-08 11:21:50 +01:00
DL6ER
7d1f5091a7 Fixed small typo 2017-01-08 11:21:10 +01:00
DL6ER
3b54cab3bc Show branches and revisions (incl. possible dirty state) in debug log 2017-01-08 11:17:25 +01:00
trick77
52d06d906e Bugfix if multiple interfaces are present 2017-01-08 10:14:40 +01:00
DL6ER
d9e949b27c Merge pull request #1096 from pi-hole/fix/updater
Fix updater failing on non-English systems
2017-01-06 23:36:42 +01:00
DL6ER
b65fe9d64f Merge pull request #1099 from pi-hole/fix/webpageshtypo
Fixed typo in webpage.sh
2017-01-05 21:57:00 +01:00
DL6ER
168397e90d Fixed typo in webpage.sh 2017-01-05 21:45:06 +01:00
DL6ER
e3c1fcd2c6 NEW LOGIC FOR THE UPDATER
Compare local and remote hashes. Update is available if current remote hash is different from current local hash since we assume that local should never be newer than remote for user
2017-01-05 13:10:19 +01:00
Dan Schaper
a2bc86fbcb Merge pull request #1085 from pi-hole/development
[RELEASE] Pi-hole Core 2.11.1
2017-01-04 12:30:29 -08:00
Dan Schaper
26c6446252 Merge branch 'master' into development 2017-01-04 12:29:42 -08:00
Dan Schaper
e5e44db5ac Merge branches 'development' and 'master' of github.com:pi-hole/pi-hole into development 2017-01-04 12:26:34 -08:00
DL6ER
d4f833c739 Merge pull request #1090 from pi-hole/fix/dead-led-link
replace dead link to another LED blink project page
2017-01-04 16:19:32 +01:00
Jacob Salmela
806f44abe6 replace dead link to another LED blink project page 2017-01-04 09:01:03 -06:00
Mcat12
900bdc5ee2 Merge pull request #1083 from pi-hole/fix/DHCP
Improvements to DHCP settings
2017-01-03 17:06:17 -05:00
DL6ER
200995bf29 Make IPv6 features of Pi-hole DHCP server switchable 2017-01-03 14:24:33 +01:00
DL6ER
3a90c1c192 Source setupVars.conf before trying to access variables 2017-01-03 13:34:01 +01:00
Dan Schaper
cc68155dfa Merge remote-tracking branch 'origin/master' 2017-01-02 14:12:30 -08:00
Mcat12
b8545eb1df Merge pull request #1074 from pi-hole/development
[RELEASE] Pi-hole Core 2.11
2017-01-02 16:36:55 -05:00
Mcat12
76531da340 Merge pull request #1067 from pi-hole/fix/firewall_redux
Fix/firewall redux
2017-01-02 11:36:38 -05:00
Adam Warner
12bec1df68 Merge pull request #1048 from pi-hole/tweak/simplify_webpage.sh
Major simplification of webpage.sh + extend DHCP to IPv6
2017-01-02 14:28:26 +00:00
DL6ER
2b778695b1 Implement querying ad lists support for wildcards (what hell of a bash experience) 2017-01-02 14:27:13 +01:00
DL6ER
ad61852804 Test against empty string 2017-01-02 11:10:38 +01:00
DL6ER
dbd8aee4ee Add 'local' domain if not set in setupVers.conf 2017-01-02 11:08:54 +01:00
DL6ER
677694b01a Set 24h lease time if settings was empty before 2017-01-02 11:05:40 +01:00
DL6ER
85f0241c0d Reprocess DHCP settings after update 2017-01-02 10:50:59 +01:00
Dan Schaper
ade2185a9f Merge pull request #1073 from pi-hole/tweak/quidsup
Comment out QuidsUp
2017-01-01 15:35:55 -08:00
Dan Schaper
0d27005dda Comment out QuidsUp
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-01 15:31:17 -08:00
Dan Schaper
8ee2bdec4d Plain grep, escape the special characters.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-01 14:38:10 -08:00
Dan Schaper
de6ce276d0 Merge branch 'development' of github.com:pi-hole/pi-hole into fix/firewall_redux 2017-01-01 14:13:32 -08:00
Dan Schaper
fbea81dcd7 Merge pull request #1068 from pi-hole/fix/anti_glob
Misc tweaks to the installer script. Defensive git cloning, and ability to source the installer script.
2017-01-01 14:10:55 -08:00
Dan Schaper
502c349b8b Merge branches 'development' and 'fix/firewall_redux' of github.com:pi-hole/pi-hole into fix/firewall_redux 2017-01-01 13:47:56 -08:00
Adam Warner
5fb0aa70de Merge pull request #1008 from pi-hole/feature/track_pre-installed_packages
Feature/track pre installed packages
2017-01-01 20:29:02 +00:00
Dan Schaper
7750e1344c DRY displayFinalMessage
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-01 07:10:14 -08:00
Dan Schaper
8be37130e9 Move first check to main(), basic-install.sh can now be sourced.
Set `PH_TEST=true` then `source basic-install.sh`. Careful for `set -e`.

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-01 06:45:03 -08:00
Dan Schaper
fa055481a7 Shellcheck screen size
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-01 06:32:49 -08:00
Dan Schaper
d080e5d7a8 Merge branch 'fix/anti_glob' of github.com:pi-hole/pi-hole into fix/anti_glob 2017-01-01 00:18:37 -08:00
Dan Schaper
ad07655630 Defensive git cloning
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-01 00:14:12 -08:00
Dan Schaper
7cceb8615a make_repo more defensive.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-01 00:13:51 -08:00
Dan Schaper
ab9c8f4859 make_repo more defensive.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2017-01-01 00:00:48 -08:00
Dan Schaper
ffb8a74111 Defensive is_repo
`is_repo` defended

Document return codes for `is_repo()`

`is_repo` tested for 128,1,0 return values.
2017-01-01 00:00:20 -08:00
Dan Schaper
45587194e5 Regex fun
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-31 21:33:05 -08:00
Dan Schaper
ccbf391913 More intelligence in iptables rulesets. Account for Policy ACCEPT, with
default rule DROP or REJECT as last rule.

Regex the conditions to make sure we are getting the right conditions.

Reframe the logic to simplify the chains and rules

Reframe the logic to simplify the chains and rules

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-31 21:16:22 -08:00
DL6ER
ebf0db4bbf Typo fixed 2016-12-31 17:17:46 +00:00
Mcat12
7765efa6c4 Merge pull request #1063 from pi-hole/fix/chmod_scripts
All scripts set executable
2016-12-31 12:01:10 -05:00
DL6ER
02d4b6794c Merge pull request #1066 from dgnthr/patch-1
Fixed a typo in the installation script
2016-12-31 17:30:56 +01:00
Dominik G
836b717346 Fixed a typo in the installation script 2016-12-31 17:25:48 +01:00
DL6ER
9ac265980f Add .conf to filename 2016-12-31 13:41:19 +00:00
DL6ER
40798da6b1 Add blacklisting wildcard support 2016-12-31 12:49:04 +00:00
Dan Schaper
fc596e41d4 All scripts set executable 2016-12-30 18:35:16 -08:00
Mcat12
1f9b0f7cef Merge pull request #1061 from pi-hole/fix/blockpage-whitelist-path
Adjust blocking page paths from admin restructure
2016-12-30 15:43:39 -05:00
Mcat12
7bcc15e416 Adjust blocking page paths from admin restructure 2016-12-30 15:36:53 -05:00
DL6ER
1a3bdbaabf Merge pull request #1057 from pi-hole/new/whitelistonblockingpage
Allow whitelisting from blocking page
2016-12-30 21:07:34 +01:00
Mcat12
5e35fdbc52 Save blocking page CSS to pihole directory instead of admin 2016-12-30 14:42:15 -05:00
Mcat12
ab2c486f25 Fix password Enter handling
Also remove extranious form information, since JS handles that
2016-12-30 14:13:15 -05:00
Mcat12
7fd7430d38 Use pi.hole when getting js and css
If a user is able to get to this page, they must be using Pi-hole
2016-12-30 13:43:29 -05:00
Mcat12
089b98430f Fix formatting 2016-12-30 12:59:05 -05:00
DL6ER
5c7fc05a32 Enable DHCP logging by default 2016-12-30 16:31:57 +00:00
Mcat12
ced0d3c2c0 Merge pull request #1055 from pi-hole/fix/firewall_check
Restructure firewall detection and application.
2016-12-30 11:23:30 -05:00
Mcat12
1afc5d351d Merge pull request #1058 from pi-hole/cleanup/remove_swap
Delete swapfile generator, haven't used this in a long time.
2016-12-30 11:12:28 -05:00
DL6ER
09bbc81470 Add notice that the user might have to flush his DNS cache 2016-12-30 12:27:33 +00:00
Dan Schaper
f7274addcd Delete swapfile generator, haven't used this in a long time.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-30 04:08:32 -08:00
DL6ER
09bfa2ef77 Add whitelisting on blocking page feature 2016-12-30 12:03:45 +00:00
Dan Schaper
a48518d234 Update test rig for new firewalld
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-29 16:11:13 -08:00
Dan Schaper
a4a9879643 Restructure firewall detection and application.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-29 15:57:29 -08:00
Dan Schaper
d1ccd7a460 Merge pull request #1052 from pi-hole/fix/missing_modules
Detect missing kernel modules
2016-12-29 14:51:35 -08:00
DL6ER
9181a4a1d8 Apply dhcp lease time also for IPv6 2016-12-29 14:26:23 +00:00
DL6ER
3268e1611a Backend accept and apply dhcp lease time 2016-12-29 14:19:44 +00:00
Dan Schaper
ea9ec384c6 Disambiguate nested ifs.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-29 01:35:52 -08:00
Dan Schaper
bbb958b7ed Detect RPF breaking kernel updates.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-29 01:34:49 -08:00
DL6ER
cf724176dc Do stateful DHCPv6 and SLAAC 2016-12-28 20:02:48 +00:00
DL6ER
18d1c98f08 Merge pull request #1051 from pi-hole/fix/status
Test if DNS service is listening on local port 53 when reporting status
2016-12-28 20:47:37 +01:00
DL6ER
d0cd39a25f Added space behind :53 to only match port 53 2016-12-28 20:32:56 +01:00
DL6ER
03d4fcd17d Don't actually have to reapply DHCP settings since we are going to save it in a different file we don't replace by a template 2016-12-28 16:32:24 +00:00
DL6ER
02d658be65 Look for DHCP / DNS server settings which would have to be reapplied after updating (since we overwrite 01-pihole.conf) 2016-12-28 16:31:55 +00:00
DL6ER
1e627c7e8f Make webpage.sh fully library style 2016-12-28 16:25:14 +00:00
DL6ER
9170488b0a Test if DNS service is listening on local port 53 2016-12-28 15:58:48 +00:00
Dan Schaper
b02730a5ad Merge branches 'development' and 'feature/track_pre-installed_packages' of github.com:pi-hole/pi-hole into feature/track_pre-installed_packages
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

# Conflicts:
#	automated install/basic-install.sh
2016-12-27 22:50:00 -08:00
DL6ER
9af26cbaac Major simplification of webpage.sh 2016-12-28 02:14:47 +00:00
Dan Schaper
73741f1518 Merge pull request #1046 from pi-hole/tweak/subshells
Tweak/subshells
2016-12-27 16:00:07 -08:00
Dan Schaper
9a9cb61345 Shift epel-release to installer dependencies for CentOS
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-27 12:59:53 -08:00
Dan Schaper
6abd6d8879 Merge pull request #991 from pi-hole/webUIprivacymode
Backend for privacyMode on webUI
2016-12-27 12:46:54 -08:00
Dan Schaper
c3b51b4ceb Merge branch 'development' into feature/track_pre-installed_packages 2016-12-27 12:37:19 -08:00
DL6ER
321ea8a3a9 Merge branch 'development' into webUIprivacymode 2016-12-27 21:27:11 +01:00
Dan Schaper
4d6263872d Merge branch 'development' of github.com:pi-hole/pi-hole into tweak/subshells 2016-12-27 12:25:49 -08:00
Dan Schaper
fcdd58ac94 Merge pull request #1033 from pi-hole/updater_rewrite
update.sh code refactoring
2016-12-27 12:22:17 -08:00
Dan Schaper
ef8292d371 Merge branch 'development' into updater_rewrite 2016-12-27 11:59:52 -08:00
Dan Schaper
bc6a985f7c Merge branch 'development' of github.com:pi-hole/pi-hole into tweak/subshells 2016-12-27 11:53:46 -08:00
Dan Schaper
7320fc11d2 Check command -v directly, instead of subshelling out.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-27 11:53:23 -08:00
Dan Schaper
51f6d75db4 Merge pull request #1045 from pi-hole/tweak/always_update
Always update package cache where we can.
2016-12-27 11:51:00 -08:00
Dan Schaper
a328326e39 Formatting
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-27 11:41:07 -08:00
Dan Schaper
4eedf8a746 Always update package cache where we can.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-27 10:59:24 -08:00
Dan Schaper
c5f5252145 Merge pull request #961 from pi-hole/customblockpage
Custom Pi-Hole block page
2016-12-27 10:25:03 -08:00
Dan Schaper
3f189ae7fe Merge remote-tracking branch 'origin/master' 2016-12-27 09:25:25 -08:00
Mcat12
7fadd469c9 Merge pull request #1038 from pi-hole/fix/IPV6_detection
Check IPv6 routing
2016-12-27 11:42:23 -05:00
Mcat12
823e874d20 Merge pull request #1037 from pi-hole/tweak/IPv4_multi_address
Smarter pick of IPv4 address
2016-12-27 11:42:00 -05:00
Adam Warner
739aaafa9a Merge pull request #1041 from pi-hole/development
[RELEASE] Pi-Hole Core 2.10.2
2016-12-25 23:43:35 +00:00
Dan Schaper
62d001225a Merge pull request #1040 from pi-hole/fix/updater_git-C
Remove git -C from update.sh
2016-12-25 12:28:42 -08:00
DL6ER
e50947eb58 mend 2016-12-25 21:26:06 +01:00
DL6ER
ca056d32d2 Remove git -C 2016-12-25 21:22:59 +01:00
DL6ER
63a455f4f7 Merge pull request #1039 from pi-hole/revert_crontab_change
Revert PR #1018
2016-12-25 18:35:59 +01:00
DL6ER
a0e0465036 Revert "Merge pull request #1018 from pi-hole/diginc-patch-1"
This reverts commit ff3c36a7a2, reversing
changes made to 9355a8ad0e.
2016-12-25 17:32:59 +01:00
Dan Schaper
d174a9d015 Merge branch 'feature/track_pre-installed_packages' of github.com:pi-hole/pi-hole into feature/track_pre-installed_packages 2016-12-24 17:01:38 -08:00
Dan Schaper
7eb6124721 Don't call for package installs if there are no packages to install.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 16:57:07 -08:00
Dan Schaper
f458780ba7 Rebase onto development
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 16:56:31 -08:00
Dan Schaper
8ad52806de Quiet DNF
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 16:54:23 -08:00
Dan Schaper
dc22a50dcc Fedora dependency installer overhaul
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

Modify Fedora dependency installer

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

Fedora now installs and arrays only non-installed packages. Fedora also noops the cache update, since it updates at every dnf call anyays.

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 16:54:20 -08:00
Dan Schaper
852341c601 Check for installation status within the parent function.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 16:54:16 -08:00
Dan Schaper
d5ed6c1901 Find which packages already exist and only install new packages. Set up for unintall to know what packages we installed for later removal.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 16:54:13 -08:00
DL6ER
e15548cbf5 Add --quiet to git fetch in GitCheckUpdateAvail() 2016-12-25 01:18:58 +01:00
DL6ER
5e28e6b9ac Removed remaining git -C 2016-12-25 01:17:46 +01:00
DL6ER
c78d43f640 Merge pull request #1032 from pi-hole/fix/emptypassword
Save empty password
2016-12-25 00:51:21 +01:00
Dan Schaper
da41383476 Check IPv6 to see if the route is reachable, if not, don't use.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 15:26:05 -08:00
Dan Schaper
6ff79835da If only one interface available, don't show whiptail, just use that interface.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 15:08:39 -08:00
Dan Schaper
1d608b204a Only allow UP interfaces to be selected. (DOWN interfaces would have not given IP addresses anyways.)
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 14:50:50 -08:00
Dan Schaper
c2b8bed3a8 Get the IP address that is the source for the default route out. Fixes interfaces with multiple IP's assigned getting the wrong IPv4 chosen.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 14:43:57 -08:00
Dan Schaper
3365ef7aaa is_repo() returns values to caller, silence function.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 11:54:04 -08:00
Dan Schaper
68c17b26dc Bashisms
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 11:41:42 -08:00
Dan Schaper
e647efd471 Shell script, not javascript
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-24 11:24:20 -08:00
DL6ER
15db1ffdd5 Remove variables not needed any more 2016-12-24 15:48:43 +01:00
DL6ER
4632b0f797 Updated updater logic 2016-12-24 15:40:31 +01:00
DL6ER
65c35a5530 Use new subroutine to determine if updates are available 2016-12-24 15:32:25 +01:00
DL6ER
c449a1c0e0 Added GitCheckUpdateAvail() 2016-12-24 15:19:39 +01:00
DL6ER
b020010f0d Removed some of the &> /dev/null 2016-12-24 15:08:30 +01:00
DL6ER
0276c72fe2 replace 'git -C' with long version (see #1009) 2016-12-24 15:05:57 +01:00
Dan Schaper
e4aec05d0f Merge branch 'feature/track_pre-installed_packages' of github.com:pi-hole/pi-hole into feature/track_pre-installed_packages 2016-12-23 16:54:25 -08:00
Dan Schaper
2919f852ad Import checkSelinux from master
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-23 16:30:26 -08:00
Dan Schaper
a6e3b9de37 Merge branch 'master' of github.com:pi-hole/pi-hole into feature/track_pre-installed_packages 2016-12-23 16:28:41 -08:00
DL6ER
04a9791be2 Save empty password 2016-12-23 23:41:40 +01:00
Dan Schaper
6b896a1c54 Merge remote-tracking branch 'origin/master' 2016-12-23 14:27:31 -08:00
Dan Schaper
cb8df06685 Merge branch 'development' into feature/track_pre-installed_packages 2016-12-23 14:10:01 -08:00
Adam Warner
bfe5506cc1 Merge pull request #1021 from pi-hole/development
[RELEASE] Pi-Hole Core 2.10.1
2016-12-23 21:57:02 +00:00
Dan Schaper
b64066fec7 Merge conflict
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-23 13:23:09 -08:00
Mcat12
ffd31d8330 Merge pull request #1031 from pi-hole/templates
replace 1-10 checkboxes to tidy up appearance
2016-12-23 16:06:29 -05:00
Promofaux
d89254fedf replace 1-10 checkboxes to tidy up appearance 2016-12-23 19:49:39 +00:00
Mcat12
a771ddf667 Merge pull request #1030 from pi-hole/readmeTypos
Accidentally a word.
2016-12-23 14:43:56 -05:00
Promofaux
ce2e410468 Accidentally a word.
Updated link
2016-12-23 19:39:37 +00:00
Adam Warner
c1982c04ff Merge pull request #1029 from pi-hole/bogusDNS_BOGUS_PRIVentries
remove `DNS_BOGUS_PRIV` from setupVars.conf
2016-12-23 19:32:13 +00:00
Promofaux
9a62026830 remove DNS_BOGUS_PRIV from setupVars.conf 2016-12-23 19:27:02 +00:00
Adam Warner
d12efccd0b Merge pull request #1028 from pi-hole/bcambl-selinux_notification
Bcambl selinux notification
2016-12-23 17:36:33 +00:00
Mcat12
54afffed19 Remove newline
Issue was already fixed
2016-12-23 12:30:33 -05:00
Mcat12
fc8fcdbece Add newline 2016-12-23 12:28:18 -05:00
Promofaux
abd1fedc9d . 2016-12-23 17:25:55 +00:00
Promofaux
9725985037 printf to echo. idgaf 2016-12-23 17:24:33 +00:00
Promofaux
754f3359ec too many echos spoil the branch 2016-12-23 17:22:31 +00:00
Promofaux
4c131b8c28 newlines 2016-12-23 17:21:23 +00:00
Promofaux
15c674ba29 verbosity 2016-12-23 17:20:33 +00:00
Promofaux
00aff6a906 maybe 2016-12-23 17:16:03 +00:00
Promofaux
c45c3a72b5 words words words 2016-12-23 17:06:33 +00:00
Promofaux
662d450651 adjust size of whiptail dialog 2016-12-23 16:58:58 +00:00
Promofaux
a8897becd2 Make sure whiptail is installed... 2016-12-23 16:55:56 +00:00
Mcat12
d0126f4454 Merge pull request #1027 from pi-hole/Mcat12/fix/alignUpdatingRepo
Align installer output for updating repo
2016-12-23 11:54:34 -05:00
Promofaux
fdb64a5702 untested convert user prompt to whiptail 2016-12-23 16:53:42 +00:00
Mcat12
73a80ff7dc Align installer output for updating repo 2016-12-23 11:51:34 -05:00
Promofaux
a795fd698d Merge branch 'selinux_notification' of https://github.com/bcambl/pi-hole into bcambl-selinux_notification 2016-12-23 16:48:16 +00:00
bcambl
2fb0dc0a4a add warning if SELinux is Enforcing 2016-12-23 10:27:52 -06:00
DL6ER
5b4653cf39 Merge pull request #1023 from pi-hole/fix/fedora_sudo
Fix Fedora sudo permissions
2016-12-23 17:13:57 +01:00
DL6ER
aa8e1497a3 Fixed error 2016-12-23 17:12:38 +01:00
DL6ER
eb13d846ef Merge pull request #1024 from pi-hole/fix/grep_case_insensitive
Make grep case insensitive
2016-12-23 17:07:08 +01:00
DL6ER
c674a175ee Make grep case insensitive 2016-12-23 17:02:56 +01:00
DL6ER
afabf30ec6 Fix Fedora web UI support 2016-12-23 16:57:51 +01:00
DL6ER
420158494d Merge pull request #1022 from pi-hole/fix/adlists.default
Internal (/etc/pihole/adlists.default)
2016-12-23 16:08:06 +01:00
DL6ER
6b7b0e0eb3 Test if /etc/pihole/adlists.default exists 2016-12-23 16:00:48 +01:00
Adam Warner
ad70db7e0e Merge pull request #1020 from bcambl/setDNS_before_ifcfg
Set dns before ifcfg (Fixes #1019)
2016-12-23 12:12:05 +00:00
Adam Warner
ef1ce66793 Merge pull request #1013 from pi-hole/fix/chronometer
Fix chronometer.sh
2016-12-23 11:12:20 +00:00
DL6ER
c364fd80b6 Merge pull request #994 from pi-hole/errorsshouldnotescapeblackholes
Errors should not escape black holes
2016-12-23 12:05:54 +01:00
Adam Warner
3bc5d1bae0 Merge pull request #989 from pi-hole/APIresolveclientsandupstream
Implement backend for AdminLTE/#253
2016-12-23 10:37:48 +00:00
Adam Warner
e4e34acba1 Merge pull request #1017 from bcambl/ensure_repo_directory
is_repo: ensure directory exists
2016-12-23 09:44:19 +00:00
Adam Warner
ff3c36a7a2 Merge pull request #1018 from pi-hole/diginc-patch-1
pihole.cron reduce duplication
2016-12-23 09:41:48 +00:00
bcambl
1e7e3259b5 choose dns servers prior to interface configuration
upstream DNS servers must be chosen prior interface configuration.
Fixes #1019
2016-12-22 22:42:32 -06:00
Adam Hill
5e53f484be Update pihole.cron
Stop repeating the path.
2016-12-22 22:00:17 -06:00
bcambl
513bc32d87 is_repo: ensure directory exists 2016-12-22 20:00:45 -06:00
Dan Schaper
e7c944ff0b Merge branches 'development' and 'feature/track_pre-installed_packages' of github.com:pi-hole/pi-hole into feature/track_pre-installed_packages 2016-12-22 12:25:07 -08:00
Dan Schaper
9355a8ad0e Merge pull request #1011 from pi-hole/fix/sudoers
Fix: Dynamic instead of static sudoers file
2016-12-22 12:20:01 -08:00
Dan Schaper
a74e48a138 Merge pull request #1014 from pi-hole/fix/Gravity_in_shell
Execute gravity in same shell as installer, don't subshell it.
2016-12-22 12:07:12 -08:00
Dan Schaper
ea5ee7b0f9 Execute gravity in same shell as installer, don't subshell it.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-22 11:30:36 -08:00
DL6ER
bc8cf1b2d8 Fixed wrong indentation 2016-12-22 19:23:06 +01:00
DL6ER
bb28d94884 Merge branch 'development' into customblockpage
Conflicts:
	automated install/basic-install.sh
2016-12-22 19:22:09 +01:00
DL6ER
a4f58b0a22 Look for "query[" instead of "query" to avoid false-positives, like listed below
root@raspberrypi:/etc/.pihole# grep 'query' /var/log/pihole.log | grep -v 'query\['
Dec 22 16:29:50 dnsmasq[30801]: forwarded code.jquery.com to 208.67.222.222
Dec 22 16:29:50 dnsmasq[30801]: reply code.jquery.com is <CNAME>
Dec 22 16:29:50 dnsmasq[30801]: reply code.jquery.netdna-cdn.com is 94.31.29.54
Dec 22 16:29:50 dnsmasq[30801]: reply code.jquery.netdna-cdn.com is 23.111.11.3
Dec 22 16:29:50 dnsmasq[30801]: reply code.jquery.netdna-cdn.com is 198.232.125.113
2016-12-22 19:09:37 +01:00
DL6ER
bcf8139708 Removed cat where we don't need it 2016-12-22 18:55:14 +01:00
DL6ER
9b0390c9da Space to Tab 2016-12-22 18:53:44 +01:00
DL6ER
e88f58c34e Remove grpping for today's log entries, because we flush the log every day 2016-12-22 18:45:53 +01:00
Blayne Campbell
8f402f5c77 Merge pull request #1009 from bcambl/fix_1004
replace 'git -C' with long version
2016-12-22 11:44:08 -06:00
DL6ER
60054da582 Add lighttpd user (OS dependent) to sudoers file 2016-12-22 13:26:11 +01:00
DL6ER
4626b8ced5 Removed fixed username from sudoers file 2016-12-22 13:18:38 +01:00
Dan Schaper
ab7d193f98 Still causing problems with Fedora and CentOS
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-22 03:21:37 -08:00
bcambl
cbf84c1840 replace subshell with command chain 2016-12-22 04:32:42 -06:00
Dan Schaper
420fb69166 Merge pull request #1005 from pi-hole/fix/create_install_directories
Create /opt/pihole before trying to install into it.
2016-12-22 01:47:07 -08:00
bcambl
c9c28cb59a replace 'git -C' with long version
The -C argument was introduced in git 1.8.4. CentOS 7.3 at the time of this commit provides v1.8.3.1.
see: https://git.kaarsemaker.net/git/commit/44e1e4d67d5148c245db362cc48c3cc6c2ec82ca/

Fixes #1004
2016-12-22 03:37:34 -06:00
Dan Schaper
9073f34b30 Quiet DNF
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-22 00:44:10 -08:00
Dan Schaper
fb5578c0d4 Fedora dependency installer overhaul
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

Modify Fedora dependency installer

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>

Fedora now installs and arrays only non-installed packages. Fedora also noops the cache update, since it updates at every dnf call anyays.

Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-22 00:29:04 -08:00
Dan Schaper
4244f716e0 Create /opt/pihole before trying to install into it.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-21 23:04:57 -08:00
Dan Schaper
07a4f970d4 Check for installation status within the parent function.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-21 22:57:42 -08:00
Dan Schaper
2335097c99 Find which packages already exist and only install new packages. Set up for unintall to know what packages we installed for later removal.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-21 22:20:23 -08:00
Adam Warner
bef0a2fef0 Merge pull request #987 from pi-hole/development
Pi-Hole Core release v2.10
2016-12-21 18:21:59 +00:00
DL6ER
c48e6c91f5 Merge pull request #999 from pi-hole/fix/install_deps_exit
Fix/install deps exit
2016-12-21 16:00:48 +01:00
DL6ER
f082b5ba54 Merge pull request #1001 from pi-hole/cleanup/remove_legacy_detect
Remove v1 legacy detection code.
2016-12-21 13:49:34 +01:00
DL6ER
8841bdd252 Reset the if's 2016-12-21 12:57:02 +01:00
DL6ER
58261098fb We should not call a function that Dan deleted 2016-12-21 12:07:44 +01:00
DL6ER
9432d3035a Merge branch 'development' into cleanup/remove_legacy_detect
Conflicts:
	automated install/basic-install.sh
2016-12-21 12:01:58 +01:00
DL6ER
9907fc2770 Merge branch 'development' into fix/install_deps_exit
Conflicts:
	automated install/basic-install.sh
2016-12-21 11:54:52 +01:00
DL6ER
d42caa8672 Merge pull request #1000 from pi-hole/fix/tab_space
Tabs to spaces and formatting.
2016-12-21 11:41:30 +01:00
Dan Schaper
8117ec8e20 Remove v1 legacy detection code.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-20 17:50:44 -08:00
Dan Schaper
ff2783f9fc Tabs to spaces and formatting.
Signed-off-by: Dan Schaper <dschaper@ganymeade.com>
2016-12-20 17:22:57 -08:00
Dan Schaper
156a51c945 Remove extra display only variable.
Signed-off-by: Dan Schaper <dschaper@ganymeade.com>
2016-12-20 17:04:46 -08:00
Dan Schaper
c72ffae4a2 Don't install extra packages (openresolv was installed over resolvconf). No longer need --fix-missing.
Signed-off-by: Dan Schaper <dschaper@ganymeade.com>
2016-12-20 17:02:51 -08:00
Dan Schaper
7f3b0030ea LF
Signed-off-by: Dan Schaper <dschaper@ganymeade.com>
2016-12-20 16:47:43 -08:00
Dan Schaper
9a626948f8 Use debconf for Deb/Ubu package installations.
Signed-off-by: Dan Schaper <dschaper@ganymeade.com>

Alphabetic sort of dependency names

Signed-off-by: Dan Schaper <dschaper@ganymeade.com>
2016-12-20 16:22:31 -08:00
Dan Schaper
5c43df66a8 Remove spinner function, masked return values.
Signed-off-by: Dan Schaper <dschaper@ganymeade.com>
2016-12-20 16:22:08 -08:00
Dan Schaper
d0e3c546f8 CRLF to CR (Win to Unix line endings)
Signed-off-by: Dan Schaper <dschaper@ganymeade.com>
2016-12-20 15:00:37 -08:00
DL6ER
a9cb93d801 Merge pull request #998 from pi-hole/LordKelvin
Lord Kelvin
2016-12-20 17:54:52 +01:00
DL6ER
ee8f29d178 Fixed typo, extended help text 2016-12-20 16:28:28 +01:00
DL6ER
da363070c7 Added Kelvin 2016-12-20 12:21:08 +01:00
DL6ER
50cf891e01 Merge pull request #996 from pi-hole/allowemptysecondDNSserver
Allow disabling second DNS server
2016-12-19 19:30:27 +01:00
DL6ER
715838cf89 Allow disabling second DNS server 2016-12-19 13:42:42 +01:00
DL6ER
cd0c3f9418 Better output if file has not been downloaded because it has not been changed 2016-12-17 23:46:28 +01:00
DL6ER
efaee2b68b Improvements for gravity (errors shouldn't be able to escape the black hole if even light cannot do this!) 2016-12-17 23:33:09 +01:00
DL6ER
372c699cc6 Merge pull request #993 from pi-hole/fix/one_step_refactor
Rename variables in one step
2016-12-17 00:15:20 +01:00
Dan Schaper
8cb01cdd29 One step to rename variables.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-16 15:08:30 -08:00
DL6ER
7a243f890e Backend for privacyMode on webUI 2016-12-16 17:33:01 +01:00
Adam Warner
10982a0f45 Merge pull request #990 from pi-hole/dontkillsetupVars.conf
Don't kill setupVars.conf on update/fresh install
2016-12-16 13:55:33 +00:00
DL6ER
d4c378ed5d Remove PIHOLE_INTERFACE if already set (not PIHOLE_DOMAIN) 2016-12-16 13:20:25 +01:00
DL6ER
7872f68a45 Only try to remove parts inthe file if the file already exists 2016-12-16 13:13:35 +01:00
DL6ER
ec8c848106 Don't kill already existing setupVars.conf on update (and fresh install) 2016-12-16 12:53:00 +01:00
Mcat12
3b50ce8c54 Merge pull request #977 from pi-hole/activatewebUIpw
Add password to webUI after update if there is none
2016-12-15 14:05:11 -05:00
DL6ER
afabb5957b Implement backend for https://github.com/pi-hole/AdminLTE/pull/253 2016-12-15 18:55:40 +01:00
DL6ER
1eeaa01234 Always put the information that we added a password if we did (not only on update but also on fresh install) 2016-12-15 15:22:44 +01:00
DL6ER
e2898217d2 Made message shorter 2016-12-15 15:20:41 +01:00
DL6ER
f81dadc5d0 Fix final message 2016-12-15 14:10:55 +01:00
Mcat12
a0019d86c5 Merge pull request #983 from pi-hole/cronpath
Fix missing path information for cron
2016-12-15 07:01:20 -05:00
DL6ER
3c4a9bba78 Minor change 2016-12-15 10:38:24 +01:00
Adam Warner
4348653431 Merge pull request #985 from pi-hole/pi.hole
A man has no name. Even though his name is Jaqen H'ghar
2016-12-15 08:49:22 +00:00
Dan Schaper
09cfa9bb20 Merge pull request #986 from pi-hole/autoCompletes
add missing pihole autocomplete commands
2016-12-14 12:58:50 -08:00
Promofaux
e7713a9028 add missing pihole autocomplete commands 2016-12-14 19:53:40 +00:00
Promofaux
906a1753be specifically comment out gravity.list addn-host 2016-12-14 19:42:20 +00:00
Promofaux
a3d519b671 no need to remove list, because of echo > 2016-12-14 19:33:15 +00:00
Promofaux
8591f9d576 check for list before removing it 2016-12-14 19:31:57 +00:00
Promofaux
c10ec5548f remove code that replaces tokens in 01-pihole.conf 2016-12-14 19:29:44 +00:00
Promofaux
684ac98c8e Remove hostname and pi.hole entries, move to /etc/pihole/local.list 2016-12-14 19:28:01 +00:00
Promofaux
db89fa9881 initial support for additional hosts file 2016-12-14 19:26:55 +00:00
Adam Warner
9a80421d73 Merge pull request #981 from pi-hole/quiet-dhcp
Improvement of backend of web UI Settings page
2016-12-14 19:11:49 +00:00
Mcat12
2ddacf40c0 Merge pull request #984 from pi-hole/Mcat12-auto-ipv6
Automatically enable IPv6
2016-12-14 13:59:55 -05:00
Mcat12
92f4824884 Automatically enable IPv6 2016-12-14 13:52:14 -05:00
DL6ER
9a2ffabc33 Fix missing path information 2016-12-14 17:33:20 +01:00
DL6ER
2977168da1 dnsmasq "bogus-priv" property 2016-12-14 16:16:25 +01:00
DL6ER
85e3f37503 dnsmasq "domain-needed" property 2016-12-14 16:09:57 +01:00
DL6ER
ba015c1918 Set domain name via Settings page 2016-12-14 14:24:09 +01:00
DL6ER
1556adb678 Also remove quiet-dhcp setting when disabling/enabling the Pi-Hole DHCP server 2016-12-14 12:12:36 +01:00
Adam Warner
6bfe729112 Merge pull request #979 from pi-hole/wwwdatapassword
Prevent web UI password change by web user
2016-12-13 16:33:41 +00:00
DL6ER
c340668870 Merge pull request #976 from pi-hole/websettingspage
Add necessary backend for the new "Settings" page of the web UI
2016-12-13 17:32:18 +01:00
DL6ER
207422f83a Added a missing space 2016-12-13 15:54:41 +01:00
DL6ER
004ba28378 Prevent web UI password change by web user 2016-12-13 15:52:28 +01:00
DL6ER
6f38801ed8 Add "Interface appearence" option 2016-12-13 14:59:52 +01:00
Adam Warner
1509eb7d82 Merge pull request #978 from pi-hole/Mcat12-adzhosts-list
Update ADZHOSTS list
2016-12-13 12:13:37 +00:00
DL6ER
b8d2bfc890 Wait 5 seconds before rebooting so the web UI can finish loading before being unreachable due to the reboot 2016-12-13 12:42:40 +01:00
Mcat12
8a2ee95e4a Update ADZHOSTS list 2016-12-12 15:30:47 -05:00
DL6ER
bc91716082 Suppress logging of DHCP actions to /var/log/pihole.log 2016-12-12 17:14:52 +01:00
DL6ER
a00034a6a7 Add password to webUI after update if there is none 2016-12-12 17:03:53 +01:00
DL6ER
8dc0dc4d69 Add DHCP-Server backend 2016-12-12 15:34:05 +01:00
DL6ER
2f4b7ce3dd Update dnsmasq file when changing upstream DNS servers and restart the service to get it active 2016-12-12 14:17:02 +01:00
DL6ER
d4f83cb1d4 Be able to set API_QUERY_LOG_SHOW 2016-12-12 13:15:07 +01:00
DL6ER
aaab3306a8 Add restart DNS capability 2016-12-12 10:38:21 +01:00
DL6ER
2bafa2f2ac Add reboot option 2016-12-11 22:33:27 +01:00
DL6ER
9ac378ae09 Set domains and clients which are excluded by the API 2016-12-11 19:30:04 +01:00
DL6ER
bf867bd9fd Set DNS servers from web UI 2016-12-11 16:54:27 +01:00
Adam Warner
7fd9ff43af Merge pull request #970 from trinapicot/fix/remove_lighty_conf
Update uninstall.sh for check on lighttpd installation
2016-12-09 23:40:50 +00:00
Adam Warner
bebb569c43 Merge pull request #964 from pi-hole/queryadsonlyexactmatches
pihole -q: Add option to show all partial or only exact matches
2016-12-09 23:25:15 +00:00
Mcat12
74e33bb1a0 Merge pull request #973 from pi-hole/taillog
Add tail argument to automatically "tail -f" pihole.log
2016-12-08 16:40:17 -05:00
Mcat12
b591df55b0 Tell user how to exit tail command 2016-12-08 16:35:50 -05:00
Mcat12
bddf31443c Merge pull request #974 from pi-hole/Mcat12-add-reconfigure-help
Add Reconfigure command to Pi-hole's list of commands
2016-12-08 15:55:36 -05:00
Mcat12
b9e0e88fe9 Update pihole 2016-12-08 15:47:30 -05:00
DL6ER
5120d9ec33 Add tail option 2016-12-08 21:15:03 +01:00
trinapicot
0a423ffd40 Fix check for lighttpd install before configuration directory removal 2016-12-07 20:31:34 -07:00
DL6ER
505c9e8979 Minor change 2016-12-06 14:08:45 +01:00
DL6ER
75deb02961 Don't query pihole if page is hidden anyhow 2016-12-06 14:05:48 +01:00
DL6ER
480211033d Detect if blocking page is loaded within frame or iframe. If so, hide everything 2016-12-06 14:05:02 +01:00
DL6ER
c0886cb5c6 pihole -q <domain> is partial matching (as before), pihole -q <domain> -exact is exact matching (new behavior) 2016-12-06 13:18:01 +01:00
DL6ER
294df8690c Do only one grep on each of the lists and count the number of non-empty lines in the result. Improves speed by factor of 2x 2016-12-06 09:55:17 +01:00
DL6ER
5374f652dd No need to modify lighttpd config file, since we overwrite it anyways 2016-12-06 08:43:24 +01:00
DL6ER
fb72ac9904 Show only exact matches for pihole -q 2016-12-06 08:18:49 +01:00
Mcat12
b6639d9e7e Merge pull request #962 from pi-hole/queryblacklist
Also query blacklist with pihole -q
2016-12-05 18:11:26 -05:00
DL6ER
74cb79252c Only looking for blocking entries (do not scan whitelist.txt) 2016-12-05 17:12:28 +01:00
DL6ER
6cd3c93472 Also query white- and blacklist 2016-12-05 17:09:49 +01:00
DL6ER
eb63e75379 No need for pipe here 2016-12-05 17:06:20 +01:00
DL6ER
ca9321624c Added padding for ad list results 2016-12-05 14:40:48 +01:00
DL6ER
40f18df90f Simplified CSS, removed external contents 2016-12-05 14:39:07 +01:00
DL6ER
0d63cfd6c3 Add 1x1 pixel GIF image. Can apparently be used to trick some of the please-don't-use-adblocker pages as many of them contain code like if ($('Ad').height() == 0) { prevent access to this page; } 2016-12-05 12:34:30 +01:00
DL6ER
3d6b22de6c Update index.php to include more detailed output 2016-12-05 12:12:01 +01:00
DL6ER
fc233fcdd3 Fixed typo 2016-12-05 12:10:05 +01:00
DL6ER
20370d4348 Update CSS file 2016-12-05 11:26:21 +01:00
DL6ER
0f90671241 Updated index.php to use CSS file unter admin/ 2016-12-05 10:51:41 +01:00
DL6ER
a866c4e388 Place blockingpage.css (former index.css) unter admin/ so we can load it also from some blocked sub-directories 2016-12-05 10:50:19 +01:00
DL6ER
e7241a989c Include CSS file 2016-12-04 22:20:51 +01:00
DL6ER
6e788668f9 Updated index.php 2016-12-04 22:17:33 +01:00
DL6ER
b246dba7e7 Rename index.html to index.php 2016-12-04 21:41:26 +01:00
Mcat12
f98de3d5db Merge pull request #941 from DL6ER/caseinsensitive
Improvements for black-/whitelist scripts
2016-12-04 14:33:10 -05:00
Mcat12
fab7d60373 Merge pull request #960 from unseen1980/patch-1
Ad blocker with armbian and orange pi
2016-12-04 14:20:48 -05:00
Christos Koutsiaris
b4e5358145 Ad blocker with armbian and orange pi 2016-12-04 18:40:01 +00:00
Adam Warner
486db1e797 Merge pull request #956 from trinapicot/development
Add check for lighty.conf before trying to move it
2016-12-03 17:11:16 +00:00
DL6ER
78cb43d0dc Revert "Simplified EscapeRegexp()"
This reverts commit 509cfd15f2.
2016-12-03 00:32:37 +01:00
trinapicot
870454330d Add check for lighty.conf before trying to move it 2016-12-02 13:54:11 -07:00
DL6ER
509cfd15f2 Simplified EscapeRegexp() 2016-12-02 14:17:34 +01:00
DL6ER
2061daa902 Don't forget to escape also the slash "/" 2016-12-02 14:11:17 +01:00
DL6ER
629ca970a1 Changed from single quoted filter expression to double quotes as reqeusted by codacy 2016-12-02 14:08:54 +01:00
DL6ER
c8ad6f23a8 Properly escape any special characters before using them in regexp manner 2016-12-02 12:57:04 +01:00
Mcat12
d8912fd0a7 Merge pull request #952 from pi-hole/fix/exit_codes
Fix/exit codes
2016-12-01 18:24:30 -05:00
Dan Schaper
925c80edd4 Catch more 1's
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-01 15:10:06 -08:00
Dan Schaper
2f6afd375b Merge pull request #942 from pi-hole/PromoFaux-patch-2
Update gravity.sh
2016-12-01 14:00:38 -08:00
Dan Schaper
d92646324c Double worded
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-01 13:59:58 -08:00
Dan Schaper
c9fe62a691 Clarify what the command is doing.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-01 13:58:40 -08:00
Dan Schaper
cb52ad3ba3 Revert other branch chages.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-01 13:31:35 -08:00
Dan Schaper
2ec4acfe52 Begin fixing exit values.
Signed-off-by: Dan Schaper <dan.schaper@pi-hole.net>
2016-12-01 12:21:08 -08:00
Mcat12
1c64f1d0cf Merge pull request #940 from pi-hole/PromoFaux-patch-1
Update .pullapprove.yml
2016-11-22 17:20:57 -05:00
Mcat12
48f4f44289 Merge pull request #944 from pi-hole/feature/Issue_template
Update ISSUE_TEMPLATE.md
2016-11-22 16:23:36 -05:00
Dan Schaper
80c19cbf7d Update ISSUE_TEMPLATE.md 2016-11-22 12:05:19 -08:00
Adam Warner
c97cfde9f9 Update gravity.sh
Only include domain part of lines that contain `/` e.g `www.fakenewswatch.com/megynkelly`
2016-11-21 22:51:59 +00:00
DL6ER
7b26b308ad No need for echo and pipe here! 2016-11-21 15:50:05 +01:00
DL6ER
4c10634d85 Convert domain names to lower case before checking validity of the domain 2016-11-21 15:49:11 +01:00
Mcat12
3ba7d7640f Merge pull request #933 from DL6ER/delayedreactivation
Add possiblity for delayed reactivation of blocking
2016-11-21 08:26:26 -05:00
Adam Warner
907995a221 Update .pullapprove.yml
reflect new approvers team
2016-11-21 13:13:39 +00:00
DL6ER
7bf0985a57 Extended help text of main pihole command 2016-11-21 11:30:34 +01:00
Dan Schaper
3ca21d8c8a Merge pull request #931 from pi-hole/update_tests
Add piholeDebug to CI Travis tests
2016-11-20 15:51:14 -08:00
Dan Schaper
a3a87c8883 Merge pull request #937 from pi-hole/feature/README
README updates
2016-11-20 15:23:49 -08:00
Adam Warner
de4401823e Merge pull request #924 from DL6ER/webpage.sh
Add webpage.sh
2016-11-20 21:43:44 +00:00
Adam Warner
3ee10f5983 Merge pull request #938 from DL6ER/another_done
Another done
2016-11-20 19:21:58 +00:00
Dan Schaper
0fc8ac8d4d Codacy Badge for Master 2016-11-20 09:44:39 -08:00
Dan Schaper
41bb53a29f Remove CC Badge, Link Vortex to Discourse 2016-11-20 09:42:45 -08:00
DL6ER
cdee6d55d3 Minor change 2016-11-20 17:40:22 +01:00
DL6ER
e5a1afaa26 Added another missing "done" 2016-11-20 17:31:27 +01:00
DL6ER
f50cbe74cb Changed -web (webpage) to -a (admin) 2016-11-20 15:15:27 +01:00
Dan Schaper
5dbbf91917 Link to AdminLTE 2016-11-19 15:08:35 -08:00
Mcat12
7424a29960 Update wiki link 2016-11-19 15:03:32 -08:00
Dan Schaper
eb22ca2467 Reset Code Stylings to group defalut 2016-11-19 15:03:12 -08:00
Dan Schaper
ddbcbe5458 Merge in git method instructions from other branch.
Move some bits around.

Start adding in logos to media links

More logos

Add BC logo

Change static images to use Asset server

Add and center control panel image
2016-11-19 15:01:56 -08:00
Dan Schaper
6e54cfd2ac Further refinements.
Trying to find a good flow for information and layout.
2016-11-19 14:57:49 -08:00
Mcat12
fc3d4b3def Update README.md 2016-11-19 14:57:38 -08:00
Jacob Salmela
df55b2c516 relocate and wordsmith donations 2016-11-19 14:57:29 -08:00
Jacob Salmela
4d9fb57e22 above the fold verbage
Try to let the user know in two sentences what Pi-hole can do for them.

Also, linked to Discourse hw/sw requirements.

fixed DO referral code.
2016-11-19 14:57:02 -08:00
Dan Schaper
3ed08b5c39 Add New Logo and other changes
Remove extra break

Center Badges and move DO Slug

Bump Vortex up a bit.

Last change for now.

Move things around a bit.

Pull overlay off black hole image
2016-11-19 14:55:52 -08:00
Dan Schaper
d715471426 Center Global 2016-11-19 14:47:46 -08:00
Dan Schaper
486a4929da Add click instructions 2016-11-19 14:46:30 -08:00
Dan Schaper
aacddb745b Swap Global Image
Global image, no berry, no overlay
2016-11-19 14:46:30 -08:00
Dan Schaper
924f499303 Add DO Slug and Copy to README 2016-11-19 14:46:30 -08:00
Dan Schaper
e863a200e8 Remove CC badge 2016-11-19 14:44:43 -08:00
Dan Schaper
bb7f8ae69d Add git clone method to installers 2016-11-19 14:44:13 -08:00
DL6ER
33b6fe72da Extended help text 2016-11-19 21:57:42 +01:00
DL6ER
733919be4a Implement possibility to remove password using "pihole -web -p" 2016-11-19 21:50:15 +01:00
Dan Schaper
4333e5487b Merge pull request #932 from pi-hole/feature/debug_timeout
feature/debug_timeout
2016-11-19 12:25:38 -08:00
Dan Schaper
22ead933b6 Merge pull request #936 from pi-hole/Mcat12-patch-1
Fix typo
2016-11-19 11:08:20 -08:00
Dan Schaper
d53a3af191 Merge pull request #899 from diginc/configureFirewall_unittest
Configure firewall unittest
2016-11-19 11:07:38 -08:00
Mcat12
08e7b7e0ad Fix typo 2016-11-19 14:00:56 -05:00
Dan Schaper
68cb0782c0 Add countdown timer 2016-11-18 13:27:06 -08:00
Adam Warner
0e5a8e0033 Merge pull request #934 from DL6ER/gravity.sh-done
Added missing "done." output to gravity.sh
2016-11-18 20:10:50 +00:00
DL6ER
4945f33254 Added "-n" to first echo call 2016-11-18 17:39:34 +01:00
DL6ER
3fa05293fc Fixed file permissions 2016-11-18 17:37:13 +01:00
DL6ER
27e5f2798d Added missing "done." output 2016-11-18 17:33:46 +01:00
DL6ER
291ca0874a Fixed two more typos 2016-11-18 12:16:26 +01:00
DL6ER
96f2aa1803 fixed typo 2016-11-17 23:36:53 +01:00
DL6ER
c6857501aa Removed check for availability of nohup 2016-11-17 23:31:11 +01:00
DL6ER
3aba1607b2 Removed debug echos 2016-11-17 23:04:46 +01:00
DL6ER
f667298b64 Added possiblity for delayed reactivation of blocking 2016-11-17 22:58:00 +01:00
Dan Schaper
0f4c8d4923 Set default timeout to 60 seconds 2016-11-17 11:00:11 -08:00
Dan Schaper
6d2c5b2312 Add debug timeoute 2016-11-17 10:58:58 -08:00
Dan Schaper
a95ce11ca6 Add debug timeoute 2016-11-17 10:39:51 -08:00
Dan Schaper
808503d526 Add piholeDebug to tests 2016-11-17 10:28:51 -08:00
Adam Warner
d4b6fb9214 Merge pull request #929 from pi-hole/cleanup/PR_template
Small change in template
2016-11-17 12:43:54 +00:00
Dan Schaper
9bce5a09f3 Small change in template
Just a space, and italicize
2016-11-16 21:42:54 -08:00
Mcat12
bd61f38169 Merge pull request #926 from zbholman/patch-2
Added removal of pihole user to the uninstall.sh
2016-11-16 17:31:56 -05:00
zbholman
cac9c63325 Added removal of pihole user to the uninstall.sh
Not sure if I should have created a variable for the username or if the echo is necessary. And this is my first time doing a pull request, hopefully it works out lol.
2016-11-16 17:06:30 -05:00
Adam Warner
e6d555ac31 Merge pull request #925 from pi-hole/feature/style_guide
Add GSG/Shell link
2016-11-16 22:03:18 +00:00
Dan Schaper
fd0dd9f54c Add GSG/Shell link 2016-11-16 13:55:29 -08:00
DL6ER
88c161769d Capitalized variable names. 2016-11-16 22:33:28 +01:00
DL6ER
01bf1ae92d Compute double hashes to avoid rainbow table vulnerability 2016-11-16 22:13:47 +01:00
DL6ER
9193c71cff Minor change 2016-11-16 21:36:19 +01:00
DL6ER
db278d81e4 Added webpage.sh 2016-11-16 21:34:43 +01:00
Dan Schaper
bdad454a0d Merge pull request #920 from pi-hole/PromoFaux-patch-1
Update piholeDebug.sh
2016-11-16 11:22:04 -08:00
Adam Warner
ac8064c754 Merge pull request #918 from nlamirault/patch-2
Add Pi-Hole exporter for Prometheus
2016-11-16 18:53:00 +00:00
Dan Schaper
736e963cef Merge pull request #919 from haydenknowles/development
moved newline to correct place
2016-11-15 18:40:00 -08:00
Adam Warner
b191cd73a7 Update piholeDebug.sh
wording
2016-11-15 13:28:18 +00:00
Hayden Knowles
86d3ca48ae moved newline to correct place 2016-11-15 22:40:57 +13:00
Nicolas Lamirault
fd7e4f2268 Add Pi-Hole Prometheus exporter project 2016-11-15 09:27:16 +01:00
Dan Schaper
e9475a9739 Merge pull request #887 from brontide/dependancy_cleanup
Dependancy cleanup
2016-11-07 21:45:23 -08:00
Dan Schaper
d4270e02e9 Merge pull request #902 from elpatron68/master
Added Link to blink1_pi-hole.py
2016-11-07 21:44:28 -08:00
Mcat12
b9a263ecb2 Merge pull request #907 from pi-hole/bugfix/chronometer-interface
replace hardcoded interface with var
2016-11-07 21:35:09 -05:00
Dan Schaper
4929d415a6 Merge pull request #906 from pi-hole/Fix/send-frs-into-orbit
Direct users to Discourse for FRs
2016-11-07 17:32:28 -08:00
Dan Schaper
b9e1f518aa Merge pull request #909 from bcambl/fix_ifcfg_append
Fedora: write interface config instead of append
2016-11-07 17:23:50 -08:00
bcambl
0caa44e979 write ifcfg instead of appending 2016-11-07 12:54:31 -06:00
Jacob Salmela
ca56ca5bd8 promo-tweak
Better logic introduced by @PromoFaux
2016-11-06 11:16:48 -06:00
Jacob Salmela
a0f0dff88e replace hardcoded interface with var
setupVars.conf is already sourced, so we just need to replace the
hardcoded value with the variable name.
2016-11-06 08:18:57 -06:00
Jacob Salmela
e5cc38a210 Direct users to Discourse for FRs
It's a better platform for it because users can vote and we can have
easier discussions for it.
2016-11-06 08:08:58 -06:00
Adam Warner
6cb5bb7200 Merge pull request #903 from pi-hole/feature/PRGuide
PR against Development guide
2016-11-04 21:17:20 +00:00
Dan Schaper
563696e291 PR against Development guide
PA will tag PR to Master with -1 approval in the next release. That will deny any PR's against Master from users and changing branches after the PR is started does not appear to modify the PA actions.
2016-11-04 14:01:01 -07:00
Markus Busche
c755b3c49e Added Link to blink1_pi-hole.py 2016-11-04 21:56:14 +01:00
diginc
b9f3493dbc move PH_TRUE to Dockerfiles to DRY 2016-11-03 22:34:04 -05:00
Dan Schaper
8c08e9e473 Merge pull request #891 from pi-hole/bugfix/chronometer-domain-count
Bugfix/chronometer domain count
2016-11-03 13:55:29 -07:00
Adam Hill
c2930b0ca5 remove the debug print in mock_command 2016-11-03 08:34:44 -05:00
Adam Warner
4300759287 Fix logic. If both v6 and v4 divide by two, else dont. 2016-11-03 08:01:25 +00:00
Adam Warner
fc1854cadd Merge pull request #897 from pi-hole/feature/travisDevBadge
Update README.md
2016-11-03 07:49:30 +00:00
Adam Warner
933973b12c Merge pull request #898 from pi-hole/fix/removeCC
Remove CodeClimate yaml, Travis new ShellChecker
2016-11-03 07:48:36 +00:00
diginc
5b54b9cb11 update Pihole fixture comment 2016-11-03 00:05:19 -05:00
diginc
d2f815bba7 no longer need to write bash test scripts 2016-11-03 00:02:28 -05:00
diginc
a5a067d50f switching testinfra's Docker run from dash to bash 2016-11-02 23:58:54 -05:00
diginc
699e299345 add a comment about bash vs dash. future refact needed 2016-11-02 23:40:50 -05:00
diginc
05e114173d update comments, add configureFirewall test
* Comments to clarify some of the existing tests
* mock_command to allow recording of calls and mocking return calls in bash
* new configureFirewall test (only the first one of it's many paths)
2016-11-02 23:25:13 -05:00
Dan Schaper
d958b3ff65 Remove CodeClimate yaml, Travis new ShellChecker 2016-11-02 20:14:04 -07:00
diginc
0d7e06a141 remove old pytest output file 2016-11-02 22:13:39 -05:00
diginc
633095aee1 switch to consistent style 2016-11-02 22:13:05 -05:00
Dan Schaper
a4aeb9a1dd Update README.md 2016-11-02 20:07:51 -07:00
Eric Warnke
71005e1db3 Merge with change of spacing in development 2016-11-02 19:01:34 -04:00
Promofaux
d7d6d6f991 Update to use new Var name 2016-11-02 21:46:30 +00:00
Adam Warner
5986121cfc Merge pull request #896 from pi-hole/bugfix/649
Check for missing index.html, replace if missing.
2016-11-02 21:27:45 +00:00
Promofaux
c452a4569e .js 2016-11-02 21:17:00 +00:00
Promofaux
a182a208dc Tidy up output 2016-11-02 21:06:12 +00:00
Promofaux
d273b4b48b Check for missing index.html, replace if missing. 2016-11-02 20:57:56 +00:00
Adam Warner
afed7d4af0 Merge pull request #890 from pi-hole/feature/defensiveTweaks
Feature/defensive tweaks
2016-11-02 20:23:04 +00:00
Promofaux
b429e890ad move web interface message inside "if not update" block. Check for pi-hole deps AFTER whiptails 2016-11-02 20:16:36 +00:00
Promofaux
2f976504e8 switch out -eq for == 2016-11-02 20:06:21 +00:00
Dan Schaper
b5fc88227b Merge .gitignore 2016-11-02 12:36:00 -07:00
Dan Schaper
4b7b859db9 Gotta catch 'em all...' 2016-11-02 12:29:55 -07:00
Dan Schaper
f7d0de53bb Compare string to string. 2016-11-02 12:11:34 -07:00
Dan Schaper
603ec997ba Remove testing block. 2016-11-02 12:09:33 -07:00
Dan Schaper
f7266ef4c8 Version remote check returns -1 on failure to detect curl silent failing. Update detects loss of contact to GitHub or fallthrough condition and reports to user. 2016-11-02 12:07:59 -07:00
Dan Schaper
3d43e1568c Use explicit calls for function to self-document 2016-11-02 11:39:22 -07:00
Dan Schaper
3cf6a65da9 Remove *.yml ignoring
Travis YAML might not be good to ignore.
2016-11-02 11:32:53 -07:00
Dan Schaper
c1a3f003e8 Rename the only utilty function left that didn't say repo 2016-11-02 11:18:13 -07:00
Dan Schaper
3f61aea7fc Utility functions fully quiet now. Calling functions have the echos. 2016-11-02 11:09:53 -07:00
Dan Schaper
bd68db51e0 ShellCheck split local declaration and assignment. 2016-11-02 11:01:50 -07:00
Dan Schaper
b8a5ed710e Take echos out of utility functions and move up a level. 2016-11-02 10:51:09 -07:00
Dan Schaper
34be601dd7 Test for lexicographically less than tag version. 2016-11-02 10:42:05 -07:00
Dan Schaper
1d64ad1ccd Stash all changed files, clean directory and pull updates. 2016-11-02 10:39:27 -07:00
Dan Schaper
dfb4ac0365 Keep .yml's from going to user local repos. 2016-11-02 09:52:15 -07:00
Dan Schaper
f2d7a3d26d Merge branch 'feature/defensiveTweaks' of https://github.com/pi-hole/pi-hole into feature/defensiveTweaks 2016-11-02 09:48:00 -07:00
Dan Schaper
6d415a7384 Merge pull request #894 from diginc/InstallFixes_UnitTests
Unit tests framework and some basic tests
2016-11-02 09:42:20 -07:00
Dan Schaper
0ef8832b04 whitespace 2016-11-02 09:36:30 -07:00
Dan Schaper
e42a037b7d Grep -i instead of cat. 2016-11-02 09:28:00 -07:00
Dan Schaper
fe18d69b65 Grep should start at the beginning of line to make sure it doesn't fire on # beginning lines. 2016-11-02 09:25:32 -07:00
Dan Schaper
a1a9a7fa9e Clarify which DNS entry we are modifying. 2016-11-02 08:52:23 -07:00
Dan Schaper
07029f93e3 Match team convention in naming. 2016-11-02 08:34:56 -07:00
Dan Schaper
e99ef9c093 Cap the variables and echo out the proper environment. 2016-11-02 08:22:45 -07:00
Dan Schaper
fef9ab674e Pi-hole CORE installer variables are being changed to standardize scripts. 2016-11-02 07:53:02 -07:00
Adam Warner
ee37c37cab fix update output logic. version number variables should not be read only! 2016-11-02 14:29:20 +00:00
Dan Schaper
b636c1e1f8 Whitespace. 2016-11-02 07:00:43 -07:00
Dan Schaper
8b9f0487c0 Merge branch 'feature/defensiveTweaks' of https://github.com/pi-hole/pi-hole into feature/defensiveTweaks
# Conflicts:
#	advanced/Scripts/update.sh
#	automated install/basic-install.sh
2016-11-02 06:57:33 -07:00
Adam Warner
a6cbd5a2fd Merge pull request #895 from pi-hole/Feature/defensiveTweaks
Further tweaks to local repo handling
2016-11-02 13:42:24 +00:00
Dan Schaper
ece1667fb0 Refactor and move some bits. 2016-11-02 06:41:51 -07:00
Adam Warner
50bd8b4a09 Further tweaks to local repo handling 2016-11-02 13:34:57 +00:00
Dan Schaper
93d91353a1 All tabs now spaced 2016-11-02 05:49:33 -07:00
Dan Schaper
8dc9143b34 Just delete, no need to cd there first. 2016-11-02 05:45:29 -07:00
Dan Schaper
a0d9a1133c Factoring and combining functions 2016-11-02 05:34:39 -07:00
Dan Schaper
7740e4268c Consistency and standards basic-install start. 2016-11-02 05:17:28 -07:00
Adam Warner
f36e4ba336 Cherry picking 3f049fa79, conflict fix 2016-11-02 04:34:02 -07:00
Adam Warner
3df2ef8587 Cherry picking f6f6f6d, conflict fix 2016-11-02 04:31:28 -07:00
Adam Warner
354309fcad set QUERY_LOGGING default to true 2016-11-02 04:28:58 -07:00
Dan Schaper
e832bfc61e Merge branch 'feature/defensiveTweaks' of github.com:pi-hole/pi-hole into feature/defensiveTweaks 2016-11-02 04:22:29 -07:00
Adam Warner
99057ed859 Update var names from setupVars.conf in gravity.sh 2016-11-02 04:21:54 -07:00
Adam Warner
c47c5e466f consistency 2016-11-02 04:18:52 -07:00
Adam Warner
edd00e8e70 consistency 2016-11-02 04:12:37 -07:00
Adam Warner
82e7de2aaa Account for variable name changes 2016-11-02 04:12:21 -07:00
Adam Warner
b723714c0c Convention : https://google.github.io/styleguide/shell.xml?showone=Constants_and_Environment_Variable_Names#Constants_and_Environment_Variable_Names 2016-11-02 04:12:06 -07:00
Adam Warner
a2903b6e63 Consistency 2016-11-02 04:11:54 -07:00
Dan Schaper
9a1876571b Prototype whiptails so they don't fall to shell. Need to do this to all functions. 2016-11-02 04:11:41 -07:00
Dan Schaper
c07d7165ab Global variables CAP'ed 2016-11-02 04:11:27 -07:00
Dan Schaper
d695c5972f local variables just to be safe and make sure they stay in this function. 2016-11-02 04:11:09 -07:00
Dan Schaper
bbc09ed313 Swap variable names. 2016-11-02 04:10:57 -07:00
Promofaux
1d21b0da9a enable or disable logging from pihole command 2016-11-02 04:10:43 -07:00
Promofaux
617a147706 Wording adjustment 2016-11-02 04:10:29 -07:00
Promofaux
d4dccfdb2d Cherry pick 229439c 2016-11-02 04:08:53 -07:00
Dan Schaper
035e4bf727 Move value checks to if calls. 2016-11-02 03:55:04 -07:00
Dan Schaper
9ec5bbd560 Actually get is_repo to return a value and have it expected. 2016-11-02 03:38:35 -07:00
Dan Schaper
34482c5ed6 Modified is_repo 2016-11-02 03:09:59 -07:00
Dan Schaper
7d414b5628 Move version messages to main function, check for repos. 2016-11-02 01:12:02 -07:00
Dan Schaper
d9528dfd09 Bash is funny with returns. 2016-11-02 00:51:38 -07:00
Dan Schaper
12f5f8ba00 Begin to bring code up to Pi-hole conventions. Block installScripts and begin factoring out redundant code. 2016-11-02 00:14:25 -07:00
Dan Schaper
db0f3307e0 Only take out scripts in the directory, don't remove the directory as a whole. Need this for the future installs. 2016-11-01 22:48:30 -07:00
Dan Schaper
9c83825cb8 Merge branch 'feature/defensiveTweaks' of https://github.com/pi-hole/pi-hole into feature/defensiveTweaks 2016-11-01 22:20:32 -07:00
Dan Schaper
7a22471787 New naming convention, and reorder functions as bash would prefer them to be. 2016-11-01 22:19:40 -07:00
diginc
7548d9a8fe point shellcheck at update.sh instead 2016-11-01 23:56:46 -05:00
diginc
26789f9b36 add travis and python requirements 2016-11-01 23:53:11 -05:00
diginc
b4524839bb Merge branch 'development' of https://github.com/pi-hole/pi-hole into InstallFixes_UnitTests 2016-11-01 23:52:20 -05:00
Dan Schaper
6605c269cf Merge pull request #893 from diginc/feature/defensiveTweaks
Feature/defensive tweaks tweaks
2016-11-01 21:35:20 -07:00
diginc
c30478bf4a cleanup and use sentintel in is_repo 2016-11-01 23:21:50 -05:00
diginc
d986746ef9 missing quote added 2016-11-01 23:07:20 -05:00
diginc
a8fa061f2e quote all the assignments prevent accidental glob splitting 2016-11-01 23:02:06 -05:00
diginc
72015b0226 reduce complexity and un needed cat 2016-11-01 23:00:14 -05:00
Jacob Salmela
f8e9726922 source setupVars and check for the correct variable 2016-11-01 19:01:48 -05:00
Jacob Salmela
884363bd05 remove ipv6 check since it's already in setupVars 2016-11-01 19:01:28 -05:00
Dan Schaper
bdd240ecb6 Shellcheck catch for always true expansion. 2016-11-01 15:36:27 -07:00
Dan Schaper
04da292df9 Missed one spinner, updated and exit script if github is unreachable. 2016-11-01 12:17:38 -07:00
Dan Schaper
85b8676b8e Remove spinner, no functions here should last that long, and it masks a few potential exit avenues. 2016-11-01 12:16:46 -07:00
Dan Schaper
114bc13c23 Specify path, cron may not know where the files are located. 2016-11-01 12:03:26 -07:00
Dan Schaper
5fef5f1ed4 Break down is_repo to make sure it does what is expected. 2016-11-01 11:54:14 -07:00
Dan Schaper
807b60b0e6 Missed the second reinstaller.... 2016-11-01 11:44:16 -07:00
Dan Schaper
fbc800e556 If unattened reinstall fails, notify user and exit script immediately. 2016-11-01 11:42:18 -07:00
Dan Schaper
1991ee7a7d Google Style Guide. readonly and cap constants. 2016-11-01 11:36:44 -07:00
Dan Schaper
ffbfadbccf Detail what the script does. 2016-11-01 11:33:04 -07:00
Dan Schaper
c3e2bce956 Variables declared as strings, make sure they are strings when we use them in functions. 2016-11-01 11:26:57 -07:00
Dan Schaper
0c9520d7e3 Protect against unexepcted return values (GitHub not responding as we'd expect.) And make sure bash doesn't maul the variables and cause firing of unattended reinstall of application when values returned aren't as expected. 2016-11-01 11:18:41 -07:00
Dan Schaper
1e7e5230cc Clarify what exactly is being called and the expected returned value format 2016-11-01 11:15:21 -07:00
Dan Schaper
f1efc97357 Clairfy condition to make sure they operate as per the specs of the logic flow layout. 2016-11-01 11:04:33 -07:00
Eric Warnke
fb5ac6d6d7 We should prefer the php metapackage if it's there, falling back on php5 if it's not 2016-10-31 21:31:13 -04:00
Eric Warnke
4e7ca51beb Added dependancy for ping and lsof used in debug scripts 2016-10-31 21:24:57 -04:00
Adam Warner
d561600a31 Merge pull request #863 from brontide/wheezy_fix2
[Test] Wheezy install fix by selecting appropriate deps, made the php check …
2016-10-31 22:35:46 +00:00
Adam Warner
024e843998 Merge pull request #884 from pi-hole/PromoFaux-patch-2
Update pullapprove into master
2016-10-30 17:17:53 +00:00
Adam Warner
126f275e18 Update pullapprove into master
Requires approval of ALL members of the `admin` team.
2016-10-30 17:15:35 +00:00
Dan Schaper
c65e5ff8e0 Merge pull request #882 from pi-hole/feature/DiscourseREADME
Feature/discourse readme
2016-10-30 08:05:48 -07:00
Dan Schaper
ef13e67572 Update README.md 2016-10-30 07:11:34 -07:00
Dan Schaper
7920fcbb5e Add linux.die.net links
Add links for online manpages.
2016-10-30 07:09:03 -07:00
Dan Schaper
fa36fdeb03 Update README
Add discourse links, remove last of Optimal, bring Other Devices up to the top, update alternate install instructions.
2016-10-30 07:06:27 -07:00
Adam Warner
c143b5ccb4 Merge pull request #881 from pi-hole/feature/doc-update
Update last modified date for adlist
2016-10-30 14:04:30 +00:00
Dan Schaper
05c8406fca Update last modified date for adlist 2016-10-30 06:37:36 -07:00
Dan Schaper
69e3a45083 Merge pull request #874 from pi-hole/development
Next release 2.9.5
2016-10-29 17:01:51 -07:00
Dan Schaper
45259b6ec6 Merge branch 'master' into development 2016-10-29 16:59:02 -07:00
Adam Warner
d6fe48112c Merge pull request #857 from pi-hole/feature/debugUpdate
Debug Updates
2016-10-29 23:15:07 +01:00
Dan Schaper
dcf6e6b14d Clarify user action required to end the scripts. 2016-10-29 12:24:22 -07:00
Dan Schaper
908697a963 User token instructions, and small bugfix for missing separator. 2016-10-29 12:04:18 -07:00
Dan Schaper
bdaf961196 Merge pull request #876 from brontide/list_fix
[bug] Grep was leaking a file not found if blacklist didn't exist
2016-10-29 07:15:22 -07:00
Dan Schaper
6bd5d9b1a4 Merge pull request #879 from pi-hole/PromoFaux-patch-2
Update README.md
2016-10-29 07:13:26 -07:00
Adam Warner
beb0dae5a7 Update README.md
Add code climate badge
2016-10-29 14:46:09 +01:00
Dan Schaper
fad2d6b1d1 Return values start showin up now. Logic operators too... 2016-10-28 15:53:18 -07:00
Dan Schaper
9cd830b6aa Start to refine tests and clean up code. 2016-10-28 15:37:45 -07:00
Dan Schaper
d9a16b0ff4 Clear up bottom half of script with fewer redundenicies. 2016-10-28 15:25:06 -07:00
Dan Schaper
cb5c94ef5e Sorry, left that gravity.list parser in. Big debug files. Cleared that up. 2016-10-28 15:13:04 -07:00
Dan Schaper
85fbd66871 Good commit point, number of changes 2016-10-28 14:52:08 -07:00
Eric Warnke
3da75d6125 Grep was leaking a file not found if blacklist didn't exist 2016-10-28 17:28:04 -04:00
Dan Schaper
d4a3a5c180 Trying to implement The Brontide Idiom for design. 2016-10-28 10:42:30 -07:00
Eric Warnke
65e0fcbf10 Merge branch 'development' of https://github.com/pi-hole/pi-hole into wheezy_fix2 2016-10-28 13:14:00 -04:00
Dan Schaper
e22aca49c8 Merge pull request #813 from das7pad/development
Create missing directory for lighttpd
2016-10-28 10:05:08 -07:00
Dan Schaper
71e3a473d6 Fix = underbar 2016-10-28 07:16:16 -07:00
Dan Schaper
c2cfc09f63 Clean up more of the UX and log. Lots to go. 2016-10-28 07:06:05 -07:00
Dan Schaper
cbfad28f7e Merge pull request #873 from pi-hole/PromoFaux-patch-2
Create .codeclimate.yml
2016-10-28 07:04:53 -07:00
Adam Warner
6a4a468022 Create .codeclimate.yml 2016-10-28 15:02:03 +01:00
Dan Schaper
01f10b56e8 Refactor out some more reudndant code. 2016-10-28 06:51:30 -07:00
Dan Schaper
90ec0a610e Tricorder is introduced. 2016-10-28 04:42:45 -07:00
Dan Schaper
42bff1ce1b Move parse utility to be near other parsing functions. 2016-10-28 03:53:53 -07:00
Dan Schaper
e3c7a1f31f Top half user output updated. 2016-10-28 03:49:03 -07:00
Dan Schaper
0debbffa70 Add a couple of parsing utility functions. 2016-10-28 03:45:07 -07:00
Jacob Salmela
473b58d26d Merge pull request #704 from stonedbovines/development
lighttpd.conf templates change
2016-10-27 20:22:46 -05:00
Adam Warner
7e9498f04c Merge pull request #869 from pi-hole/feature/listen-address-1
Remove `listen-address` directive
2016-10-27 19:59:58 +01:00
Dan Schaper
300001e766 Remove listen-address directive
Since we declare an `interface` `dnsmasq` should ignore the `listen-address` directive thus making redundant. Removed.
2016-10-27 11:56:16 -07:00
Adam Warner
21fc6344bf Merge pull request #849 from pi-hole/aManHasNoNameResolution
[BugFix] A man has no name resolution
2016-10-27 19:41:07 +01:00
Adam Warner
a38edd891f Merge pull request #867 from pi-hole/gravTweaks
No need to reference script that does not exist...
2016-10-27 18:09:28 +01:00
Promofaux
794fa21137 install uninstall.sh... 2016-10-27 12:44:21 +01:00
Eric Warnke
977d1d1998 Merge branch 'development' of https://github.com/pi-hole/pi-hole into wheezy_fix2 2016-10-27 07:37:40 -04:00
Promofaux
cde003bc98 \ all the /s! 2016-10-27 11:13:00 +01:00
Promofaux
9e4e1d1cb2 improve comments 2016-10-27 11:09:24 +01:00
Promofaux
60142cd960 remove reference to whitelist.sh (no longer exists) replace with pihole -w 2016-10-27 11:06:11 +01:00
Dan Schaper
f9570a82cc Remove glitchy daemon detection. 2016-10-27 00:58:24 -07:00
Dan Schaper
36285ead57 Just becuase this is bugging me, but I'll fix it later. 2016-10-27 00:32:18 -07:00
Dan Schaper
13e488dace Daemon check for lighttpd and dnsmasq. 2016-10-27 00:30:51 -07:00
Dan Schaper
f169da8fd0 Set for quiet temporarily. 2016-10-26 14:48:11 -07:00
Dan Schaper
60741298b7 Cut more verbosity. Prep for lsof parsing and daemon tests. 2016-10-26 14:33:47 -07:00
Dan Schaper
f73734acb0 Only check IPv6 Gateway if it exists. 2016-10-26 13:57:57 -07:00
Dan Schaper
fc360abe43 Only check IPv6 if system is enabled. 2016-10-26 12:22:20 -07:00
Adam Warner
3996e11425 Merge pull request #859 from pi-hole/ImproveWhitelistBlacklist
Improvements to White and Blacklists
2016-10-26 19:52:16 +01:00
Eric Warnke
3a4fe3e391 Wheezy install fix by selecting appropriate deps, made the php check the same 2016-10-26 14:47:29 -04:00
Dan Schaper
98db002770 Tighten IP test reponse to user. 2016-10-26 11:38:19 -07:00
Dan Schaper
7c89b6934a Merge pull request #860 from brontide/screen_detection
Screen detection, sane minimums for whiptail dailogs
2016-10-26 11:06:43 -07:00
Adam Warner
380a19274d Merge pull request #861 from brontide/lighttpd_bug2526_fix
[test] fix known bug with older lighttpd syntax
2016-10-26 19:04:20 +01:00
Eric Warnke
f1c1caf7bd url.rewrite does not work in $HTTP block lighttpd bug #2526 2016-10-26 11:49:42 -04:00
Eric Warnke
e2997b8135 Due to lighttpd bug 2526 the url.rewrite for javascript must be placed
outside of the $HTTP block or it will never evaluate.
2016-10-26 11:49:31 -04:00
Eric Warnke
4ed6e4d016 Tiny screens get sane minimums 2016-10-26 11:15:02 -04:00
Eric Warnke
ac8d24a1ce Even with no detected screen size, it should presume 80x24 2016-10-26 11:14:54 -04:00
Eric Warnke
fc776921d5 stty is more compatible and does not require any additional dependancies for busybox 2016-10-26 11:14:46 -04:00
Adam Warner
55a653aca4 clear out /opt/pihole folder before installing scripts 2016-10-26 10:00:00 +01:00
Adam Warner
0d6a6b97f9 remove whitelist and blacklist scripts 2016-10-26 09:56:45 +01:00
Adam Warner
469ff45f01 create list.sh. Combines whitelist and blacklist scripts in an effort to reduce code duplication.
update pihole script to reflect new white/blacklist command.
2016-10-26 09:36:02 +01:00
Dan Schaper
bc077acfb8 Merge pull request #853 from pi-hole/gravFix
Gravity fix
2016-10-25 21:57:47 -07:00
Dan Schaper
4269626f5d Attribute source for bashism. 2016-10-25 21:53:41 -07:00
Dan Schaper
8fa897aadb Add back in sourcing files (setupVars.conf) and tweak ip_check 2016-10-25 21:39:28 -07:00
Dan Schaper
f549618d12 Move environment IPv6 interface check to ip_check and fix IPv6 source routing issue. 2016-10-25 21:25:57 -07:00
Dan Schaper
2fa47aaf31 Source routing is deprecated by RFC5095 2016-10-25 20:53:18 -07:00
Dan Schaper
b0874fb23a Temporarily get rid of gateway sourcing from setupVars, temporarily. 2016-10-25 19:53:00 -07:00
Dan Schaper
fb70fd77e8 Prototype version_check, add helper functions for logging and echo. 2016-10-25 17:50:14 -07:00
Dan Schaper
01f17f9cbb Reduce header verbosity. New header writer. 2016-10-25 17:19:33 -07:00
Promofaux
4c853defb2 add if traps to check for existence of whitelist.txt / blacklist.txt 2016-10-25 22:27:35 +01:00
Adam Warner
bd0db56ba0 actually fix up logic 2016-10-25 15:29:02 +01:00
Adam Warner
95f0b3710d fix up logic 2016-10-25 15:27:13 +01:00
Adam Warner
e0ac109dd1 remove hostname insertion into gravity.list from gravity.sh 2016-10-25 15:07:29 +01:00
Adam Warner
86349527e7 replace HOSTNAME tokens in 01-pihole.conf 2016-10-25 15:06:37 +01:00
Adam Warner
18005ceee8 add hostname lines in 01-pihole.conf 2016-10-25 15:03:49 +01:00
Adam Warner
7653b3d088 Remove pi.hole references in gravity.sh 2016-10-25 15:01:16 +01:00
Adam Warner
911053f63f Replace IPv4 and IPv6 tokens in 01-pihole.conf for pi.hole resolution. 2016-10-25 15:00:18 +01:00
Adam Warner
eb52f81a5c add pi.hole entries to 01-pihole.conf 2016-10-25 14:54:10 +01:00
Adam Warner
4839953328 Merge pull request #844 from pi-hole/EnforceTemplate
Update ISSUE_TEMPLATE.md
2016-10-25 17:57:06 +06:00
Adam Warner
aba0d93fda Merge pull request #814 from pi-hole/promoTweaksTheSecond
Various tweaks and fixes: Part 2 (Plus Pause/Resume button functionality!)
2016-10-25 17:43:40 +06:00
Adam Warner
0de74c0448 Merge pull request #848 from pi-hole/PromoFaux-patch-1
Update .pullapprove.yml
2016-10-25 17:38:04 +06:00
Adam Warner
ee927346b7 Update .pullapprove.yml
Update to V2. Only require 2 approvers on development, and 3 on master
2016-10-25 12:36:05 +01:00
Dan Schaper
2f8015cbca Update PULL_REQUEST_TEMPLATE.md 2016-10-24 14:50:47 -07:00
Dan Schaper
f3bf7c4b38 Update ISSUE_TEMPLATE.md 2016-10-24 14:48:38 -07:00
Adam Warner
e37c4d57da Merge pull request #842 from pi-hole/Fix/template-spacing
fix check box spacing
2016-10-25 02:32:34 +06:00
Jacob Salmela
acff90c000 fix check box spacing
I have seen several issues/PRs with the extra space.  removing the
extra whitespace might help to keep the formatting when being submitted.
2016-10-24 14:58:13 -05:00
Adam Warner
5f9e72dd71 Merge pull request #835 from pi-hole/debugFixes
Debug script tweaks.
2016-10-24 19:40:27 +06:00
Adam Warner
be0bcb8f7d Merge pull request #838 from airencracken/hotfix-missing-newline
Fix missing newline
2016-10-24 15:48:53 +06:00
Adam Warner
44c3d56439 Merge pull request #836 from pi-hole/UdemyAttribution
Udemy attribution
2016-10-24 13:54:14 +06:00
Marcus Hildum
519d731ddd Fix missing newline
My mistake
2016-10-23 16:45:51 -07:00
Dan Schaper
119c00c22a Merge pull request #837 from pi-hole/UdemyAttribution-1
Update PULL_REQUEST_TEMPLATE.md
2016-10-23 15:53:27 -07:00
Dan Schaper
12596dd697 Update PULL_REQUEST_TEMPLATE.md 2016-10-23 15:50:59 -07:00
Dan Schaper
cb38f5f0d7 Move attribution to bottom since our bots quote from top
Bot's keeps quoting the attribution line in snippets (Discourse, GitLab, Mattermost)
2016-10-23 15:50:03 -07:00
Promofaux
b49384ffe4 intent 2016-10-23 22:44:21 +01:00
Promofaux
7fb622638b flip reload logic. Do not reload if there are not changes made to blacklist.txt 2016-10-23 22:44:06 +01:00
Promofaux
bd0cc134bf MERGE FAIL :ashamed_face: 2016-10-23 22:43:11 +01:00
Promofaux
476fd1f695 indentation 2016-10-23 22:38:18 +01:00
Promofaux
96053d13be Flip reload logic. Do not reload lists if no changes made to whitelist.txt 2016-10-23 22:38:06 +01:00
Promofaux
c958bed418 Consistency changes. Replace MOST uses of echo >> ${DebugLog} with usage of log_write function 2016-10-23 22:31:20 +01:00
Promofaux
2b2c240d39 Fix shebang line broken in #831
Remove root check and references to ${SUDO}

Check for /etc/pihole/setupVars.conf and use piholeInterace in IPv6 checks as suggest by @jacobsalmela https://github.com/pi-hole/pi-hole/pull/831#issuecomment-255606854
2016-10-23 22:15:10 +01:00
Adam Warner
1f0ae16216 Merge pull request #831 from airencracken/development
Consistent Style in Bash
2016-10-23 20:03:30 +01:00
Promofaux
b79392ba2c exit after displaying white/blacklist 2016-10-23 19:49:51 +01:00
Promofaux
8ee98f0a4a remove a space 2016-10-23 19:47:31 +01:00
Promofaux
82e78fb651 Add output to pihole disable and pihole enable 2016-10-23 19:44:40 +01:00
Promofaux
d0826b2c33 Merge branch 'development' of https://github.com/airencracken/pi-hole into airencracken-dev 2016-10-23 19:33:28 +01:00
Promofaux
ff588200c0 Merge branch 'promoTweaksTheSecond' of https://github.com/pi-hole/pi-hole into promoTweaksTheSecond 2016-10-23 19:11:36 +01:00
Marcus Hildum
5d6072524c Consistency
Missed one
2016-10-22 10:26:00 -07:00
Marcus Hildum
07a66a70fc Consistency
More of the same
2016-10-22 10:12:05 -07:00
Marcus Hildum
69ba8a3c2f Consistency
Again trying to move the repo to one style. Doesn't matter if it's
changed afterwards, but one style instead of about five seems
saner.
2016-10-22 10:01:15 -07:00
Marcus Hildum
a30c75ef71 Consistency
Cleanup!
2016-10-22 00:35:44 -07:00
Marcus Hildum
d0b3727c5d Consistency
Yet more cleanup
2016-10-22 00:32:36 -07:00
Marcus Hildum
6e94bf5b6d Consistency
You know the drill
2016-10-22 00:14:38 -07:00
Marcus Hildum
0f04e270a7 consistency
Just more cleanup
2016-10-22 00:10:25 -07:00
Marcus Hildum
ec4f5007e7 remove bad { 2016-10-21 23:59:31 -07:00
Marcus Hildum
21b906e0e0 Consistency
More of the same
2016-10-21 23:57:47 -07:00
Marcus Hildum
7ebaf8e843 Consistency
Now with block indents!
2016-10-21 23:23:31 -07:00
Marcus Hildum
640398ced4 Consistency
We went with tabs earlier, may as well make that the "standard".
Easy enough to switch to spaces too if that's desired with expand(1)
2016-10-21 23:17:14 -07:00
Marcus Hildum
ebbe1fc236 More consistency
Odd mix of variables quoted with and without no-op parameter expansion

(i.e. ${thing})

More ${thing} than not, make that the standard
2016-10-21 23:11:17 -07:00
Marcus Hildum
aac8e45397 Imbue gravity.sh with some consistency
Mish-mash of tabs and spaces used for indentation. Mostly tabs though,
so going with those. Also indenting blocks and enforcing the

loop statement; do
done

style over the newline for do since it seemed to be more common.
2016-10-21 23:02:45 -07:00
Marcus Hildum
5ebfa5ecf7 heredoc for helpfunc in pihole 2016-10-21 22:53:04 -07:00
Marcus Hildum
12e041c9ef Merge remote-tracking branch 'upstream/development' into development 2016-10-21 22:49:21 -07:00
Marcus Hildum
54913f06a3 Merge remote-tracking branch 'upstream/master' into development 2016-10-21 22:49:13 -07:00
Adam Warner
44a36368a2 Merge pull request #822 from pi-hole/ChangeWarning
Add file change warning to header
2016-10-21 11:24:12 +01:00
Adam Warner
8f9ff930b3 Merge pull request #823 from tuplink/EnableOrDisable
Enable or disable
2016-10-21 11:02:10 +01:00
tuplink
e199f6db87 spelling updates 2016-10-20 21:15:11 -04:00
tuplink
c83dd3ccd7 change spacing 2016-10-20 18:45:27 -04:00
tuplink
78fbafa1cd test out new status logic 2016-10-20 18:40:03 -04:00
Promofaux
c0012540ed Re-add shebang 2016-10-20 21:08:07 +01:00
Promofaux
9ab6df0e54 Merge branch 'development' into promoTweaksTheSecond
# Conflicts:
#	advanced/Scripts/blacklist.sh
#	advanced/Scripts/whitelist.sh
2016-10-20 21:06:28 +01:00
Tommy Huff
685b775b68 rework status if statments 2016-10-20 11:24:34 -04:00
Tommy Huff
9056a5a7b6 fix spelling / replace tabs with spaces in help 2016-10-20 11:05:49 -04:00
Tommy Huff
e1c56bcbfe remove a commit in whitelist 2016-10-20 10:19:03 -04:00
Tommy Huff
15d68467a1 attempt to fix 2016-10-20 10:12:02 -04:00
Tommy Huff
3b6ecc573e fix conflict
Merge remote-tracking branch 'upstream/promoTweaksTheSecond' into EnableOrDisable
2016-10-20 10:09:23 -04:00
Tommy Huff
9427b1e594 Merge branch 'promoTweaksTheSecond' into EnableOrDisable 2016-10-20 09:55:22 -04:00
Tommy Huff
3ca3eaa62c change restartdnsmasq to restartdns 2016-10-20 09:40:45 -04:00
Tommy Huff
dda448e050 use finction in pihole to restart dnsmasq 2016-10-20 09:15:03 -04:00
Tommy Huff
60873144ea make last line of script return a new line been bugging me for awhile 2016-10-20 09:09:35 -04:00
Tommy Huff
a9d17c96be include status at end of gravity so if it is disabled you will see it when running 2016-10-20 09:03:20 -04:00
Tommy Huff
aaee895b2b add pihole status web option to return 1 or 0 for easy use with php 2016-10-20 08:58:36 -04:00
Tommy Huff
7d7e17b351 add toggle to enable or disable pi-hole 2016-10-20 08:45:20 -04:00
Adam Warner
c71a976e76 kill off an old ugly hack 2016-10-20 13:37:07 +01:00
Adam Warner
3623183072 Remove reference to non-existent script 2016-10-20 13:29:12 +01:00
Dan Schaper
e6bd979aeb Can't spell
Fix spelling error
2016-10-20 04:27:12 -07:00
Adam Warner
266c160108 Merge pull request #818 from airencracken/development
Standardize function declaration
2016-10-20 12:01:41 +01:00
Dan Schaper
b5b6350cc7 Add file change warning to header 2016-10-20 03:42:25 -07:00
tuplink
bbcf4800de use pihole instead of direct path 2016-10-20 06:30:48 -04:00
tuplink
41056ace02 use pihole instead of direct path 2016-10-20 06:29:53 -04:00
Dan Schaper
60a80dd678 Merge pull request #819 from pi-hole/adlistremoval
Remove problem list, sends in Unicode - Not adware
2016-10-20 02:41:22 -07:00
Marcus Hildum
0efda04920 Use heredocs instead of multiple calls to echo
There were a lot of places (like in help functions) that used multiple
echo calls instead of heredocs. Personal opinion but this seems cleaner.
2016-10-19 20:46:37 -07:00
Dan Schaper
8819e58882 Remove problem list, sends in Unicode - Not adware
Fixes #816
2016-10-19 20:15:36 -07:00
Marcus Hildum
28eeaf201b Standardize function declaration
There were no fewer than three styles of function declaration going
on in these files, so I attempted to standardize them to the typical

myfucn() {
}

style.
2016-10-19 19:47:45 -07:00
tuplink
74bfcea6a8 add blacklistScript var 2016-10-19 22:00:03 -04:00
tuplink
16f1d7fad9 Blacklist unwhitelisted 2016-10-19 21:50:34 -04:00
Promofaux
9aa38cf0ae mv patternbuffer instead of cp, then no need to clean up 2016-10-19 23:57:43 +01:00
Promofaux
a7fa7466fb remove no longer needed code 2016-10-19 23:54:43 +01:00
Promofaux
3f73c61cee cache event horizon before white/blacklists are applied for quicker processing on white/blacklist calls of gravity 2016-10-19 23:52:54 +01:00
Promofaux
a64f4cd871 whitelist script now only directly edits whitelist.txt. DOES NOT TOUCH HOST FILE, instead calls gravity with a no download argument 2016-10-19 23:17:20 +01:00
Promofaux
a41eff1276 Blacklist script now only directly edits blacklist.txt. DOES NOT TOUCH HOST FILE, instead calls gravity with a no download argument 2016-10-19 23:16:52 +01:00
Promofaux
b88fe572fe Whitelist/Blacklist domains directly in the Event Horizon. 2016-10-19 23:15:05 +01:00
Promofaux
59ba6f8aec add flag to skip download of lists 2016-10-19 22:06:19 +01:00
Promofaux
25343da6b7 wrong variable name 2016-10-19 20:03:29 +01:00
Promofaux
60d17b97f5 spacing 2016-10-19 19:51:32 +01:00
Promofaux
8cb72d87e4 make IPv4/IPv6 checking more robust in gravity 2016-10-19 19:50:21 +01:00
Jakob Ackermann
8872594ab9 create upload dir for lighttpd
directory is missing in the installation process but is used in the
lighttpd.conf
2016-10-19 14:27:17 +02:00
Jakob Ackermann
b50584119b Merge remote-tracking branch 'refs/remotes/pi-hole/development' into development 2016-10-19 14:24:02 +02:00
Jakob Ackermann
975f4f2a17 Merge remote-tracking branch 'refs/remotes/pi-hole/development' into development 2016-10-19 14:15:06 +02:00
Dan Schaper
16e4f79f09 Merge pull request #809 from pi-hole/PromoTweaks
Promo tweaks
2016-10-18 17:37:52 -07:00
Adam Warner
76cae20c33 Merge pull request #803 from pi-hole/attributes
Create .gitattributes
2016-10-18 19:51:44 +01:00
Adam Warner
b66f23cfd0 account for new update script 2016-10-18 14:19:44 +01:00
Adam Warner
27d6e5d8cf Complete overhaul of update logic. Moved to seperate script 2016-10-18 14:19:25 +01:00
Adam Warner
ff5d5b97c3 stash any changes in local repo 2016-10-18 13:54:09 +01:00
Adam Warner
ce46c4dec4 remove prematurely added code 2016-10-18 12:11:02 +01:00
Adam Warner
77e8be09a1 handle passing arguments to version script 2016-10-18 12:07:42 +01:00
Adam Warner
013d77488a complete overhaul of version script. Now with optional arguments! 2016-10-18 12:07:11 +01:00
Adam Warner
29ad2496b6 don't output "elevating with sudo" in pihole script, just do it. 2016-10-18 12:05:48 +01:00
Adam Warner
97a013b2b7 Add direction to change upstream servers in setupVars.conf 2016-10-18 10:35:22 +01:00
Adam Warner
77808223dc remove stock comments from 01-pihole.conf and add warning to the top 2016-10-18 10:05:10 +01:00
Jacob Salmela
fc89851ce9 Merge pull request #805 from pi-hole/development
Hotfix for installer bug, MASTER
2016-10-17 22:41:02 -05:00
Dan Schaper
c4c6555814 Merge branch 'master' into development 2016-10-17 19:57:05 -07:00
Dan Schaper
df0087fb23 Merge pull request #804 from pi-hole/hotfix/curlRefire
Refire with curl
2016-10-17 19:27:46 -07:00
Dan Schaper
ef3c13fe2b Refire with curl 2016-10-17 19:22:56 -07:00
Dan Schaper
0ad704e532 Update .gitattributes 2016-10-17 18:31:06 -07:00
Dan Schaper
2220d2dab8 Create .gitattributes 2016-10-17 18:28:38 -07:00
Promofaux
49f48e2aaa wrong word. #admincrimes 2016-10-17 22:24:59 +01:00
Adam Warner
dce24df379 Merge pull request #794 from pi-hole/development
[RELEASE] v2.9.3
2016-10-17 15:45:21 +01:00
Adam Warner
b59136c262 Merge pull request #800 from bcambl/ifcfg_backup
fix typo
2016-10-16 22:15:39 +01:00
bcambl
fb9664b636 fix typo 2016-10-16 15:11:47 -06:00
Adam Warner
5b736ae05e Merge pull request #799 from bcambl/ifcfg_backup
use an excluded extension for ifcfg backup
2016-10-16 20:50:54 +01:00
bcambl
ee114b3075 use an excluded extension for ifcfg backup 2016-10-16 13:28:14 -06:00
Adam Warner
123b16991b Merge pull request #798 from pi-hole/dnsmasqrestartchange
Some bug fixes before release
2016-10-16 17:25:30 +01:00
Promofaux
5792fc0bef change wording depending on choice 2016-10-16 17:23:26 +01:00
Promofaux
42c93917ef bug I forgot to fix before piholeUpdate was merged to development 2016-10-16 17:19:44 +01:00
Promofaux
8c0f860601 Use systemctl/service calls instead of killall to restart/reload dnsmasq 2016-10-16 17:16:59 +01:00
Adam Warner
df30a4c0d1 Merge pull request #779 from bcambl/fedora_fixes
Fedora fixes
2016-10-16 15:46:50 +01:00
Adam Warner
9ce13f0035 Merge pull request #790 from pi-hole/piholeUpdate
Various refactoring.
2016-10-15 23:51:07 +01:00
Promofaux
3884b01503 Forgot a 2016-10-15 23:21:13 +01:00
Promofaux
a84c3adeab if uniformity then dan = happy 2016-10-15 23:19:26 +01:00
Promofaux
a65b784907 repeat after me: repetition is a bit repetitive. 2016-10-15 21:26:41 +01:00
Promofaux
05dadad2e1 repair sounds better than refresh 2016-10-15 21:22:46 +01:00
Promofaux
3a9b39b842 adjust text in update_dialogs() whiptail 2016-10-15 21:12:13 +01:00
Promofaux
e612003293 handle arguments better, convert to flags, echo when they're set to true. 2016-10-15 20:52:20 +01:00
Promofaux
a43577fa26 add reconfigure flag to -r command 2016-10-15 20:43:03 +01:00
Promofaux
7e10dcdcf0 update pihole bash-completion 2016-10-15 20:12:16 +01:00
Promofaux
7ee1110351 ugh. pihole.conf. 2016-10-15 20:09:38 +01:00
Promofaux
51c4c51d9e Add trap to check existence of setupVars 2016-10-15 20:03:33 +01:00
Promofaux
fc4fe54099 standardise function naming 2016-10-15 20:02:57 +01:00
Dan Schaper
b5b240d0be Merge pull request #789 from pi-hole/legacy_setupVars
reflect name change of some of the variables in setupVars
2016-10-15 11:41:58 -07:00
Promofaux
4c42f00a86 remove uses of ${SUDO} and root check from gravity. As this is handled by pihole command. 2016-10-15 18:42:53 +01:00
Promofaux
090fbd04af Remove ${SUDO} usages and root checks from scripts called by pihole command as they should not be called directly. 2016-10-15 17:54:04 +01:00
Promofaux
461de48625 function declarations as per basic-install.sh 2016-10-15 17:25:17 +01:00
Promofaux
9352ba6e4a about time we exit 0'd 2016-10-15 17:16:44 +01:00
Promofaux
5e883239f9 remove calls for ${SUDO} as per basic-install.sh. 2016-10-15 17:15:59 +01:00
Promofaux
5ea08a2120 add -r to reconfigure pihole (basically runs basic-install.sh from /etc/.pihole) 2016-10-15 17:07:08 +01:00
Promofaux
a6fa60868b spacing 2016-10-15 15:41:48 +01:00
Promofaux
99878ae7d6 reflect name change of some of the variables in setupVars 2016-10-15 15:40:12 +01:00
bcambl
26202014a2 stdout formatting 2016-10-12 20:35:08 -06:00
bcambl
f4f8b96788 remove systemd selinux rules on init systems
fixes the failing SELinux policy compile on init based systems
2016-10-12 20:35:08 -06:00
bcambl
e5ede16749 update yum/dnf package count grepfu
see pull #774
2016-10-12 20:33:13 -06:00
bcambl
fbe3547129 EPEL is not required on Fedora
epel-release installs the EPEL package repository (Extra Packages for Enterprise Linux)
Dependencies from this repository should available by default on Fedora
2016-10-12 20:26:48 -06:00
Dan Schaper
23f7363c70 Merge pull request #774 from pi-hole/InstallFixes2
InstallFixes2
2016-10-12 11:47:15 -07:00
diginc
97c44042e1 Adding failing shellcheck test and results
Should be useful for showing others why other changes were made in the next commit.
2016-10-10 23:28:34 -05:00
diginc
a03caea549 setupVar tests passing for debian & centos 2016-10-10 23:14:39 -05:00
Promofaux
aa23fb1d56 choose* 2016-10-10 22:34:12 +01:00
Promofaux
4f35aac6dd transpose $ and " 2016-10-10 22:32:30 +01:00
Dan Schaper
4418ca9e9f Missing quote replacement. 2016-10-10 11:41:29 -07:00
Dan Schaper
570611fc09 CentOS Firewall fix 2016-10-10 11:30:15 -07:00
Dan Schaper
94dd5b1ebe More CentOS fixes. 2016-10-10 11:05:29 -07:00
Dan Schaper
74524e024d Always check PIHOLE_dependencies. 2016-10-10 10:36:19 -07:00
Adam Warner
324e00194f Merge pull request #766 from pi-hole/Mcat12-move-contributor
Move contributer file
2016-10-10 17:35:22 +01:00
Dan Schaper
e42b6dcc8e create_pihole_user update @diginc. 2016-10-10 09:21:28 -07:00
Dan Schaper
d71b799e75 More cleanups, localize variables, clean formatting. 2016-10-10 08:23:14 -07:00
Dan Schaper
87e7121332 Gravity.sh checks for null value for variables, obliging that expectation. 2016-10-10 07:32:16 -07:00
Dan Schaper
94f6354c94 Spinner blocks set -e trying to get it in functions that won't crash out... 2016-10-10 07:25:43 -07:00
Dan Schaper
b79059ebdb Start to add the spinner back in! 2016-10-10 06:46:30 -07:00
Dan Schaper
07b7e8a1a6 Track down a couple more variable name changes. 2016-10-10 06:33:56 -07:00
Dan Schaper
7ae2fc37c0 Match up descriptive variable names with setupVars.conf. Rectifies Ubuntu 16.04 gravity.list bug. 2016-10-10 06:23:17 -07:00
Dan Schaper
4f98c1bebb Boolean operators inside quotes don't work well... 2016-10-10 06:16:00 -07:00
Dan Schaper
2feec01e10 Add start_service and enable_service functions to handle restating services and setting services to start on reboot. 2016-10-10 06:06:34 -07:00
Dan Schaper
72b95e192e Fix logic bug in setup_user, update how setupVars are sourced so they will only be used if the user selects update and not if they select install. 2016-10-10 05:45:37 -07:00
Dan Schaper
47aad254d8 localized some more variables 2016-10-10 03:56:03 -07:00
Dan Schaper
bc14074d2a Tighten up Update Whiptail appearance. 2016-10-10 03:39:32 -07:00
Dan Schaper
5ab5b1a190 Overhaul dnsmasq version 3 way handshake configuration files. 2016-10-10 03:23:52 -07:00
Dan Schaper
b055f190f5 Factor out interfaces detection. 2016-10-10 03:16:22 -07:00
Dan Schaper
84b8953352 Remove quiet flags from package managment variables. Set quiets in functions by redirecting output. 2016-10-10 02:58:38 -07:00
Dan Schaper
93a591d487 Linting from ShellCheck 2016-10-10 02:57:04 -07:00
Dan Schaper
e6c0f38a7c Monolithic changes in one commit again. 2016-10-10 02:24:03 -07:00
Dan Schaper
d169305e5d Merge branch 'Fix/installerIssues' into development 2016-10-10 09:08:35 +00:00
Dan Schaper
f107ae4f9b Merge conflict resolution 2016-10-10 09:08:25 +00:00
Dan Schaper
bad7a08804 Refactor and rename create_pihole_user. Now to actually use the user created... 2016-10-10 01:51:19 -07:00
Dan Schaper
25cbf4cb35 Factor out legacy location script removal. 2016-10-10 01:43:10 -07:00
Dan Schaper
7f179f9a58 Remove sourcing bash completion, would fall off as soon as the subshell terminated. 2016-10-10 01:40:56 -07:00
Dan Schaper
5287ea8537 Refactor stopServices into stop_service and accept arguments for service to stop. Quiet output from a few other functions. 2016-10-10 01:25:11 -07:00
Dan Schaper
43e2aaebf0 rename updateDialogs to update_dialogs 2016-10-10 01:04:59 -07:00
Dan Schaper
e60eb66283 UpdateDialogs are now a Whiptail Menu, self-explanatory. 2016-10-10 01:04:03 -07:00
Dan Schaper
ca59b808d8 Git clone/update now occurs right after installer dependency checks. Allows for inclusion of installer source files in the repo. Passes set -e 2016-10-10 00:02:50 -07:00
Dan Schaper
8a15fd44d5 Update is_repo() to use git status for validity checks. 2016-10-09 23:53:18 -07:00
Dan Schaper
dac2b8942e Typo fix to generate commit. 2016-10-09 22:38:00 -07:00
Dan Schaper
54a1c5b63a Revert inadvertent commits
IDLE keeps committing direct to development.
2016-10-09 22:35:14 -07:00
Dan Schaper
61b02bf6d3 Add OR TRUE to PKG_COUNT so that a 0 package to update doesn't grep -c to an exit value of 1. 2016-10-09 22:27:37 -07:00
Dan Schaper
9d048b2fdf Move Pi-hole dependency checks to main() and out of duplicated install and update functions. Bring them up a level in the subshells. 2016-10-09 22:24:13 -07:00
Dan Schaper
d9e28a7422 factor out installer_dependencies 2016-10-09 22:05:06 -07:00
Dan Schaper
1fecdf42ca Move git to installer deps, refactor some functions. 2016-10-09 22:00:23 -07:00
Dan Schaper
d4bf85b67c Self contain package_check into package_check_install. Passes set -e test. 2016-10-09 21:44:45 -07:00
Dan Schaper
7131ff27c3 Attempt to set -e 2016-10-09 21:32:25 -07:00
Dan Schaper
a30f78c1c8 Oneliner php version check, passes set -e check. 2016-10-09 21:31:36 -07:00
Dan Schaper
7e0afffca8 Revert inadvertent commits 2016-10-09 19:41:32 -07:00
Dan Schaper
293c60fb9c Exit script on failure to install dependent package. 2016-10-09 13:52:36 -07:00
Dan Schaper
f5be8b2a5e Single dependency package check function, will exit if any errors with message to update cache. 2016-10-09 13:43:01 -07:00
Dan Schaper
6772603c15 Relocate cache check to its own function 2016-10-09 12:34:53 -07:00
Jacob Salmela
a22904f99b Merge pull request #769 from pi-hole/Fix/PackageCacheFresh
Fix/package cache fresh
2016-10-09 09:00:52 -05:00
Jacob Salmela
6710d2852f Merge pull request #770 from pi-hole/Fix/InstallerWrap
#admincrimes Fix/installer wrap
2016-10-09 08:41:47 -05:00
Dan Schaper
b157bc5cd7 Fixes #768 Check the staleness of the package index instead of the package cache. 2016-10-08 13:47:35 -07:00
Dan Schaper
10e1a03c76 runGravity is called after finalExports in the Debian install side. 2016-10-08 12:58:42 -07:00
Dan Schaper
d20df92e9f Script will now run as root, removed sudo from function calls. 2016-10-08 12:56:26 -07:00
Dan Schaper
44170207ac Add main function and fire script from main call. Prevents script from running before it is entirely downloaded. 2016-10-08 12:17:04 -07:00
Mcat12
9354799a26 Move contributer file
This will make it more visible to a user and fixes the link in the PR template.
2016-10-08 12:06:23 -04:00
Dan Schaper
33745be745 Merge pull request #753 from pi-hole/feature/RemoveBarePHP
Remove bare php package from dependencies
2016-10-07 21:32:07 -07:00
Adam Warner
6a28070017 Too many -s 2016-10-07 13:09:27 +01:00
Dan Schaper
91b948332e Merge pull request #754 from pi-hole/fix/bashConditional
fix/bashConditional
2016-10-07 03:42:22 -07:00
Dan Schaper
d1a7fe2d44 fix/bashConditional 2016-10-07 03:36:34 -07:00
Adam Warner
8224ef20a4 Merge pull request #748 from das7pad/development
add mimetype for .svg
2016-10-07 10:52:02 +01:00
Dan Schaper
a4c3464bc8 Merge pull request #749 from pi-hole/feature/installMethod
Change installScripts to use install
2016-10-07 02:51:33 -07:00
Adam Warner
5966d76e9a Merge pull request #729 from pi-hole/development
Pi-hole version 2.9.2
2016-10-07 10:49:06 +01:00
Dan Schaper
c39324d11f Remove bare php package from dependencies
`php5` package can trigger install of Apache2. Without this package in deps, PHP is still installed and operational.
2016-10-07 00:24:25 -07:00
Dan Schaper
8c151c62ce echo's don't need sudo 2016-10-05 10:46:10 -07:00
Dan Schaper
50d16d8215 Finish install conversion for installScripts() 2016-10-05 10:45:17 -07:00
Dan Schaper
3bbac9a5f2 install pihole 2016-10-05 10:19:47 -07:00
Dan Schaper
3600fd277e Don't need sudo to echo to term. 2016-10-05 10:16:56 -07:00
Dan Schaper
e8bb4a7e36 Continue migration to install 2016-10-05 10:14:36 -07:00
Dan Schaper
36987cb1cc Continue migration to install 2016-10-05 09:57:48 -07:00
Dan Schaper
5382b4fa37 Change installScripts to use install
Use the install program instead of copying files and directories in installScripts function.
2016-10-05 09:42:15 -07:00
Jakob Ackermann
28ef8068c8 add mimetype for .svg
Chrome does not display .svg-images without the correct mimetype
2016-10-05 01:20:30 +02:00
Jacob Salmela
ca0cbd68d6 Merge pull request #743 from pi-hole/whatDuplicates
What duplicates
2016-10-04 08:53:51 -05:00
Promofaux
c281b47905 Mover {SUDO} mkdir -p /etc/pihole/ back to the beginning. 2016-10-02 12:44:33 +01:00
Promofaux
aca5064743 --force seems to light. lets try --i_do_not_follow_recommendations 2016-10-02 11:16:48 +01:00
Promofaux
6f780316c4 remove whiptail dependency from verifyFreeDiskSpace.
Add argument detection to skip disk space. This is because curling to bash does not support waiting for user input.
2016-10-02 11:09:14 +01:00
Promofaux
4e262d81f0 wrap these vars in {} to matcht he rest of the script 2016-10-02 10:39:09 +01:00
Promofaux
6c2ff950ee remote duplicate ${SUDO} mkdir /etc/pihole 2016-10-02 10:33:59 +01:00
Promofaux
7684069d0b verifyFreeDiskSpace BEFORE installing any dependencies 2016-10-02 10:33:04 +01:00
Promofaux
73c85ae68a remove duplicate calls to installConfigs 2016-10-02 10:30:55 +01:00
Dan Schaper
911e39ba09 Merge pull request #726 from pi-hole/DebugUpdate
DebugUpdate
2016-10-01 13:47:15 -07:00
Dan Schaper
9a421d510a Ignore comments in adlists.list section. 2016-10-01 13:16:58 -07:00
Adam Warner
3bc7172e5e Merge pull request #738 from pi-hole/updateFix
Add check at the beginning of update script to check for existence of…
2016-10-01 17:03:31 +01:00
Promofaux
1a83988e26 Add check at the beginning of update script to check for existence of local repos. If not, redirect user to run install command again. 2016-10-01 16:56:03 +01:00
Adam Warner
0d0fc2504a Merge pull request #735 from diginc/patch-1
Update README.md
2016-10-01 04:54:19 +01:00
Adam Hill
0d4402ee0c Update README.md
Updating the old x86 only reference on the link to my docker project.
2016-09-30 17:01:44 -05:00
Adam Warner
722def9362 Merge pull request #734 from pi-hole/phpVerCheckFix
Fix the php version check command (Thanks @diginc!)
2016-09-30 22:48:39 +01:00
Promofaux
6a8bef83b3 Fix the php version check command (Thanks @diginc!) 2016-09-30 22:40:43 +01:00
Dan Schaper
a9c3e2c7ba Add log_write function. Update version_check to use logical conditionals. 2016-09-28 13:09:38 -07:00
Dan Schaper
7fcb40739d Close IF statement 2016-09-28 10:25:37 -07:00
Dan Schaper
5a3d319677 Add fail check to dig local and remote. 2016-09-28 10:24:44 -07:00
Dan Schaper
8466d0b681 Change NSLOOKUP to dig for resolver tests, add dnsmasq specific records check 2016-09-28 10:14:47 -07:00
Dan Schaper
5de179f1eb Remove blacklist comparison. 2016-09-28 09:52:11 -07:00
Dan Schaper
36e10595cc Change netstat to lsof. 2016-09-28 09:51:14 -07:00
Jacob Salmela
78c8723629 Merge pull request #708 from pi-hole/github-templates
Update Github templates
2016-09-27 22:12:36 -05:00
Dan Schaper
edd7f28104 Add internet checks to IP section 2016-09-27 19:39:28 -07:00
Dan Schaper
dba1ab3fc0 Remove compareWhitelist 2016-09-27 19:31:21 -07:00
Dan Schaper
3df9c48012 Include ping statistics in default gateway checks. 2016-09-27 19:30:37 -07:00
Jacob Salmela
6f6450bcff simplify a bit more
Removed a few checkboxes.  I really don't want to deter people from
submitting issue because of a wall of text, but some of this
information we really can use to be more helpful.
2016-09-27 08:23:52 -05:00
Jacob Salmela
1f34203167 Merge pull request #722 from pi-hole/BugFix718
Fix #718
2016-09-27 08:08:42 -05:00
Jacob Salmela
fed20648c6 Merge pull request #727 from pi-hole/BugFix725
Fix 725 and 653
2016-09-27 08:07:34 -05:00
Adam Warner
3fc3c5cae4 Add iproute2 to fix #653 2016-09-27 11:15:46 +01:00
Adam Warner
daa5366b57 Check if php5 is available in apt-cache, if so install it, else just install php 2016-09-27 11:11:47 +01:00
Dan Schaper
ac1c299369 Revert overzealous renaming of Pi-hole in pihole.log detection. 2016-09-26 20:54:05 -07:00
Dan Schaper
5bbb3ac49a Standardize Pi-hole naming. 2016-09-26 20:50:03 -07:00
Dan Schaper
014bdf911a Add open port detection 2016-09-26 20:39:39 -07:00
Dan Schaper
874853fe18 Add lighttpd to version check 2016-09-26 19:23:30 -07:00
Dan Schaper
274b71f8bc Relocate hostname checks 2016-09-26 18:52:12 -07:00
Dan Schaper
c41d543d81 Handle lack of IPv6 gracefully. 2016-09-26 18:27:02 -07:00
Dan Schaper
7729ddab30 Mode code realignment. Handle lack of IPv6 gateway gracefully. 2016-09-26 18:21:58 -07:00
Dan Schaper
60c0e59a83 Add IPv6 intelligence to debug 2016-09-26 18:06:31 -07:00
Adam Warner
ac49e639bd Fix #718 2016-09-26 11:58:07 +01:00
Adam Warner
f01b20c2af Merge pull request #711 from pi-hole/EggPatch-1
Egg patch 1
2016-09-22 10:50:56 +01:00
Dan Schaper
a0d47be088 Merge conflict resolution 2016-09-21 17:20:25 -07:00
Dan Schaper
521374e238 Update .pullapprove.yml 2016-09-21 16:53:50 -07:00
Jacob Salmela
34806ee2c2 1-10 codebase familiarity
Also tried to simplify the language a bit so as not to deter people
from submitting issues.  We may need to simplify it more
2016-09-21 08:39:32 -05:00
Jacob Salmela
4a0d5138a1 move CONTRIBUTING.MD to .github 2016-09-20 15:30:27 -05:00
Jacob Salmela
e6a3758899 new template based on udemy-dl 2016-09-20 15:29:20 -05:00
Jacob Salmela
fcb7d9111e new template based on udemy-dl 2016-09-20 15:14:15 -05:00
Jacob Salmela
d907731027 new template based on udemy-dl 2016-09-20 15:10:34 -05:00
Dan Schaper
ac8d295bb9 Merge pull request #668 from bcambl/dns-hostname-fixes
Dns hostname fixes
2016-09-20 10:16:15 -07:00
Jacob Salmela
a963beb96e Merge pull request #703 from pi-hole/PromoFaux-patch-1
Add additional instruction.
2016-09-20 08:34:04 -05:00
Steve Dobinson
737b510116 Update lighttpd.conf.fedora
Allow for password protection (or other user-initiated options) without clobbering already chosen user options.
2016-09-20 10:38:58 +01:00
Steve Dobinson
47cba83450 Update lighttpd.conf.debian
Allow for password protection (or other user-initiated options) without clobbering already chosen user options.
2016-09-20 10:34:21 +01:00
bcambl
21d4199a38 Merge branch 'development' into dns-hostname-fixes 2016-09-19 17:33:32 -06:00
Adam Warner
655c422c3c Add additional instruction.
Include "(Press space to select)" on ChooseInterface
2016-09-19 22:17:58 +01:00
Adam Warner
b6f8bd408f Merge pull request #702 from pi-hole/PromoFaux-patch-1
Change reset_on_push to false
2016-09-19 21:12:33 +01:00
Adam Warner
a3edd0b976 Change reset_on_push to false
So we don't have to reapprove every time the branch is updated.
2016-09-19 21:06:28 +01:00
Adam Warner
8e8efa5caf Merge pull request #695 from pi-hole/gravTweak
Enable support for /etc/pihole/setupVars.conf in gravity
2016-09-19 20:57:51 +01:00
Adam Warner
a41b8f62a2 Merge branch 'development' into gravTweak 2016-09-19 20:55:58 +01:00
Dan Schaper
452ee8c2df Merge pull request #692 from pi-hole/PromoFaux-patch-1
Update piholeDebug.sh
2016-09-19 12:55:26 -07:00
Dan Schaper
5ca6599ca9 Merge branch 'development' into gravTweak 2016-09-19 12:54:58 -07:00
Adam Warner
dcedf6bfd0 Merge branch 'development' into PromoFaux-patch-1 2016-09-19 20:54:04 +01:00
Adam Warner
1f4b43645b Merge pull request #679 from pi-hole/updateTweaks
Make `pihole -up` a bit more intelligent
2016-09-19 20:46:22 +01:00
Promofaux
3d5140458b Change cron job 2016-09-19 20:43:04 +01:00
Promofaux
f16574085f remove code made redundant by the existence of /etc/pihole/setupVars.conf 2016-09-16 23:09:14 +01:00
Promofaux
3ed62d45f5 Source IP addresses from /etc/pihole/setupVars.conf 2016-09-16 23:05:08 +01:00
Adam Warner
b1a7b0a186 Update piholeDebug.sh
I can spell, honest.
2016-09-15 15:16:06 +01:00
Promofaux
ec0c68621c add blank line after Current version display 2016-09-12 19:40:34 +01:00
Promofaux
a0977af081 remove references to UpdateDashboard.sh 2016-09-12 19:10:12 +01:00
Promofaux
a3ef9efd2f remove updateDashboard script 2016-09-12 19:09:19 +01:00
Promofaux
d58f7c6ec9 Remove references to dashboard update Script 2016-09-12 19:08:33 +01:00
Promofaux
d124c2c12e Expand to check web admin versions 2016-09-12 18:57:19 +01:00
Promofaux
0229f70761 Make updatePiholeFunc a bit smarter. Only run update if version is not the latest. 2016-09-12 18:29:04 +01:00
Promofaux
dde9281139 Only pull master branch, the rest aren't needed! 2016-09-12 18:12:31 +01:00
Adam Warner
6eedfb572e Merge pull request #676 from pi-hole/development
2.9.1
2016-09-12 14:56:25 +01:00
Adam Warner
edf81a232d Merge pull request #671 from pi-hole/PromoFaux-patch-1
Add cron to apt-get dependencies
2016-09-09 20:23:34 +01:00
Adam Warner
c2cb92a0b0 Add cron to apt-get dependencies 2016-09-08 23:42:05 +01:00
bcambl
640af300cb additional hostname checks in gravity.sh
- Test if /etc/hostname exists before attempting to cat the file.
 - Add alternative hostname discovery via hostname command
 - Add an error message to stdout if unable to determine host fqdn
2016-09-07 21:16:52 -06:00
bcambl
6c0c6182e9 fix newline in configureSelinux stdout 2016-09-07 21:16:52 -06:00
bcambl
05ad4445b5 add dns to sysconfig interface configuration 2016-09-07 21:16:51 -06:00
bcambl
1dd9f0747e add gateway to interface configuration
pi-hole@9cb4e8b broke #593
original commit 8550b76
2016-09-07 21:16:36 -06:00
Dan Schaper
150e01be8b Merge pull request #667 from pi-hole/piholeBashCompletionUpdate
Add the newer pihole command tags to the bash auto complete!
2016-09-06 15:02:13 -07:00
Promofaux
95ee3216c4 Add the newer pihole command tags to the bash auto complete! 2016-09-06 21:57:17 +01:00
Adam Warner
3b5e409b38 Merge pull request #666 from pi-hole/PromoFaux-patch-1
Change log flush time to 00:00
2016-09-06 19:30:36 +01:00
Adam Warner
eb201b614a Change log flush time to 00:00 2016-09-06 19:29:30 +01:00
Adam Warner
162a6b8b5c Merge pull request #665 from pi-hole/FleshOutPiholeQ
Make the output of pihole -q a bit clearer. Bye Bye nifty one-liner!
2016-09-06 19:25:03 +01:00
Promofaux
4ec01769cb Appease Jacob. 2016-09-06 19:21:56 +01:00
Promofaux
19b656132d Make the output of pihole -q a bit clearer. Bye Bye nifty one-liner! 2016-09-06 19:16:04 +01:00
Adam Warner
6305c7e2ab Merge pull request #663 from pi-hole/Bugfix660
Switch fedora and debian install check order
2016-09-05 18:32:55 +01:00
Promofaux
04c60e8a1c Switch fedora and debian install check order 2016-09-05 15:52:09 +01:00
Adam Warner
b6ceb06a32 Merge pull request #655 from pi-hole/PromoFaux-patch-1
Replace `truncate` command with `echo " " >`
2016-09-02 19:34:50 +01:00
Adam Warner
8cb2f85a08 Replace truncate command with echo " " > 2016-09-02 16:39:34 +01:00
Adam Warner
7ccfb6ea88 Merge pull request #651 from pi-hole/PromoFaux-patch-1
Remove defunct list from adlists.default
2016-09-02 14:12:32 +01:00
Adam Warner
531398b532 Remove defunct list from adlists.default
See issue #650
2016-09-02 11:27:13 +01:00
Adam Warner
ec6ecf0d60 Merge pull request #639 from pi-hole/development
2.9
2016-08-30 21:46:04 +01:00
Dan Schaper
fdb0e31a78 Merge pull request #625 from pi-hole/UpdateMethod
Forget all existing attempts at an update method... this is the one.
2016-08-30 11:47:36 -07:00
Promofaux
01a9534729 Merge branch 'development' into UpdateMethod
# Conflicts:
#	automated install/basic-install.sh
2016-08-30 19:32:40 +01:00
Adam Warner
921278c5ea Merge pull request #636 from pi-hole/QueryCommand
Query command
2016-08-30 19:17:50 +01:00
Promofaux
d938f73207 Fix line endings 2016-08-26 23:10:22 +01:00
Promofaux
344e63c2dc Add undocumented argument to install script ("pihole") which allows the pihole command to run the update script without prompting the user. Useful for update automation 2016-08-26 23:06:35 +01:00
Promofaux
681144b2a3 Change the switched for updateDashboard and updatePihole(was updateMain) 2016-08-26 22:52:44 +01:00
Promofaux
e4295f5d3c Move exporting the setupConf files to a function to be run at the end of the script only. If script is cancelled, then they are not written. Simples.
Also I'm surprised nobody noticed the duplicate installPihole() function :S
2016-08-26 22:45:38 +01:00
Adam Warner
77135ca3c7 Actually pass through the argument to the function 2016-08-26 10:09:39 +01:00
Adam Warner
29b548f07c Add queryfunc 2016-08-26 09:39:27 +01:00
Dan Schaper
cb33ef77f7 Merge pull request #635 from Fourdee/development
Minor - Corrected var names
2016-08-25 12:14:12 -07:00
Daniel (Fourdee)
49ded54306 Minor - Update descriptions
Apply to whiptail descriptions also.
2016-08-25 12:17:36 +01:00
Daniel (Fourdee)
6c0a8a4337 Minor - Corrected var names
Kilobyte values are used, not Bytes.
2016-08-25 12:11:54 +01:00
Daniel (Fourdee)
e9a0ddf798 Merge remote-tracking branch 'refs/remotes/pi-hole/development' into development 2016-08-25 12:09:54 +01:00
Promofaux
d217626318 If an existing install is detected, offer the user a choice of Updating or Installing with a radio list whiptail. 2016-08-24 22:52:11 +01:00
Dan Schaper
4f5fcc2a37 Merge pull request #626 from victmo/development
Added window.close() to index.html
2016-08-22 16:43:49 -07:00
Promofaux
ed94f4b1df Create directory before trying to create a blank file in it.... 2016-08-22 22:06:33 +01:00
Promofaux
a57b097afc Change echos at the end of install depending on install or update 2016-08-21 18:00:41 +01:00
Promofaux
eb42b894c4 Delete setupVars.conf if user cancels out of install process. 2016-08-21 17:57:11 +01:00
Dan Schaper
af666e2209 Escape space in updateMainFunc
Legacy space in path strikes again!
2016-08-20 18:37:35 -07:00
Promofaux
2f2e746e56 Add update function to pihole script 2016-08-21 02:23:11 +01:00
Promofaux
b3e7619048 curly brackets all the variables! 2016-08-21 02:12:02 +01:00
Victor Marquez
0121136498 Added window.close() to index.html
Adding window.close() will automatically close any pop-ups that might get loaded with a blocked ad.
2016-08-19 20:45:17 -04:00
Promofaux
7eb43a0b47 Expand update dialog text 2016-08-19 23:25:04 +01:00
Promofaux
c0430a2248 It wouldn't be me if there weren't loads of commits for simple mistakes. 2016-08-19 23:10:56 +01:00
Promofaux
6796b8bdad pass argument from pihole command to gravity for -f check 2016-08-19 23:06:56 +01:00
Promofaux
475d016029 hmmm 2016-08-19 22:52:55 +01:00
Promofaux
201304e678 fix variables in gravity to stop it using -f wether it's set or not 2016-08-19 22:51:09 +01:00
Promofaux
fdb104348c Add updatePihole method 2016-08-19 22:45:24 +01:00
Promofaux
f54828352d remove spaces from update bool set 2016-08-19 22:42:04 +01:00
Promofaux
cc157def63 remove --defaultyes from update whiptail 2016-08-19 22:40:27 +01:00
Promofaux
8fc83655ab correct filename spelling mistake 2016-08-19 22:38:16 +01:00
Promofaux
9fb549293a APPEND 2016-08-19 22:34:50 +01:00
Promofaux
e4cc5b5b70 testing a new update method by detecting the existence of vars saved from install 2016-08-19 22:31:11 +01:00
Dan Schaper
6f0b659b38 Merge pull request #623 from pi-hole/AddForceClearToGravity
Add force clear to gravity
2016-08-17 11:32:35 -07:00
Dan Schaper
652bdf1518 Merge branch 'development' into AddForceClearToGravity 2016-08-17 11:32:26 -07:00
Promofaux
f6ac0d73b4 Add force delete option 2016-08-17 19:08:55 +01:00
Promofaux
ae47be0ce9 Add HelpFunc 2016-08-17 18:59:00 +01:00
Mcat12
491c37eafe Merge pull request #613 from goldbattle/development
Added - Readme Windows Tray App
2016-08-14 17:20:25 -04:00
Patrick Geneva
3ade7a8b0e Added - Readme Windows Tray App 2016-08-14 17:18:24 -04:00
Dan Schaper
3c7738b6d0 Merge pull request #619 from Fourdee/development
Free Disk Space check standardization
2016-08-13 19:44:40 -07:00
Daniel (Fourdee)
037318e2ff Provide non-zero exit code, as per existing sourcecode. 2016-08-12 13:20:30 +01:00
Daniel (Fourdee)
a9a499939e Fourdee - See notes:
https://github.com/pi-hole/pi-hole/issues/602
+ Improve available free disk space check.
+ Option to override if the free disk space check is not a valid
integer.
2016-08-12 12:44:45 +01:00
Daniel (Fourdee)
7e5bcd2ec3 Merge remote-tracking branch 'refs/remotes/pi-hole/development' into development 2016-08-12 12:11:55 +01:00
Adam Warner
f49ca48a22 Merge pull request #607 from pi-hole/Debug_Options
Debug options
2016-08-05 12:54:55 +01:00
Promofaux
9cb4e8bde8 Merge remote-tracking branch 'origin/Debug_Options' into Debug_Options
# Conflicts:
#	automated install/basic-install.sh
2016-08-05 12:53:08 +01:00
Adam Warner
95edb49bb8 Add option for uploading debug log to termbin 2016-08-05 12:47:57 +01:00
Dan Schaper
fb69bf551e Merge pull request #593 from bcambl/sysconfig_gateway
add gateway to interface configuration
2016-08-04 00:26:07 -07:00
bcambl
fe8d0f8ea8 Merge branch 'development' into sysconfig_gateway 2016-08-03 19:26:53 -06:00
Mcat12
acc5fa2a95 Merge pull request #609 from pi-hole/CLI_VersionCheck
Cli version check
2016-08-03 21:21:30 -04:00
Mcat12
f2e33f8581 Merge branch 'development' into CLI_VersionCheck 2016-08-03 21:21:23 -04:00
Adam Warner
4748cdc2c9 Merge pull request #599 from pi-hole/PullApprove
Add PullApprove configuration
2016-08-04 00:14:00 +01:00
Promofaux
2bc364023a Remove erroneous space in chmod command
Fix spacing in help function
2016-08-02 23:51:53 +01:00
Dan Schaper
3070f61e20 Merge branch 'development' into PullApprove 2016-08-02 14:55:47 -07:00
Promofaux
57df56dc62 Add version.sh to the install script 2016-08-02 20:08:21 +01:00
Promofaux
e11ef5a7f0 Add version display script. Also checks current version on web and reports version. 2016-08-02 20:07:09 +01:00
Promofaux
6a17a3eeec Add command to pihole script 2016-08-02 19:44:11 +01:00
Promofaux
66ff9a24c6 Add piholeDebug to the chmod 755 command in install script. Not sure how that went missing... 2016-08-01 21:54:42 +01:00
Adam Warner
a3b3a7a34d Add option for uploading debug log to termbin 2016-08-01 21:43:13 +01:00
Mcat12
c04b3559d0 Merge pull request #584 from diginc/development
Only re-block whitelist deletions if in adlists
2016-07-31 14:39:05 -04:00
Dan Schaper
e642b41b5b Add PullApprove configuration 2016-07-29 16:35:26 -07:00
Dan Schaper
ba6881d685 Merge pull request #595 from pi-hole/fix/README_Update
Typo/Linter fix
2016-07-29 13:13:24 -07:00
Dan Schaper
20d8c9053b Remove defunct Optimal link
Optimal has discontinued it's app program. Removing dead link
2016-07-29 13:05:15 -07:00
Dan Schaper
0749e4ed70 Move BountySource to top position 2016-07-27 18:58:05 -07:00
Dan Schaper
b0cc69ff80 Merge Conflict resolution 2016-07-27 18:54:41 -07:00
Dan Schaper
02c4669e95 Typo/Linter fix
Fix a few typo's, run through linter for format corrections.
2016-07-26 20:46:43 -07:00
bcambl
8550b76e23 add gateway to interface configuration 2016-07-24 22:42:06 -06:00
Adam Warner
fdf27e3d24 Merge pull request #573 from bcambl/centos-nc
fix centos nc dependency
2016-07-22 19:02:29 +01:00
Adam Warner
069023fca2 Merge pull request #589 from pi-hole/PromoFaux-patch-1
Update README.md
2016-07-22 14:14:07 +01:00
Adam Warner
1fd6648db1 Merge pull request #591 from pi-hole/master
Out of Sync with master
2016-07-22 12:04:15 +01:00
Adam Warner
7a08c8b694 Merge pull request #590 from pi-hole/revert-588-master
Revert "Development out of sync with master."
2016-07-22 12:03:17 +01:00
Adam Warner
60aad3f19b Revert "Development out of sync with master." 2016-07-22 11:59:19 +01:00
Adam Warner
51dcc2bc0f Update README.md
Add badge for bountysource to show avtive bounties.
2016-07-22 11:56:54 +01:00
Adam Warner
941525d1e0 Development out of sync with master. (#588)
* adding links to optimal.com

Also added image of Pi-hole's stats from Optimal.com and a bitcoin donation address per some user requests.

* simplified and new additions

I tried to simplify the readme page a bit.  I also added some new links to some helper videos and added some screenshots of the whitelist editor.

* updated dashboard pic

* Update README.md

* simplified donation section

* forgot to remove the old donation stuff

* Hosts-file.net moved to https

* removed pihole berry from images

also added adafruit livestream video

* Update README.md

update "How does it work" video
2016-07-22 11:54:17 +01:00
diginc
5fb6c5b012 Making the whitelist re-block echo consistent with other WL/BL echos 2016-07-20 12:53:31 -05:00
diginc
3affa73257 Only re-block whitelist deletions if in adlists
* Prevent blocking benign/untracked domains deleted off whitelist
* Issue #581
2016-07-20 12:43:30 -05:00
Blayne Campbell
c647e27e15 Merge branch 'development' into centos-nc 2016-07-19 08:48:54 -06:00
Dan Schaper
f696ed48b3 Merge pull request #570 from pi-hole/bugfix/dhcpcd_comments
Change comment to hash
2016-07-18 16:32:12 -07:00
Adam Warner
73645f299a Merge branch 'development' into bugfix/dhcpcd_comments 2016-07-18 14:37:38 +01:00
Mcat12
6aeb5f1172 Merge pull request #575 from pi-hole/bugfix/distrib_vers_check
Remove trailing slash on os-release check
2016-07-17 07:37:55 -04:00
Dan Schaper
ce8f07750f Remove trailing slash on os-release check
Fixes #CLOSED 

Remove trailing slash that would cause an os-check to always fail out.
2016-07-15 22:46:21 -07:00
bcambl
a32ad0dbf2 fix centos nc dependency 2016-07-15 21:43:23 -06:00
Promofaux
61ff12e8d4 Change header to match the rest of the scripts. 2016-07-15 21:17:16 +01:00
Adam Warner
02b0e96db8 Merge pull request #572 from pi-hole/development
Dan forgot this : `}`
2016-07-15 21:13:10 +01:00
Promofaux
e942440bb7 Dan forgot this : } 2016-07-15 21:11:10 +01:00
Dan Schaper
a27f1f17de Merge pull request #563 from pi-hole/development
Push to release 2.8 - Gold
2016-07-15 12:05:20 -07:00
Promofaux
e106ff0fef Add netcat to dependencies for termbin.com. Should be installed by default, but JUST IN CASE. 2016-07-15 19:58:26 +01:00
Promofaux
6f068e0b9c Replace sprunge.us with termbin, which appears to be more reliable. 2016-07-15 19:32:49 +01:00
Dan Schaper
ada531c88a Merge pull request #568 from pi-hole/feature/Distro-Check
Add distribution Check
2016-07-15 11:05:54 -07:00
Dan Schaper
f0a2248c81 Change comment to hash
Change format of comment to hash/octothorpe to clearly delineate that it's a comment. Looks better than `:::` which causes confusion.
2016-07-15 10:27:40 -07:00
Sander
11f2524b9b Instead of an or, cat *release 2016-07-14 20:47:27 +02:00
Dan Schaper
b011e5f838 Add os-release check 2016-07-14 11:35:52 -07:00
Dan Schaper
f45eb84d6b Add distribution Check 2016-07-14 11:27:47 -07:00
Adam Warner
412c0a172d Update README.md
update "How does it work" video
2016-07-08 22:58:27 +01:00
Jacob Salmela
c1d8496b93 removed pihole berry from images
also added adafruit livestream video
2016-07-06 08:37:30 -05:00
Mcat12
4657959790 Merge pull request #559 from dan019/repair-apt
Repairs apt-get incorrect options
2016-07-04 16:22:36 -04:00
Daniel
2b0ba281a4 Repairs apt-get incorrect options 2016-07-04 15:35:46 -04:00
Mcat12
325a41c598 Merge pull request #558 from dan019/easy-log
Upload log to sprunge.us
2016-07-03 22:08:25 -04:00
Daniel
9b8efe1b27 Upload log to sprunge.us 2016-07-03 19:50:42 -04:00
Dan Schaper
024b741552 Merge pull request #490 from bcambl/fedora-armhf7
Fedora Support
2016-06-29 14:25:23 -07:00
Mcat12
4e95f4678f Merge pull request #540 from pi-hole/bugfix/curl-redirect
Have `curl` auto-redirect
2016-06-26 13:42:40 -04:00
Mcat12
a86b982591 Merge pull request #537 from pi-hole/piholeIP-Permissions
Missing permissions when writing to piholeIP
2016-06-26 13:23:28 -04:00
Mcat12
ec8da00485 Merge pull request #545 from mat1th/feature/new-block-list
Feature/new blocklist url
2016-06-26 13:20:25 -04:00
Dan Schaper
bcfe130d51 Merge pull request #544 from pi-hole/Fix/MahaUA
Mahakala User Agen modernization
2016-06-25 13:20:04 -07:00
Matth
0e143f7275 Update adlists.default 2016-06-25 15:45:51 +02:00
Dan Schaper
7670b4e380 Mahakala User Agen modernization
Update Curl User Agent for Maha list.
2016-06-25 06:00:49 -07:00
Dan Schaper
636a9123b8 Have curl auto-redirect
This should solve the redirection issue if a list is moved.
2016-06-23 18:37:45 -07:00
Dan Schaper
caaee40889 Hosts-file.net moved to https 2016-06-23 17:38:26 -07:00
Mcat12
1f130b6550 Fix missing permissions on piholeIP
Without sudo/root privileges, the echo command is unable to write
to the file.
2016-06-21 19:16:11 -04:00
Jacob Salmela
2ce47f49b1 forgot to remove the old donation stuff 2016-06-20 15:55:23 -05:00
Jacob Salmela
0250e03b86 simplified donation section 2016-06-20 15:47:05 -05:00
Adam Warner
ce110aab90 Merge pull request #536 from fhemberger/development
Fix link for spam404scamlist.txt
2016-06-20 18:47:12 +01:00
Frederic Hemberger
fd92752f52 Fix link for spam404scamlist.txt
The redirect `http://spam404bl.com/spam404scamlist.txt` resolves to `https://raw.githubusercontent.com/spam404scamlist.txt/Dawsey21/Lists/master/main-blacklist.txt`, which is wrong.

Instead, use `https://raw.githubusercontent.com/Dawsey21/Lists/master/main-blacklist.txt`directly.
2016-06-20 19:37:58 +02:00
Adam Warner
3c4a305976 Update README.md 2016-06-17 16:05:17 +01:00
Adam Warner
791e5bbd55 Merge pull request #531 from pi-hole/malwareList
Update adlists.default
2016-06-16 10:12:30 +01:00
Adam Warner
46df6e7dd3 Update adlists.default
Add C&C malware list from #528
2016-06-16 10:11:55 +01:00
Jacob Salmela
9ccf9d57a8 updated dashboard pic 2016-06-13 06:49:03 -05:00
bcambl
fa89bd830a re-order when SELinux gets configured
configure SELinux *after* git clone/pull & file setup and  *before* service configuration
2016-06-11 22:33:44 -06:00
bcambl
3ba05d0274 configure static IP on Fedora via sysconfig script 2016-06-11 22:10:12 -06:00
bcambl
0d9a8d70bf configureSelinux prior to installPihole 2016-06-11 17:28:57 -06:00
bcambl
5c79184d3b add ifconfig dependency for Fedora install 2016-06-11 17:17:12 -06:00
bcambl
3d619d9ccc fix iptables udp rule
fixes dmesg: ip_tables: udp match: only valid for protocol 17
2016-06-11 17:04:45 -06:00
bcambl
afdf3ae7a1 add sudo package to PIHOLE_DEPS 2016-06-11 16:10:31 -06:00
bcambl
943f7c06b5 uninstaller support for Fedora/CentOS 2016-06-11 15:58:49 -06:00
bcambl
27a9642090 check for sudo via 'command -v' instead of dkpg-query 2016-06-11 15:58:49 -06:00
bcambl
d0b6ff2d08 add udp port 53 to iptables/firewalld configuration 2016-06-11 15:58:49 -06:00
bcambl
97737ee9e3 move SELinux config to installPihole() for logging 2016-06-11 15:58:49 -06:00
bcambl
5e27ccc37c firewalld: specify ports and use default zone 2016-06-11 15:58:49 -06:00
bcambl
682113892a enable SELinux boolean for httpd server side includes (SSI) 2016-06-11 15:58:49 -06:00
bcambl
376eb81181 SELinux Support 2016-06-11 15:58:49 -06:00
bcambl
4fc40d96d9 ensure firewalld is running before configuration 2016-06-11 15:58:49 -06:00
bcambl
e6634531c7 basic firewalld/iptables configuration 2016-06-11 15:58:49 -06:00
bcambl
66724826f5 moved php-fastcgi.socket to /tmp on Fedora
fastcgi is spawned by lighttpd (lighttpd user).
/var/run is owned by root, so we will put the socket in /tmp
2016-06-11 15:58:49 -06:00
bcambl
04e375a523 enable lighttpd and dnsmasq via systemd 2016-06-11 15:58:49 -06:00
bcambl
65638973ea correct dhcpcd package name to dhcpcd5
move dhcpcd5 to installer dependencies
2016-06-11 15:58:49 -06:00
bcambl
9c26bdd676 ensure fastcgi socket directory and permissions 2016-06-11 15:58:49 -06:00
bcambl
b31931c907 add epel-release for CentOS support 2016-06-11 15:58:49 -06:00
bcambl
c74af2c21f warn if lighty-enable-mod utility is not available
Fastcgi can be enabled via lighttpd configuration.
This step may not be required for all distributions.
2016-06-11 15:58:49 -06:00
bcambl
c160b2e54b fix lighttpd user/group variables 2016-06-11 15:58:48 -06:00
bcambl
c4234f4542 ensure ownership/existence of /var/cache/lighttpd/compress 2016-06-11 15:58:48 -06:00
bcambl
62fa9c0f6e fixing whitespace 2016-06-11 15:58:48 -06:00
bcambl
8198f06073 ensure dnsmasq conf-dir is configured for /etc/dnsmasq.d 2016-06-11 15:58:48 -06:00
bcambl
6f2117d786 append '.debian' to lighttpd.conf for compatability 2016-06-11 15:58:48 -06:00
bcambl
b3ec3b487c add Fedora dependency: lighttpd-fastcgi 2016-06-11 15:58:48 -06:00
bcambl
d67957d015 add fedora lighttpd.conf template 2016-06-11 15:58:48 -06:00
bcambl
94f131a0b7 update deps and package manager variables 2016-06-11 15:58:48 -06:00
bcambl
7af0029175 check for systemctl for systemd service management 2016-06-11 15:58:48 -06:00
bcambl
f4228b04f8 additional fedora dependancies
based on current fedora (23 at this moment) docker image
2016-06-11 15:58:48 -06:00
bcambl
ffaf243160 split dependency installations into two separate functions
- installerDependencies:
   - updates the package manager list/cache
   - installs dependencies for install script
 - checkForDependencies:
   - install dependencies for Pi-Hole
2016-06-11 15:58:48 -06:00
bcambl
29d48bbd9a move IP/route discovery to a function
Defer use of 'ip' utility until after install script dependencies have been satisfied.
2016-06-11 15:58:48 -06:00
bcambl
37dda79db2 install dependencies for install script 2016-06-11 15:58:48 -06:00
bcambl
063e3e85e1 Fedora compatibility variables and dependencies 2016-06-11 15:58:41 -06:00
bcambl
42afaa9f66 remove dpkg-query dependency from sudo check 2016-06-11 15:53:46 -06:00
Jacob Salmela
366fcf76f6 simplified and new additions
I tried to simplify the readme page a bit.  I also added some new links to some helper videos and added some screenshots of the whitelist editor.
2016-06-11 15:05:11 -05:00
Jacob Salmela
72e8ec7d93 Merge pull request #515 from pi-hole/development
Next Release 2.7
2016-06-11 13:53:58 -05:00
Jacob Salmela
13a479a9f6 tell user to run as root
since you can't install sudo as a non-root user, the script needs to be
run as root in order to install it.
2016-06-11 13:21:08 -05:00
Jacob Salmela
1194e48bd8 install sudo
sudo is needed for the sudoers file to work, which is how the Web
interface executes the pihole commands.
2016-06-11 13:08:43 -05:00
Jacob Salmela
1e0666d1ef make folder so file can be deployed 2016-06-10 18:51:38 -05:00
Jacob Salmela
1c53ad6876 mcat is smarter than me
He already added this.
2016-06-10 18:20:53 -05:00
Jacob Salmela
dc2a537f6b copy sudoers file
necessary for Web interface white/black list functionality.
2016-06-10 17:47:27 -05:00
Adam Warner
a5d3022e9f Merge pull request #522 from crazy-max/development
Update URL for Windows 10 Telemetry list
2016-06-03 16:22:58 +01:00
crazy-max
4541da1f17 Update URL for Windows 10 Telemetry list 2016-06-03 17:10:36 +02:00
Mcat12
a16cd9aef7 Merge pull request #469 from pi-hole/web-sudo
Give WebUI permissions to run pihole commands
2016-05-26 18:45:04 -04:00
Mcat12
6cf446032f Show web interface URL after install 2016-05-25 18:55:36 -04:00
Mcat12
3fda2d9ac3 Fix helpfunc not found error 2016-05-25 17:07:12 -04:00
Mcat12
c03268707a Merge pull request #489 from pi-hole/development
Next Release
2016-05-22 20:46:40 -04:00
Mcat12
7829e907c9 Merge pull request #511 from crazy-max/development
Update URL for Windows 10 Telemetry list
2016-05-22 20:23:04 -04:00
crazy-max
b5529e5138 Update URL for Windows 10 Telemetry list 2016-05-22 01:30:32 +02:00
Adam Warner
d601afcebc Merge pull request #509 from crazy-max/development
New URL for Windows 10 Telemetry list.
2016-05-15 20:12:49 +01:00
crazy-max
892a90bf51 New URL for Windows 10 Telemetry list. 2016-05-15 13:51:35 +02:00
Mcat12
d52a8f08ed Merge pull request #501 from davidtorcivia/development
Fix basic install for Proxmox LXC
2016-05-11 19:12:37 -04:00
David Torcivia
b7e27bf6b4 Fix basic install for Proxmox LXC
Fixed basic installer to properly bind to eth0 when install to a Proxmox LXC.
2016-05-11 18:24:43 -04:00
Mcat12
9ee96d6176 Merge pull request #500 from yoosi/remove-toilet
Replace toilet with echo in chronometer.sh
2016-05-11 16:53:38 -04:00
Carter Maxwell
c0e1772e21 Replace toilet with echo 2016-05-07 11:44:18 -07:00
Mcat12
62dc160c65 Merge pull request #491 from pi-hole/dont-frame-me
Make sure web interface can't be loaded into a frame
2016-05-06 14:30:13 -04:00
Mcat12
f03303e5aa Add X-Pi-hole header 2016-05-03 11:58:13 -04:00
Mcat12
7bc2844b9d Remove X-Pi-hole header
Also adds `X-Frame-Options: DENY` for the admin directory, so that
an ad can't load it into a frame
2016-05-02 18:51:02 -04:00
Mcat12
ba283755be Merge pull request #472 from jim-liu/development
Save custom IP
2016-05-02 09:32:35 -04:00
Jacob Salmela
2209beff8a adding links to optimal.com
Also added image of Pi-hole's stats from Optimal.com and a bitcoin donation address per some user requests.
2016-04-29 21:09:41 -05:00
Jim Liu
00cc480bc1 Update basic-install.sh 2016-04-26 16:10:51 +08:00
Jacob Salmela
d7de5b2afa link to pihole menubar 2016-04-23 15:56:14 -05:00
Jim Liu
221b72439b Update basic-install.sh 2016-04-22 01:46:27 +08:00
Jim Liu
08e6f60941 Update blacklist.sh 2016-04-22 01:42:43 +08:00
Jim Liu
10066209e7 Update whitelist.sh
Change piholeIPfile to a permanent location.
2016-04-22 01:41:11 +08:00
Jim Liu
08e95ed606 Update gravity.sh
Change piholeIPfile to a permanent location.
2016-04-22 01:40:42 +08:00
Jim Liu
a5ad48aa18 Update gravity.sh 2016-04-21 23:40:44 +08:00
Jim Liu
81fdfcba22 Update whitelist.sh 2016-04-21 23:40:38 +08:00
Mcat12
24de6d6fc9 Allow sudoers file to be uninstalled 2016-04-20 21:43:01 -04:00
Mcat12
aec6fcd00b Merge branch 'BugFix463' into development 2016-04-20 15:55:26 -04:00
Mcat12
619082dbed Merge branch 'development' into BugFix463
Conflicts:
	advanced/Scripts/blacklist.sh
	advanced/Scripts/whitelist.sh
2016-04-20 15:54:58 -04:00
Mcat12
09cdf5081c Install sudoer file 2016-04-17 23:03:12 -04:00
Mcat12
d7abbbfac4 Change mode of sudoer file 2016-04-17 22:49:47 -04:00
Mcat12
c714196647 Add Sudoer file for WebUI 2016-04-17 22:46:06 -04:00
Adam Warner
b702c1d9a8 Merge pull request #468 from mayurkr/mayur-bugfix
fixed non execution of the function helpFunc
2016-04-17 17:32:56 +01:00
Mayur Raiturkar
56ac04c48e fixed helpFunc 2 2016-04-17 18:22:06 +05:30
Mayur Raiturkar
b58519b974 fixed helpFunc 1 2016-04-17 18:21:32 +05:30
Promofaux
ad574f5e90 Replace kill with killall 2016-04-16 15:52:38 +01:00
Promofaux
4941a657bf remove -s switch, as it turns out it worked afterall. 2016-04-16 12:59:40 +01:00
Promofaux
3d4bff9414 Add -s switch to kill command to increase compatability 2016-04-16 10:56:49 +01:00
Adam Warner
2d03616c10 Merge pull request #460 from pi-hole/LighttpdDebugLogging
Added lighttpd error.log to debug output
2016-04-15 21:56:58 +01:00
Adam Warner
fcb9ba08a8 Merge pull request #452 from notracking/patch-2
Added hosts-blocklists lists
2016-04-15 21:56:23 +01:00
Adam Warner
77f4126f9b add root check to whitelist script 2016-04-13 15:51:48 +01:00
Adam Warner
4c890ab202 Add root check to blacklist script 2016-04-13 15:50:48 +01:00
Adam Warner
d10e9b1b6e add pihole/webui version numbers 2016-04-12 08:47:30 +01:00
Adam Warner
a6bee76581 add location of debug log output file! 2016-04-12 08:24:34 +01:00
nate
2f4f5a6ad2 Added lighttpd error.log to debug output 2016-04-11 18:35:44 -05:00
Adam Warner
3853997295 Merge pull request #451 from pi-hole/development
Development of Next release
2016-04-11 12:54:15 +01:00
Adam Warner
76899c9ac5 Merge pull request #459 from pi-hole/BugFix409
remove all mentions of spinner
2016-04-11 12:41:42 +01:00
Adam Warner
99a5b3a98a remove all mentions of spinner 2016-04-11 11:29:14 +01:00
Adam Warner
219aff9a93 Merge pull request #457 from pi-hole/BigFix453
Fix whitespace
2016-04-10 21:44:26 +01:00
Promofaux
b6e1b3bff0 Last one, promise! tabs are behaving strangely here... 2016-04-10 21:43:12 +01:00
Promofaux
1ce888e828 more whitespace fixes...... 2016-04-10 21:41:46 +01:00
Promofaux
1c10a801dc Fix whitespace... 2016-04-10 21:39:44 +01:00
Promofaux
48fa83c9ac Fix whitespace 2016-04-10 21:36:33 +01:00
Adam Warner
31ea3a2757 Merge pull request #456 from pi-hole/BigFix453
Fixes issue #453
2016-04-10 21:20:46 +01:00
Promofaux
05e0003555 Fixes issue #453 2016-04-10 21:17:58 +01:00
notracking
be79281418 Added hosts-blocklists lists
The hosts-blocklist is a semi-automatically updated list, based on various well known public sources, for more details read: https://github.com/notracking/hosts-blocklists/

Please be aware that one file is for domain blocking and the other file for hostname based blocking, these lists are complimentary and should therefore be used simultaneously.
2016-04-10 16:12:40 +08:00
Adam Warner
01f53f6d6c Merge pull request #450 from pi-hole/SmallFixesToWhitelistBlacklist
Small fixes to whitelist blacklist
2016-04-08 23:03:30 +01:00
Promofaux
107e0404de Move exit 1 outside of if block on verbose check to stop dnsmasq reloading 2016-04-08 23:01:13 +01:00
Promofaux
ab99e80333 indent 2016-04-08 23:00:46 +01:00
Promofaux
3154a378a6 Remove clear in DisplayWlist and force verbose to false to tidy up output. 2016-04-08 20:12:30 +01:00
Promofaux
8e04f1c03e Remove clear in DisplayBlist and forse verbose to false to tidy up output. 2016-04-08 20:11:39 +01:00
Promofaux
c0aadeab3d fix spelling in name of variable ($versbose -> $verbose) 2016-04-08 20:10:27 +01:00
Promofaux
6c87698f1a fix spelling in name of variable ($versbose -> $verbose) 2016-04-08 20:10:10 +01:00
Adam Warner
db2e9f8bf3 Merge pull request #447 from 7h3ju57/issue#442
Add list option to blacklist and whitelist
2016-04-08 20:07:24 +01:00
Justin Theberge
9a4c5cef86 fix indentations 2016-04-08 10:14:17 -04:00
Justin Theberge
bdfc86f850 fix formatting 2016-04-07 21:58:57 -04:00
Justin Theberge
70dadfba28 add list options requested from issue#442 2016-04-07 21:52:47 -04:00
Adam Warner
01e1e34874 Merge pull request #441 from pi-hole/development
Pihole v2.6.1.2. Closes #439
2016-04-06 09:44:04 +01:00
Adam Warner
28a3cbfa87 Merge pull request #440 from pi-hole/Bugfix439
fixes #439
2016-04-06 09:42:07 +01:00
Adam Warner
0b480c2d3f remove redundant else, add ! to if logic. 2016-04-06 09:36:41 +01:00
Adam Warner
391dea445a Move help output to function, add -h argument 2016-04-06 09:34:05 +01:00
Adam Warner
e074c72130 Move help output to function helpFunc, add -h argument. 2016-04-06 09:32:36 +01:00
Adam Warner
96f3f863e5 Clean up output. Commented out un-needed root/sudo notification 2016-04-06 09:28:24 +01:00
Adam Warner
3877f6fd94 Fix arguments not being passed through to chronometer.sh 2016-04-06 09:27:46 +01:00
Adam Warner
cbbc6df05a Merge pull request #425 from PiHoleController
Fixes spacing issues in whiptail dialogs
2016-04-05 22:26:02 +01:00
Adam Warner
32ff7fb321 Merge pull request #437 from pi-hole/development
Hotfix 2.6.1.1 - closes #434
2016-04-05 14:32:32 +01:00
Adam Warner
5537e57eec Merge pull request #436 from pi-hole/2611Hotfix
Fixes #432. Thanks to @VDRrulez and @jradwan for pointing it out...
2016-04-05 14:30:16 +01:00
Promofaux
9c94af04cc Fixes #432. Thanks to @VDRrulez and @jradwan for pointing it out... 2016-04-05 14:22:10 +01:00
Adam Warner
3f0b15902d Merge pull request #432 from pi-hole/development
Hotfix 2.6.1
2016-04-05 08:56:28 +01:00
Adam Warner
4d3835dde2 Merge pull request #431 from pi-hole/261Hotfix
Correct variable name (Missing capital letter! whoops!)
2016-04-05 08:55:34 +01:00
Promofaux
8514f42d0d Correct variable name (Missing capital letter! whoops!) 2016-04-05 08:53:52 +01:00
Adam Warner
6d9fbe8d41 Merge pull request #392 from pi-hole/development
Pi-hole v2.6
2016-04-05 00:30:20 +01:00
Promofaux
849185d3c9 Fix incorrect echo 2016-04-05 00:03:49 +01:00
Promofaux
47cc757ed0 Fix incorrect echo 2016-04-05 00:03:24 +01:00
Adam Warner
f6edd435af Merge pull request #429 from pi-hole/white-black-piholeconf
Ensure all scripts honour pihole.conf

fixed small bug where source lists were being updated on every run of gravity
2016-04-04 23:52:11 +01:00
Promofaux
0c0dd914f7 Fix source lists not being skipped if they are already up to date 2016-04-04 23:48:34 +01:00
Promofaux
c6405bc93b Ensure addn-hosts value is updated in /etc/dnsmasq.d/01-pihole.conf if user has a custom value set in pihole.conf 2016-04-04 23:38:46 +01:00
Promofaux
cdffdfbded merge master > development 2016-04-04 22:18:53 +01:00
Promofaux
0bbfb323b1 make whitelist honour pihole.conf file 2016-04-04 21:08:56 +01:00
Promofaux
4f08359786 Make blacklist honour pihole.conf file 2016-04-04 21:08:45 +01:00
Adam Warner
7efb17537a Merge pull request #427 from pi-hole/SystemctlDebugLogging
Write verbose status of processes to debug log & Minor UI Fixes
2016-04-04 14:59:22 +01:00
nate
7e06769d44 Double quoting 2016-04-04 01:03:05 -05:00
nate
5347ee4896 Write verbose status of processes to debug log & Minor UI Fixes 2016-04-04 00:59:24 -05:00
nate
834bf30a10 Merged branch development into PiHoleController 2016-04-03 18:05:19 -05:00
nate
22ea384ac8 Fix whiptail spacing 2016-04-03 18:05:11 -05:00
Adam Warner
3e6dd9ea9e Merge pull request #424 from pi-hole/PiHoleController
Indentation fix
2016-04-03 23:28:03 +01:00
nate
10f363e9e7 Merged branch development into PiHoleController 2016-04-03 17:26:37 -05:00
nate
69e8c014c3 Indentation fix 2016-04-03 17:25:48 -05:00
Adam Warner
dbb40e1dda Merge pull request #416 from pi-hole/PiHoleController
Add in Pi hole controller
2016-04-03 23:15:00 +01:00
Promofaux
d710b97276 Fix issue raised in #421 (Use variable instead of hardcoded path, do not delete user created pihole.conf!) 2016-04-03 22:10:04 +01:00
Promofaux
0e6e8040ba Change spinstr to match install and uninstall scripts 2016-04-03 21:54:16 +01:00
Promofaux
c6fb0bad4b change spinstr to match spinstr in basic-install.sh 2016-04-03 21:45:00 +01:00
Promofaux
2d08217173 Tidy up For loops, clean up whitespace 2016-04-03 21:43:36 +01:00
Promofaux
36645d9335 Add check for existing files in /usr/local/bin left over from previous version, as those scripts are replaced with pihole <command> script. 2016-04-03 18:39:22 +01:00
Promofaux
97d3aedba1 Add some output to the log flush 2016-04-03 18:27:18 +01:00
Promofaux
5976b20aec Fix spelling mistake, remove unaccessed function. 2016-04-03 18:25:39 +01:00
Promofaux
ad8573c739 Pedantic change, stops my editor from treating all of the code as one long sting in ' ' (as the ' was escaped with \) 2016-04-03 18:10:50 +01:00
nate
7f9410fd34 Added uninstall option to bash-completion 2016-04-02 19:45:44 -05:00
nate
71133f6b59 Spelling error fix... 2016-04-02 19:42:33 -05:00
nate
5d5d6c2c70 handle case where parent directories do not exist 2016-04-02 19:31:26 -05:00
nate
37fa462db5 Erraneous call to SUDO removed 2016-04-02 19:24:19 -05:00
nate
1a2046a7eb Added uninstall option to pihole command. Minor fixes 2016-04-02 19:20:54 -05:00
nate
3dff7e80fc Fixed path to /etc/bash_completion.d/ 2016-04-02 18:52:03 -05:00
nate
6eea9239a7 Merged branch development into PiHoleController 2016-04-02 18:41:36 -05:00
nate
75f1969bd2 Set executable permissions of pihole and changed installer to invoke sudo for gravity.sh.
Note: We invoke gravity.sh with sudo in other places, so ignore the removed comment.
2016-04-02 18:39:09 -05:00
Mcat12
e97755eb91 Fix missing cats 2016-04-02 19:28:30 -04:00
Mcat12
b938949cdb Merge pull request #419 from pi-hole/piholeDebugInstallFix
Fixed missing `cp` of `piholeDebug.sh` to /opt/pihole
2016-04-02 19:20:41 -04:00
nate
447af208b3 Fixed missing cp of piholeDebug.sh to /opt/pihole 2016-04-02 17:59:59 -05:00
nate
d47fbbbe96 Mcat12 requests. Added bash-completion support 2016-04-02 17:58:10 -05:00
nate
767b72fbfa Merged branch development into PiHoleController 2016-04-02 17:34:41 -05:00
Adam Warner
b94a8da9d6 Merge pull request #418 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2016-04-02 14:44:24 +01:00
The Gitter Badger
12b5be239b Add Gitter badge 2016-04-02 13:31:49 +00:00
Mcat12
0fbf72bb09 Change dummy domain and show device's hostname in ping
* Change dummy domain
Allows users to access Pi-hole console with my.pi-hole.net instead of the IP address

* Cleaned up formatting

* Put device hostname at the top of the list
Changed my.pi-hole.net to pi.hole and placed it under the device hostname. This way, ping will return the device hostname but you still can access the web interface with pi.hole/admin
2016-04-01 20:19:47 -04:00
Adam Warner
ae2117ff5a Merge pull request #411 from nate-ubiquisoft/development
debugPihole.sh, uninstall.sh bug fixes and improvements, script cleanup
2016-04-01 20:36:45 +01:00
nate
b80821c4b7 Merged branch development into PiHoleController 2016-04-01 12:17:41 -05:00
nate
cf01b5a002 Readded cat calls to fix permission issue 2016-04-01 12:17:05 -05:00
nate
bb66d559e7 Merge branch 'development'
Conflicts:
	gravity.sh
2016-04-01 11:08:46 -05:00
nate
7b8fa3b922 Permissions changed for /etc/pihole and cleaned up some output 2016-04-01 01:11:59 -05:00
nate
777676b525 Made uninstall.sh and pihole.sh executable. 2016-03-31 20:33:15 -05:00
nate
28f2a1309e Merge branch 'development'
Conflicts:
	automated install/uninstall.sh
2016-03-31 20:25:54 -05:00
nate
4b0a7c2252 Added 01-pihole.conf to be removed on uninstall regardless of removing dnsmasq 2016-03-30 20:23:24 -05:00
nate
2625d9f7fe Made piholeDebug.sh +x 2016-03-30 20:09:19 -05:00
nate
45f24c8a85 Readded cats that were originally considered UUOC 2016-03-30 19:56:11 -05:00
nate
5f7c11f495 Sudo added to ifconfig to ensure it runs if debug not run as root 2016-03-30 19:51:09 -05:00
nate
ec4d2d65a6 PromoFaux request: Detailed adlists.list output
Now tells user (and logs to pihole_Debug.log) that the adlists.default file is in use
2016-03-30 19:49:39 -05:00
nate
3e20f5dd3c Merged branch development into development 2016-03-29 17:04:43 -05:00
Mcat12
7014b5a150 Reverted password for web interface
Work will continue in the secure-web-interface branch
2016-03-29 17:45:00 -04:00
nate
f8427ab789 Merge remote-tracking branch 'refs/remotes/pi-hole/development'
Conflicts:
	README.md
	advanced/Scripts/blacklist.sh
	advanced/Scripts/whitelist.sh
	automated install/basic-install.sh
	gravity.sh
2016-03-29 12:57:22 -05:00
Nate
31fc2bfeb7 Modified gravity.sh to point to new file locations and fixed permission issue 2016-03-29 00:25:40 -05:00
Nate
fb5bc16c83 Call gravity.sh in it's new location 2016-03-29 00:14:56 -05:00
Mcat12
724075e448 Merge pull request #413 from pi-hole/fix-template-team-link
fix template team link
2016-03-28 23:03:32 -04:00
Mcat12
45cb9a2e80 fix template team link 2016-03-28 22:51:54 -04:00
nate
456eee05f2 Added pihole.sh to /usr/local/bin
Uninstall.sh will handle removing the file
2016-03-28 18:55:37 -05:00
nate
23872f77a8 Merged branch development into PiHoleController 2016-03-28 18:46:21 -05:00
nate
37c1999965 Merged branch ScriptCleanup-Dev into development 2016-03-28 18:46:08 -05:00
nate
86dd4dd784 New spinner for gravity.sh
Spinner in gravity.sh now matches basic-install.sh and uninstall.sh
2016-03-28 18:45:55 -05:00
nate
00b65abd09 Minor changes to reflect new tool usage
Removed symlink of scripts to u/l/b
Added copy for setupLCD to /opt/pihole/
New spinner added to gravity.sh to reflect new spinner in basic-install.sh and uninstall.sh
2016-03-28 18:44:54 -05:00
nate
fee55fa642 Added gravity.sh to the list of options 2016-03-28 18:37:49 -05:00
nate
76ea1962be Controller script, pihole.sh added
Syntax changes for user output to be consistent
2016-03-28 18:31:21 -05:00
nate
df3cf72d29 Merged branch ScriptCleanup-Dev into development 2016-03-28 17:08:28 -05:00
nate
32dd594f06 Check if lighttpd has been uninstalled before removing conf files
If is still installed, then restore the original lighttpd.conf file.
2016-03-28 17:08:19 -05:00
nate
ba0ba1de94 Merged branch ScriptCleanup-Dev into development 2016-03-28 17:02:43 -05:00
nate
660e71f032 Added blacklist.sh to be removed on uninstall from u/l/b 2016-03-28 16:32:42 -05:00
nate
169e6fdba4 Merged branch ScriptCleanup-Dev into development 2016-03-28 16:25:32 -05:00
nate
138aeaf8c7 Added uninstall.sh and updateDashboard.sh to be removed on uninstall from u/l/b 2016-03-28 16:25:12 -05:00
nate
33669793b7 Merged branch ScriptCleanup-Dev into development 2016-03-28 16:21:33 -05:00
nate
80f4bf9475 Bug fixes
Fixed DONE! to done!
Fixed symlinking user scripts
Fixed /n to \n
2016-03-28 16:20:23 -05:00
nate
bed869b08e .DS_Store banished! 2016-03-28 16:02:36 -05:00
nate
f2150ee7e1 Merge conflict resolution 2016-03-28 13:07:51 -05:00
nate
eaf89995ee Merge conflict resolution 2016-03-28 12:59:45 -05:00
nate
2311b42bca Merge branch 'ScriptCleanup-Dev'
Conflicts:
	README.md
	advanced/Scripts/blacklist.sh
	advanced/Scripts/piholeDebug.sh
	advanced/Scripts/whitelist.sh
	automated install/basic-install.sh
	gravity.sh
2016-03-28 12:58:44 -05:00
nate
a4fbccac9b Merge conflict resolution 2016-03-28 12:53:21 -05:00
nate
a0cf93a7ca Merge branch 'PiholeDebug'
Conflicts:
	README.md
2016-03-28 12:22:42 -05:00
nate
f444c7d4a5 Merge resolution 2016-03-28 12:21:49 -05:00
nate
8ef4c12f97 Merge branch 'ScriptCleanup'
Conflicts:
	README.md
	advanced/Scripts/blacklist.sh
	advanced/Scripts/whitelist.sh
	automated install/basic-install.sh
	gravity.sh
2016-03-28 12:21:18 -05:00
nate
c520c55ff4 Addressed UAT issues and moved scripts to /opt/pihole
Symlinks now include the /etc/pihole scripts in the user's PATH.
2016-03-28 10:24:13 -05:00
nate
6145748bfb Change single echo to printf to forrect \t interpretation 2016-03-27 20:36:31 -05:00
nate
1a1026b367 Consistent stdout to match basic-install.sh and uninstall.sh 2016-03-27 14:44:42 -05:00
Nate
8c45bd32b7 Loop through dependencies for future expansion.
Syntax of uninstall script now matches basic-install.sh.
More error handling of missing default files.
Force user prompt for removing packages when uninstalling.
2016-03-27 12:31:05 -05:00
Nate
2b5cee05e6 Check for existing directory before trying to perform operations on it. 2016-03-27 10:59:09 -05:00
Nate
5442954db6 Prompt user to remove each dependent package if they do choose to remove packages at all. 2016-03-27 10:58:48 -05:00
nate
5ee382c8eb Roll back addition of piholeDebug.sh (production master base) 2016-03-26 17:00:52 -05:00
Nate
901cb44f5e Added /etc/.pihole/ and /var/log/*pihole* to uninstall as well as fixed missing call to removeNoPurge. 2016-03-26 16:57:34 -05:00
Nate
7388461ede Modularized uninstall for cleanliness and robust usability. 2016-03-26 16:57:27 -05:00
nate
5223627b71 read locks echos... reordered to warn user 2016-03-26 16:57:22 -05:00
nate
646c4a3ccc Newline not read correctly in prompt 2016-03-26 16:57:17 -05:00
nate
0b9e78df2c Cleaned code and added prompt for purge on uninstall 2016-03-26 16:57:01 -05:00
nate
a9c24b456d Bug fixes and logging improvements
Finalized for production deployment. Next release targeting a tarball of config files plus additional logging.
2016-03-25 19:04:03 -05:00
nate
b4463bf42c Added test for nslookup
Checks the TESTURL for nslookup is not whitelisted
2016-03-25 16:42:17 -05:00
nate
8f8dc66c70 Ignore whitespace when writing config files 2016-03-24 18:50:53 -05:00
Nate
b746250e71 Made all advanced/Scripts/ executable for consistency. 2016-03-24 18:29:13 -05:00
Promofaux
26b7e7ec8e Merge lighttpd JS changes into development 2016-03-24 23:21:11 +00:00
Promofaux
bc09760c84 Grab changes by @rosskevin. (#386 - lighttpd changes to handle JS files) 2016-03-24 23:19:44 +00:00
Promofaux
ceb229c6ac Merge branch 'master' into development 2016-03-24 23:18:40 +00:00
Promofaux
1e6ac33ef1 Fix merge conflicts 2016-03-24 23:18:14 +00:00
nate
86eafe7a33 Added comparison of gravity.list with Whitelist.txt and Blacklist.txt.
Added additional echos to help read the debug file.
TODO: testNslookup function
2016-03-24 16:21:29 -05:00
nate
00f46dc149 Added Pi 3B to README.md 2016-03-23 14:56:27 -05:00
Jacob Salmela
396c7ab9ee link to tekthing mention
tekthing mentioned us again as one of 5 easy projects for the Raspberry Pi.
2016-03-22 21:21:08 -05:00
Jacob Salmela
fa2cef6395 link to get LED alerts article
added a link to a cool project that makes an LED blink for each ad that gets blocked.
2016-03-21 08:29:19 -05:00
nate
04638c9065 Added 01-pihole.conf from /etc/dnsmasq.d/ to log
Write 01-pihole.conf to debug log
2016-03-20 18:21:35 -05:00
Adam Warner
02bb5b6742 Revert previous change
Reopens #384
2016-03-20 20:50:31 +00:00
Adam Warner
fad5fafa32 Increase disk space to verify...
.. was missing a couple of zeros, and not verifying enough space!

Fixes  #384
2016-03-20 13:26:02 +00:00
nate
b0dd231018 Modified description in header
Removed copied header description from piholeLogFlush.sh and replaced with relevant description.
2016-03-19 21:34:02 -05:00
nate
0b5f005a5d Added piholeDebug.sh script for advanced debugging
Script piholeDebug.sh added to /usr/local/bin to generate a detailed log file for debugging/troubleshooting.
2016-03-19 20:32:11 -05:00
Mcat12
babca8d47b Merge pull request #389 from pi-hole/feature/httpsPull
Secure Pulls now with HTTPS
2016-03-16 08:19:39 -04:00
Dan Schaper
eb462955fe Secure Pulls now with HTTPS
Closes #310
2016-03-16 05:06:03 -07:00
Kevin Ross
b79db36336 no need for the X- header prefix in the string 2016-03-14 22:59:38 -05:00
Kevin Ross
404ea0ce6d copy both the html and js stubs during install 2016-03-14 22:54:45 -05:00
Kevin Ross
d3971b26e4 add a valid js stub 2016-03-14 22:52:02 -05:00
Kevin Ross
a44a201f00 rewrite js files to a valid stub 2016-03-14 22:51:16 -05:00
Mcat12
1d80fdddd4 Merge pull request #372 from Morlok8k/development
fix for older versions of uptime, on development branch.
2016-03-11 15:51:18 -05:00
Mcat12
f09745b4ad Update README.md 2016-03-08 16:28:45 -05:00
Morlok8k
d13ae0610e fix for older versions of uptime, on development branch. 2016-03-08 10:19:01 -08:00
Dan Schaper
3eaa447323 Merge pull request #369 from jpsingleton/development
Optionally block the BBC Breaking News banner
2016-03-08 00:28:18 -08:00
Mcat12
604506da10 Merge pull request #370 from stejoo/development
Fix URL for Windows 10 Telemetry list.
2016-03-07 18:31:56 -05:00
Stefan Joosten
122ce11381 Fix URL for Windows 10 Telemetry list. 2016-03-08 00:23:39 +01:00
James Singleton
8cbd9f7f08 Optionally block the BBC Breaking News banner 2016-03-07 13:31:50 +00:00
Dan Schaper
7c41e5bafc Merge pull request #367 from yoosi/fix-trailling-whitespace
Fix trailing whitespace
2016-03-05 23:17:31 -08:00
Carter Maxwell
4452f784a8 remove trailing whitespace basic-install.sh 2016-03-05 21:16:23 -08:00
Carter Maxwell
ced0ae0d65 remove trailing whitespace whitelist.sh 2016-03-05 21:15:53 -08:00
Carter Maxwell
876c51302a remove trailing whitespace updateDashboard.sh 2016-03-05 21:15:36 -08:00
Carter Maxwell
a6877e7c13 remove trailing whitespace chronometer.sh 2016-03-05 21:15:11 -08:00
Carter Maxwell
f633d1fa5b remove trailing whitespace blacklist.sh 2016-03-05 21:14:56 -08:00
Carter Maxwell
4f90b41343 remove trailing whitespace dnsmasq.conf.original 2016-03-05 21:14:17 -08:00
Carter Maxwell
e4ddf8bc33 remove trailing whitespace gravity.sh 2016-03-05 21:13:43 -08:00
Carter Maxwell
613ab9febc remove trailing whitespace adlists.default 2016-03-05 21:13:23 -08:00
Carter Maxwell
e92cceecc1 remove trailing whitespace README.md 2016-03-05 21:12:58 -08:00
Jacob Salmela
3283f3ed7d Show off our pretty dashboard 2016-03-04 12:07:29 -06:00
Jacob Salmela
0ed30b802d adafruit blog mention 2016-03-04 11:52:19 -06:00
Dan Schaper
beefff8cce Merge pull request #362 from pi-hole/Social-README
Add social addresses
2016-03-04 04:41:54 -08:00
Dan Schaper
b1554d6a89 Add links 2016-03-04 04:38:31 -08:00
Mcat12
4230b03884 Update README.md 2016-03-04 07:34:17 -05:00
Dan Schaper
2182b8339e Add social addresses 2016-03-04 04:22:54 -08:00
Mcat12
b07b77c58f Update README.md 2016-02-29 20:09:49 -05:00
Mcat12
6542407fa3 Merge pull request #344 from ChadBHowell/CBH-Update_README.md
Update README.md
2016-02-29 20:08:57 -05:00
Mcat12
ebf995536b Merge pull request #354 from pi-hole/protectTheLists
Protect the lists
2016-02-29 20:07:20 -05:00
Mcat12
adcd7f10ee Fixed password input 2016-02-28 15:24:38 -05:00
Mcat12
af83936047 Added password to install
Saves in password.txt
2016-02-28 15:18:48 -05:00
Chad Howell
c3b5b97a41 Update README.md
Changed wording per @PromoFaux recommendations.
2016-02-25 19:42:43 -05:00
Mcat12
6c58ea18dc Update README.md 2016-02-24 12:02:18 -05:00
Chad Howell
830b287e5d Update README.md
Add NTC CHIP and Debian based distros
2016-02-23 00:08:50 -05:00
Adam Warner
52549d51ab Update adlists.default
Add extra warning regarding mahakala.is list. See comment by @leichterleben in #341
2016-02-22 09:24:17 +00:00
Adam Warner
fe05ed13e5 Merge pull request #314 from pi-hole/development
Pi-hole v2.5.3
2016-02-21 21:04:16 +00:00
Adam Warner
3a46e7fc0a Merge pull request #338 from pi-hole/auto-chronometer-lcd-setup
Auto chronometer lcd setup
2016-02-21 20:48:46 +00:00
Adam Warner
88674e21cf Update gravity.sh
Clear out `pihole.*` files from `/etc/pihole` as they are no longer needed.
2016-02-21 20:45:56 +00:00
Adam Warner
a0673c7028 Update basic-install.sh
Increase required free bytes.
2016-02-21 20:38:05 +00:00
Mcat12
592af80659 Update adlists.default 2016-02-21 14:19:57 -05:00
Adam Warner
3ec9b3b021 Merge pull request #327 from pi-hole/slamanna212-development
Additional upstream DNS choices, plus ability to add custom upstream DNS
2016-02-21 18:40:34 +00:00
Promofaux
ca2d3a192c add double bracket notation to lines 396, 399, 403 . Fixes error raised by @jacobsalmela 2016-02-21 18:38:34 +00:00
Adam Warner
209bf7d746 Merge pull request #339 from pi-hole/adlist-changes
Adlist.default changes
2016-02-21 18:32:14 +00:00
Promofaux
13777cc1aa update default list to include StevenBlack's amalgamated list (remove seperate lists included in that list). Take advantage of new support for commenting and blank lines 2016-02-21 18:12:57 +00:00
Promofaux
bffc77e478 Add support for comments and blank lines in adlists.default/adlists.list 2016-02-21 17:45:25 +00:00
Promofaux
0ebb7eecdb Verify Custom DNS IP is a valid IP address 2016-02-20 17:33:20 +00:00
Jacob Salmela
99863bb799 pihole on ubuntu 14.04
Also moved a link from "coverage" into "projects" as it was more appropriate
2016-02-20 10:33:04 -06:00
Promofaux
800d2f0859 Add back in whiptail dialog to verifyFreeDiskSpace() 2016-02-20 16:17:29 +00:00
Promofaux
f397844603 Remove conflicted merge markup. Not sure how that got through. 2016-02-20 16:08:02 +00:00
Promofaux
2d895f328c Fix merge conflicts 2016-02-20 15:38:39 +00:00
Promofaux
b14b182084 change regex to test for one or more numbers, not 0 or more numbers. 2016-02-20 15:17:57 +00:00
Promofaux
8687d25d88 make prepopulation of freetext on custom DNS provider a bit more intelligent 2016-02-20 15:12:13 +00:00
Promofaux
7001edcd1d Change 'Other' to 'Custom', add explanation to whiptail. Convert spaces to tabs. 2016-02-20 15:00:03 +00:00
Mcat12
4a1e88f4bf Fixed Pi-hole user not being created 2016-02-20 09:48:06 -05:00
Promofaux
b41608d40b Include fix for regex in verifyFreeDiskSpace() 2016-02-20 14:44:56 +00:00
jacobsalmela
c5d45edf2d consoleblank=0
This makes sure the LCD screen does not go blank after a set period of
time.
2016-02-20 01:15:14 -06:00
jacobsalmela
0116b6341c updated script
Added links to where code was borrowed from
added reboot at the end
also added a few things commented out that might be useful for some
people to learn.
2016-02-20 01:14:48 -06:00
Adam Warner
3e7ecda80f Merge pull request #242 from ChadBHowell/CBH---pihole-system-user-v2
Add user pihole if user does not exsist
2016-02-19 09:31:41 +00:00
jacobsalmela
f0e5b2b6f9 Merge branch 'master' into auto-chronometer-lcd-setup 2016-02-18 16:45:47 -06:00
Jacob Salmela
5976ec9323 Merge pull request #330 from fayetted/Issue_322
Account for CHIP pc not having root on '/'
2016-02-17 17:42:32 -06:00
Adam Warner
eb3463fad1 Merge pull request #331 from pi-hole/master
Update Dev from master
2016-02-17 22:24:27 +00:00
Adam Warner
5f9e5869e9 Create ISSUE_TEMPLATE.md 2016-02-17 22:23:01 +00:00
Adam Warner
950480bb77 Update PULL_REQUEST_TEMPLATE.md 2016-02-17 22:20:01 +00:00
Adam Warner
6530ec58c7 Update PULL_REQUEST_TEMPLATE.md 2016-02-17 22:18:43 +00:00
Adam Warner
b1515c5e3f Rename PULL_REQUEST_TEMPLATE to PULL_REQUEST_TEMPLATE.md 2016-02-17 22:17:20 +00:00
Adam Warner
6581f119fd Update PULL_REQUEST_TEMPLATE 2016-02-17 22:16:04 +00:00
Adam Warner
9ad7c12710 Create PULL_REQUEST_TEMPLATE 2016-02-17 22:15:33 +00:00
Daniel Fayette
8e289215b4 Account for CHIP pc not having root on '/' 2016-02-17 10:00:36 -06:00
Adam Warner
3718c3be56 Merge pull request #328 from Hippyjake/development
closes #325
2016-02-17 12:51:03 +00:00
Adam Warner
c3c051385c Update basic-install.sh
Corrected mistake in previous commit
2016-02-17 12:42:31 +00:00
Hippyjake
21c688a8a8 add uptime -p to chrono script 2016-02-16 18:06:49 -07:00
Promofaux
668b883651 Merge branch 'fayetted-Issue_309' into slamanna212-development 2016-02-17 00:08:48 +00:00
Promofaux
c396aeed52 Correct miss-spelled variables on lines 398 and 403 2016-02-17 00:07:14 +00:00
Adam Warner
40f541bc31 update verifyFreeDiskSpace()...
addresses #322. Will now check free space on the first file system output by 'df- lkP`, as opposed to `/` to make pi-hole more compatible with other distros.
2016-02-16 23:00:48 +00:00
Daniel Fayette
44974f98a0 Merge remote-tracking branch 'upstream/development' into Issue_309 2016-02-16 16:57:04 -06:00
Adam Warner
b7cb3df9bc Merge pull request #305 from fayetted/Issue_304
Set file permisions on `/etc/pihole` directory. fixes #304
2016-02-16 22:54:54 +00:00
Daniel Fayette
432e6d5395 Cleaned up output, Fixed Cancel button 2016-02-16 16:47:36 -06:00
Daniel Fayette
fdf805bc7b Merged with @slamanna212 code to add 3 new DNS providers. 2016-02-16 16:38:06 -06:00
Promofaux
73e13f3875 Merge branch 'development' of https://github.com/slamanna212/pi-hole into slamanna212-development 2016-02-16 22:22:59 +00:00
slamanna212
da959e1296 Increased Size Of Whiptail Dialog
Increased Size of Whiptail Dialog to 5 to show all 5 DNS choices
2016-02-15 17:55:14 -05:00
slamanna212
94600c54cb Added Default State for New DNS Options
Added default state of off for 3 new DNS options to better match existing code
2016-02-15 17:54:17 -05:00
Mcat12
c4fc2e089d Removed dead list
Fixes #316
2016-02-15 17:36:59 -05:00
slamanna212
06444c1c27 Add 3 More DNS Server Choices Durring Install
Added Level 3 , Norton, and Comodo DNS Choices
2016-02-15 17:31:31 -05:00
Adam Warner
f8897942f3 Update adlists.default
Remove 'securemecca.com` list, as they block other content, not just ads and malware.

Pi-hole is about ad-blocking and privacy, not about censoring content.
See :https://www.reddit.com/r/pihole/comments/45xuh8/slug/d00xg02
2016-02-15 19:26:39 +00:00
Adam Warner
4d0b4cfb36 Update basic-install.sh
Do not stop dnsmasq when installing. Instead run `service dnsmasq restart` once installation is complete.
This may have been the cause of issues outlined in #218
2016-02-14 23:44:23 +00:00
Promofaux
7116634739 Merge branch 'development' for release 2.5.2 2016-02-14 23:09:09 +00:00
Promofaux
36492f4857 Merge branch 'master' into development 2016-02-14 23:08:48 +00:00
Adam Warner
3a887af513 Addresses #313
path to white and blacklist scripts moved to variables and updated to include full path
2016-02-14 22:24:21 +00:00
jacobsalmela
3142992c57 update 2016-02-14 10:53:13 -06:00
Jacob Salmela
68a9b88b58 docker container for Pi-hole 2016-02-14 10:20:02 -06:00
Adam Warner
3c801e5b91 Merge pull request #301 from fayetted/Issue_163-2
Check for 25mb of free disk space before install
2016-02-14 13:29:07 +00:00
Daniel Fayette
ecd46f8560 Allow installer to specify own DNS servers
Offers "other" option.
Gives Installer chance to review settings before continuing.
2016-02-13 22:36:24 -06:00
Adam Warner
dee8ce587d Merge pull request #306 from pi-hole/IPv6-Killer
Fixes IPv6 surviving a reinstall
2016-02-14 03:03:56 +00:00
Promofaux
4c24186911 Fixes divide by zero error. 2016-02-14 02:58:09 +00:00
Mcat12
af360a1a20 Merge pull request #298 from fayetted/Issue_297
Fixes gravity_transport variable interpretation.
2016-02-10 20:10:05 -05:00
Mcat12
b5406240c6 Fixes IPv6 surviving a reinstall 2016-02-10 19:07:48 -05:00
Daniel Fayette
73bfbba5f7 Set file permisions on /etc/pihole
Ensures file permisions on $piholeDir before reload/restart of dnsmasq
2016-02-10 15:07:31 -06:00
Daniel Fayette
46d7bfecdb Check for 25mb of free disk space before install
Function will check the free space of / (root)

If the free space is less than 25MB it will give directions
  on how to expand the disk.

Fixes #163
2016-02-10 09:34:06 -06:00
Daniel Fayette
a734927591 Fixes gravity_transport variable interpretation.
Adding (") around Variables passed to function ensures
  spaces are handled and that missing arguments are
  accounted for.
2016-02-09 19:51:03 -06:00
Promofaux
255706e173 Bring dev branch up to date with master bug fixes 2016-02-09 20:44:49 +00:00
Promofaux
b2fbf46e60 Added more adlists to the defaults. By default we now block ~ 155,600 ad and tracker domains. Includes NoTrack's tracker list. 2016-02-09 20:43:45 +00:00
Mcat12
e37495d80b Merge pull request #294 from soukron/master
Replaced 'sudo' with $SUDO variable
2016-02-08 16:56:42 -05:00
Sergio G
beb6b950f7 Replaced 'sudo' with 2016-02-08 22:26:41 +01:00
Promofaux
2d1c0be24e fix reference to install log location. #282 2016-02-06 13:04:54 +00:00
Promofaux
9941651b3c Addresses changes as requested by @jacobsalmela in #282 2016-02-06 13:02:21 +00:00
Mcat12
31fda124f3 Add to contributor info 2016-02-05 17:29:38 +00:00
Adam Warner
b7f6498a5c Create CONTRIBUTING.md
Initial commit. Basic list, could probably do with some work....
2016-02-05 17:29:19 +00:00
Mcat12
282da1c2b6 Add to contributor info 2016-02-05 12:22:23 -05:00
Adam Warner
8e6ec6ef0c Create CONTRIBUTING.md
Initial commit. Basic list, could probably do with some work....
2016-02-05 15:50:15 +00:00
Adam Warner
704b3ee673 Merge pull request #286 from pi-hole/docsAPlusSupport
Add A+ to Raspberry Pi Platforms
2016-02-04 13:27:12 +00:00
Dan Schaper
c18a1c3eca Add A+ to Raspberry Pi Platforms
A+ Supported
2016-02-04 01:17:00 -08:00
Adam Warner
4e1870197e Merge pull request #285 from pi-hole/altInstallDocs
Add alternative installation method
2016-02-03 20:41:45 +00:00
Dan Schaper
3bf61cce95 Add alternative installation method
Add installation method for non-pipe installs
2016-02-03 10:53:23 -08:00
Jacob Salmela
68889b0544 Merge pull request #280 from CDeeRON/patch-1
ATV Hulu domain add
2016-02-02 11:46:13 -06:00
CDeeRON
8a90a47fc2 ATV Hulu domain add
added ads-e-darwin.hulu.com which I found to be used when serving ADs on ATV.
2016-02-02 12:20:30 -05:00
Adam Warner
c93c4cc5e6 Update basic-install.sh
ahem
2016-02-01 22:28:35 +00:00
Promofaux
06cba7defd Fix script output around new changes 2016-02-01 22:25:28 +00:00
Promofaux
8b76bbe51d Merge github.com:pi-hole/pi-hole 2016-02-01 22:19:37 +00:00
Promofaux
aa1d3a4c2e Fix logic in versionCheckDNSmasq, as dnsmasq.conf was being overwritten every time install was run. Fixes @kmr2319 's concern in #98 2016-02-01 22:19:17 +00:00
Adam Warner
66817411f9 Merge pull request #275 from pi-hole/development
Release 2.5
2016-02-01 09:53:25 +00:00
Adam Warner
23c3196935 Merge pull request #277 from pi-hole/cosmeticFix
Upstream DNS Whiptail changes
2016-02-01 07:55:52 +00:00
Dan Schaper
38e73a188a Fix array selection 2016-02-01 02:11:55 +00:00
Dan Schaper
3fdf588cc9 Costmetic fixes, change DynDNS to OpenDNS 2016-02-01 02:09:11 +00:00
Adam Warner
9412fe8a0a Delete version.txt
@mcat12 said it's not needed anymore.
2016-01-31 21:01:13 +00:00
Adam Warner
c6450e60e1 Update version.txt
Change version number to 2.5
2016-01-31 20:58:11 +00:00
Promofaux
8126e9f4b1 Merge branch 'master' into development 2016-01-31 20:48:19 +00:00
Promofaux
70e4104c17 Merge remote-tracking branch 'origin/development' 2016-01-31 20:47:10 +00:00
Promofaux
29e0e1760b Fixes #154 #269. No need for PR #214 any more. 2016-01-31 20:39:12 +00:00
Dan Schaper
442b7b4c4d Merge pull request #267 from pi-hole/CBH/UpstreamDNS
Upstream DNS is now user configurable. Configuration files are now stored in sub-directories instead of as replacements to the package configs.
2016-01-30 18:09:00 -08:00
Dan Schaper
548153fd5e Merge pull request #270 from ChadBHowell/patch-1
Add error checking for grep and correct typos
2016-01-30 17:53:20 -08:00
Chad Howell
5060ed8970 Add error checking for grep and correct typos 2016-01-30 20:51:28 -05:00
Dan Schaper
d18e064d21 Remove no longer needed change to config file
Config file moved, no longer needed command removed.
2016-01-30 16:30:38 -08:00
Mcat12
0cfb3c7ab4 Fixed config issue 2016-01-30 19:21:31 -05:00
Mcat12
2e0c2f2e77 Merge pull request #268 from pi-hole/licenseUpdate
Updated License
2016-01-30 15:21:53 -05:00
Mcat12
48f9a61ff0 Updated License 2016-01-30 15:12:40 -05:00
Mcat12
0042e3ae02 Merge branch 'development' into CBH/UpstreamDNS
Conflicts:
	automated install/basic-install.sh
2016-01-30 13:28:01 -05:00
Jacob Salmela
a1204cf246 splunk app 2016-01-30 12:36:56 -05:00
Mcat12
fc499d9e7c Merge pull request #266 from pi-hole/coverage
splunk app
2016-01-30 12:31:55 -05:00
Jacob Salmela
b83704dac2 splunk app 2016-01-30 10:20:01 -06:00
Adam Warner
b93e46de14 Update basic-install.sh 2016-01-30 14:55:02 +00:00
Promofaux
3c49aa9d9d Merge remote-tracking branch 'origin/master' into development 2016-01-30 14:38:49 +00:00
Promofaux
a448b48eaf Merge remote-tracking branch 'origin/master' 2016-01-30 14:38:33 +00:00
Adam Warner
3c6551f202 Merge pull request #259 from pi-hole/CBH/Bugfix/Formatting
Cbh/bugfix/formatting
2016-01-30 14:37:02 +00:00
Promofaux
9e0c7ed29a Merging from CBH bugfix 2016-01-30 14:34:12 +00:00
Promofaux
677293f3a9 Merge branch 'CBH/Bugfix/Formatting' 2016-01-30 14:29:52 +00:00
Promofaux
34bd7ce3a7 Merge branch 'master' into CBH/Bugfix/Formatting 2016-01-30 14:29:01 +00:00
Adam Warner
21a07e7419 Merge pull request #263 from pi-hole/newVersioning
New versioning system
2016-01-29 20:47:10 +00:00
Adam Warner
6b50ea6504 Merge pull request #249 from pi-hole/OperationBlockListFromGravity
Seperate blocklist sources from gravity.sh to allow users to manage their own list of blocklists that persists through installs/upgrades
2016-01-29 19:39:11 +00:00
Mcat12
895647b908 Don't copy version to install dir 2016-01-29 12:32:58 -05:00
Mcat12
0ece58b9cb Add version 2016-01-29 12:23:03 -05:00
Mcat12
49a56cf131 Start on new versioning 2016-01-29 08:25:35 -05:00
PromoFaux
5fa0d798e2 Update README.md
Add link to segment on MSDN/Channel 9's Defrag Show
2016-01-28 10:13:55 +00:00
Dan Schaper
cadc506aa5 Remove extraneous whitespace from basic-install.sh 2016-01-28 09:25:00 +00:00
Chad Howell
eee0ccef8c Merge remote-tracking branch 'refs/remotes/pi-hole/master' into CBH---pihole-system-user-v2 2016-01-27 22:44:14 -05:00
Chad Howell
088bd632ab Merge remote-tracking branch 'refs/remotes/pi-hole/master' into CBH---Descrition-for-pi-hole-v1-back-function
# Conflicts:
#	automated install/basic-install.sh
2016-01-27 22:43:43 -05:00
Promofaux
52b5d7143b Merge branch 'development' 2016-01-27 23:48:24 +00:00
PromoFaux
60bf14d4dd Merge pull request #255 from pi-hole/Bugfix/InstallScriptFix
Force apt-get update if it has not been run today. This will stop dependency errors on a fresh install.
2016-01-27 23:43:38 +00:00
Promofaux
c00fb44cee Do not force apt-get upgrade on the user. Instead, advise them. We only need to make sure apt-get update has been run 2016-01-27 23:28:36 +00:00
Promofaux
5111880edf remove erroneous -o 2016-01-27 22:35:52 +00:00
Promofaux
3d78b44a8e Changes as in #253, but with less commits to keep the repo tidy 2016-01-27 22:32:08 +00:00
Promofaux
f2d71d41a8 Merge branch 'OperationBlockListFromGravity' of github.com:pi-hole/pi-hole into OperationBlockListFromGravity
Conflicts:
	automated install/basic-install.sh
2016-01-27 21:16:35 +00:00
Promofaux
b75b290351 adlists.default copied on each run of gravity. In case it has been overwritten 2016-01-27 21:14:23 +00:00
Promofaux
701ae06e4a Move copying of adlists.default to gravity.sh 2016-01-27 21:14:06 +00:00
PromoFaux
edd0b809b7 Merge pull request #254 from pi-hole/master
a
2016-01-27 15:47:54 +00:00
PromoFaux
98a0d17431 Update basic-install.sh
Emergency Bug fix. I take the blame for this one, it got lost in a merge!
2016-01-27 15:28:40 +00:00
PromoFaux
b1bd56cd51 Update basic-install.sh 2016-01-27 09:47:28 +00:00
Chad Howell
ae336da7a1 Fix formatting, use consistent style, add comments
Fix formatting, use consistent style, add comments
2016-01-27 01:11:38 -05:00
PromoFaux
4a61b80dd6 Update adlists.default
Add new line to end of file.. Github was complaining
2016-01-26 23:14:38 +00:00
Promofaux
ef99fe2d18 Add line to copy default ad list into /etc/pihole 2016-01-26 20:33:49 +00:00
Promofaux
352ebc3193 outsource list of adlists to a file in /etc/pihole/. 2016-01-26 20:26:09 +00:00
Promofaux
556799428c Contains default adlists. 2016-01-26 20:22:29 +00:00
Dan Schaper
0b077b9601 Merge pull request #244 from pi-hole/development
Code update for 2016/01/25.
2016-01-25 11:04:09 -08:00
PromoFaux
80bec9c5cf Delete install
Not sure how this got in here... :)
2016-01-25 16:28:26 +00:00
PromoFaux
c24685c49a Merge pull request #243 from pi-hole/HotFix/InstallScript
Hot fix/install script
2016-01-25 16:22:36 +00:00
Adam Warner
2b99fa81f3 Tidy up output lines around new code 2016-01-25 16:08:48 +00:00
Adam Warner
e87443b3e4 add 'http://mirror1.malwaredomains.com/files/justdomains' to list of ad-list sources, can be removed if it causes problems 2016-01-25 15:53:49 +00:00
Adam Warner
74ea597bd8 Cosmetic enhancement. Add the domain 'Pi-Hole.IsWorking.OK' to the top of the domain list to return a friendlier looking domain when pinging a blocked host! 2016-01-25 15:52:22 +00:00
Adam Warner
354a42dd00 close quotes on line 318!!! 2016-01-25 12:49:04 +00:00
Adam Warner
4cedca3427 add in a prompt to give users the option to quit installation or continue 2016-01-25 12:47:03 +00:00
Dan Schaper
e99be28a73 Variable missing $ 2016-01-25 02:31:03 -08:00
Dan Schaper
32389e4ab8 Terminate string with missing quote 2016-01-25 02:27:44 -08:00
Adam Warner
01d7fc0ac9 Removed apt-get update/upgrade, instead checking for updates availible and advising user to update/upgrade after installation of pi-hole. Addresses issue #218 2016-01-25 10:07:12 +00:00
Chad Howell
d74c8261aa dnsFile2="/etc/dnsmasq.conf.orig"
added .orig
2016-01-25 01:38:41 -05:00
Chad Howell
ac373545d0 versionCheckDNSmasq() fixups
versionCheckDNSmasq() fixups per dschaper's suggestions.
2016-01-25 01:27:10 -05:00
Chad Howell
a21948d2c6 Typo fix
Typo fix
2016-01-25 01:09:45 -05:00
Chad Howell
940480effe Revert "Fix backup to use new 01-pihole.conf location"
This reverts commit 0c444e6f2b.
2016-01-25 00:57:36 -05:00
Chad Howell
29c593b8b0 Add user pihole if user does not exsist
Check if user pihole exist and add if not.  This will give pihole its
own system user without a login or home directory that is not system
dependent.
2016-01-25 00:28:53 -05:00
Chad Howell
0c444e6f2b Fix backup to use new 01-pihole.conf location
Fix backup to use new 01-pihole.conf location
2016-01-25 00:12:51 -05:00
Chad Howell
6cf6e16d22 Add ability to choose upstream DNS servers
Give the user the ability to choose between Google and DynDNS upstream
servers.  Then insert the chosen DNS servers in to
/etc/dnsmasq.d/01-pihole.conf.  Todo: extend choices to include manually
entered DNS servers.
2016-01-25 00:11:00 -05:00
Chad Howell
abef758ff6 Get ready for user selected DNSs
Prep for using sed to insert user selected DNSs into 01-pihole.conf.
Selections will come from dialog during install script containing the
following choices: Google, DynDNS, and eventually 2 custom DNS servers.
2016-01-25 00:05:17 -05:00
Chad Howell
e5f9663a0e Move dnsmasq.conf to dnsmasq.d/01-pihole.conf
Check if /etc/dnsmasq.conf is from pihole.  If so, replace with an
original and install new in .d directory.  Add and unmolested version of
dnsmasq.conf to the ./advanced directory.
2016-01-25 00:04:02 -05:00
Chad Howell
ff5ed561cc Rename dnsmasq.conf to 01-pihole.conf
Rename dnsmasq.conf to 01-pihole.conf to prepare for move to
/etc/dnsmasq.d/ per the normal way of modding configs on Debian based
systems.
2016-01-24 23:54:00 -05:00
Promofaux
6b76270889 Remove spinner call when adding URLs of adlist to array.. seems to break it. 2016-01-24 22:30:12 +00:00
PromoFaux
5d040f45c8 Merge pull request #239 from pi-hole/development
Development
2016-01-24 22:12:04 +00:00
Promofaux
cebdcc71a7 Add $SUDO call to spinner() in gravity.sh 2016-01-24 21:27:25 +00:00
Promofaux
eec14be10d add $SUDO into spinner control. 2016-01-24 21:19:23 +00:00
Promofaux
c179936b54 add $SUDO 2016-01-24 20:49:37 +00:00
Promofaux
649a565801 run apt-get install as sudo when resolving dependencies 2016-01-24 20:35:24 +00:00
Promofaux
2d4ebf5eb5 FIX CONFLICTS 2016-01-24 20:29:22 +00:00
Promofaux
754beed3a1 Bring up to date with master 2016-01-24 20:22:41 +00:00
Promofaux
df5059944b Merge branch 'Promofaux-InstallRework' into development 2016-01-24 18:51:10 +00:00
Promofaux
9f0927351d Merge from #236 2016-01-24 18:49:25 +00:00
Promofaux
736edf44e4 Added date check before running apt-get update/upgrade. Wont run apt-get update/upgrade if it has already been run today 2016-01-24 17:53:27 +00:00
Promofaux
8ecf8eb76c output to match other scripts 2016-01-24 17:18:37 +00:00
Promofaux
3cd1a5b1d5 ... Helps if I add the changes to the repo file, and not the test file on my pi. 2016-01-24 16:51:54 +00:00
Promofaux
39507b9d0d Added echo ':::' to the top of the file 2016-01-24 16:47:38 +00:00
Promofaux
dfcf9d133e Make output make a bit more sense 2016-01-24 16:46:00 +00:00
Promofaux
8a74942da7 Cleaned up output before running gravity.sh 2016-01-24 16:41:11 +00:00
Promofaux
2fe42138c7 removed a space 2016-01-24 16:37:15 +00:00
Promofaux
1563146918 improvements to git functions (passing parameters). Added >/dev/null to attempt to supress output from apt-get upgrade 2016-01-24 16:33:53 +00:00
Promofaux
cf3aea8075 uncomment the apt-get update/upgrade! 2016-01-24 15:27:40 +00:00
Promofaux
a539dc41f3 Tidy up gravity output to match install script 2016-01-24 15:25:24 +00:00
Promofaux
6cea480210 Huge update! Base files now cloned from github (or updated if already existing) and copied out to the correct directories. Web admin interface is now cloned from hithub (or updated if already existing). Packages are checked before we go ahead and try to install them anyway. 2016-01-24 03:31:12 +00:00
PromoFaux
3b4bb48a0f Merge pull request #234 from ChadBHowell/CBH---Dependencies
Add unzip to the dependencies
2016-01-24 00:13:49 +00:00
Promofaux
206717828b Improve spinner function. 2016-01-23 22:25:30 +00:00
Chad Howell
316d26ede2 Add unzip to the dependencies
unzip is required for the install script to complete.  Some distros do
not have it installed by default.
2016-01-23 16:29:52 -05:00
jacobsalmela
71fd32b1f4 script to set everything up 2016-01-23 12:56:27 -06:00
Jacob Salmela
f2e471707e Pi-hole chrome extension 2016-01-23 12:39:09 -06:00
jacobsalmela
fcf3b4e4e2 file to set lcd font size 2016-01-23 11:48:12 -06:00
Dan Schaper
1e735c26c4 Repo Change QuickFix
QuickFix for Repo location change.
2016-01-22 20:46:10 -08:00
PromoFaux
7c5df5dfe3 Merge pull request #229 from PromoFaux/TransferPrep
Changed URLs in installScripts() to match new organisation links
2016-01-23 01:34:47 +00:00
PromoFaux
5b62f91bb4 Update README.md
Whoops, forgot the readme.. *embarrassed face*
2016-01-23 01:31:33 +00:00
Promofaux
e8b8fb0835 s 2016-01-23 00:23:32 +00:00
Promofaux
6663ced38d Initial commit 2016-01-23 00:13:16 +00:00
Dan Schaper
0b03264fb0 Merge pull request #225 from jacobsalmela/bugfix/createPiholeDir
Bugfix/create pihole dir
2016-01-22 16:11:15 -08:00
Promofaux
c99a8a9b15 initial commit 2016-01-22 20:30:32 +00:00
Dan Schaper
ea0fb15ff2 Move creation of pihole directory out of IPv6 function 2016-01-22 19:48:55 +00:00
Adam Warner
05a59b17be Changed URLs in installScripts() to match new organisation links 2016-01-22 16:50:01 +00:00
Leo
8b18fdd322 Update gravity.sh 2016-01-21 17:19:09 -05:00
Leo
1349f584be Use Sudo Detection from Installer in Gravity.sh Also
Prevents errors from being thrown when gravity.sh is run as root and the user doesn't have sudo installed (just like install.sh does)
2016-01-21 17:14:55 -05:00
Dan Schaper
48db85187e Merge pull request #219 from jacobsalmela/master
Update Development
2016-01-21 12:19:12 -08:00
Dan Schaper
d1e054d713 Merge pull request #216 from mechaxl/master
Fixing minor typos in basic-install.sh
2016-01-21 09:48:44 -08:00
Kenneth Koski
ce578534fe Fixing minor typos in basic-install.sh 2016-01-21 11:33:49 -06:00
Dan Schaper
c7c4a5c602 Merge pull request #215 from jacobsalmela/development
Merge development into master
2016-01-21 08:42:53 -08:00
Promofaux
3f40a95929 Whoops, should probably commit more often. Massive overhaul. Cleaned up output, less verbose (will still output errors, but gets rid of anything not needed) Added a spinner so users don't think it has stalled 2016-01-20 23:34:18 +00:00
Promofaux
5c25c42da8 Make installPiholeWeb() more inteliigent. Checks for existence of /var/www/html/pihole, and only downloads from repo if it does not exist. Will stop install script from overwriting any tweaks users have made to index.html 2016-01-20 22:14:17 +00:00
Promofaux
96011bc2ae make InstallWebAdmin() a bit more intelligent, and less verbose. Checks if installing over an existing installation, and if so, will remove existing webadmin folder. 2016-01-20 22:02:54 +00:00
Promofaux
4f59577fd1 Remove SUDO from line that runs gravity.sh to stop files in /etc/pihole being owned by root 2016-01-20 21:20:52 +00:00
Dan Schaper
494fcd60ab Merge branch 'development' of https://github.com/jacobsalmela/pi-hole into development 2016-01-20 05:25:49 +00:00
Mcat12
544919175c Added back in debugging response header 2016-01-20 05:23:30 +00:00
Mcat12
ede8f4714f Removed extra http redirect 2016-01-20 05:23:15 +00:00
Dan Schaper
b512496818 Merge pull request #207 from jacobsalmela/bugfix/Chronometer
Bugfix for Chronometer
2016-01-19 17:42:41 -08:00
Dan Schaper
8094f7234c Merge pull request #202 from PromoFaux/FixChronometer
Fix chronometer
2016-01-19 17:39:46 -08:00
Dan Schaper
7dfd9f0378 Merge pull request #205 from PromoFaux/InstallScript
Clean /etc/pihole/list.* during `basic-install.sh` to set a baseline for install procedures. Fixes #195. Submitted by @PromoFaux.
2016-01-19 16:21:49 -08:00
Promofaux
bc51f88805 Check if any list.* files exist from previous installation, if they do delete them. 2016-01-19 22:52:29 +00:00
Dan Schaper
e04e2537a8 Merge pull request #203 from jacobsalmela/master
Merge master into development
2016-01-19 13:20:21 -08:00
Promofaux
af982a02af Move call to CheckIPv6 function into CalcBlockedDomains, rather than relying on remembering to call it before you call CalcBlockedDomains. 2016-01-19 21:14:01 +00:00
Jacob Salmela
03277899ca Merge pull request #199 from PromoFaux/master
Update Readme to link to whitelist/blacklist wiki page
2016-01-19 12:16:41 -06:00
Adam Warner
6756843be7 Merge pull request #2 from PromoFaux/PromoFaux-patch-1
Update README.md
2016-01-19 17:14:10 +00:00
Adam Warner
ac35417ab0 Update README.md
Updated Whitelist/Blacklist section - added link to wiki
Added information about `chronometer.sh -j`
2016-01-19 17:13:48 +00:00
Adam Warner
092c951078 Merge pull request #1 from jacobsalmela/master
Merge from upstream
2016-01-19 16:26:09 +00:00
Jacob Salmela
9ba38e668a Merge pull request #193 from PromoFaux/Chronometer
Major overhaul of chronometer script
2016-01-18 17:36:33 -06:00
Adam Warner
f665899116 Update chronometer.sh
weirdness
2016-01-18 23:35:21 +00:00
Adam Warner
de464e17cc Update chronometer.sh
Note to self, Find&Replace>Replace All is a bad idea.
2016-01-18 22:24:02 +00:00
Adam Warner
0eed56380d Update chronometer.sh
What, me? Reference the wrong file?
2016-01-18 22:15:39 +00:00
Promofaux
487c26db44 Major overhaul. Added -j option to output stats as JSON formatted string. If run with no option, then chronometer runs as normal. Fixed calculations to match those on the web dashboard. 2016-01-18 22:03:53 +00:00
Jacob Salmela
0a57b43f09 C.H.I.P. ad blocking project 2016-01-17 20:55:02 -06:00
Jacob Salmela
48f8d7ed0f pi-hole mentioned in a podcast
Worth a good laugh when they say "shut your pie hole!"
2016-01-17 20:34:48 -06:00
Jacob Salmela
d77399727c Merge pull request #189 from jacobsalmela/whitelist
Switched CRLF to LF (DOS to UNIX)
2016-01-17 18:34:02 -06:00
Jacob Salmela
56ea07c1ec Merge pull request #187 from PromoFaux/whitelist
Switched CRLF to LF (DOS to UNIX)
2016-01-17 08:56:09 -06:00
Promofaux
414ef54cfe Switched CRLF to LF (DOS to UNIX) 2016-01-17 14:09:06 +00:00
jacobsalmela
0a0f00da3b fixes #169
exits if sudo is not installed when run as a regular user
2016-01-16 14:10:03 -06:00
jacobsalmela
bee109c784 better uninstall
More from JoshKastang.  This closes #153 as it is the last step from
his ideas.
2016-01-16 13:56:08 -06:00
jacobsalmela
5d608a2db5 leave system cron alone
Taking JoshKastang’s idea from #153, the system cron file will be left
alone and the pihole.cron gets its own.
2016-01-16 13:48:29 -06:00
jacobsalmela
7c6ef0cfd0 privileged install
This puts sudo in a variable if run as a regular user.  If already
running as root, the script proceeds as normal.  Not a perfect fix, but
should help for install on other systems.
2016-01-16 13:40:09 -06:00
Jacob Salmela
0cf859344a Merge pull request #176 from xd1936/patch-1
Install Figlet Fonts with Toilet
2016-01-16 13:19:15 -06:00
jacobsalmela
6125b2520b install git for updateDashboard.sh
I also download and chmod the script
2016-01-16 13:15:44 -06:00
jacobsalmela
bd5ed2bcf0 move webinterface.sh into scripts folder
I also renamed it to make it is easier to identify.
2016-01-16 13:12:55 -06:00
Jacob Salmela
a2a58f7b39 Merge pull request #180 from jacobsalmela/whitelist
Whitelist/blacklist improvements
2016-01-16 12:24:43 -06:00
Jacob Salmela
87980c6df8 Merge pull request #174 from PromoFaux/whitelist
Whitelisting changes
2016-01-16 11:58:08 -06:00
Promofaux
f9a2ca5c32 Tidy up help text on both scripts. Add quiet help. 2016-01-16 00:47:45 +00:00
Leo
665dfdfe8e Install Figlet Fonts with Toilet
Some OS' don't have Figlet Fonts, which causes `chronometer.sh` to have `error: font small not found` instead of the pretty "Pi-hole" display
2016-01-15 18:50:32 -05:00
Adam Warner
2b0bee085b Incorrect reference to whitelist in the blacklist.sh comments :) 2016-01-15 18:57:20 +00:00
Adam Warner
ddfefb291d Merge branch 'Whitelistingchanges' into whitelist 2016-01-15 18:45:59 +00:00
Adam Warner
5d842a7533 Merging 2016-01-15 18:45:12 +00:00
Adam Warner
2284a27814 Consumes blacklist.sh now, too. 2016-01-15 15:54:11 +00:00
Adam Warner
f68cf10efa Tidied up a couple of things 2016-01-15 15:54:00 +00:00
Adam Warner
89e3c25a90 Behaves like whitelist, but on the blacklist 2016-01-15 15:53:40 +00:00
Adam Warner
6b1f14647c add reference to blacklist.sh 2016-01-15 15:52:27 +00:00
Adam Warner
14ee4850af Placeholder for blacklist script 2016-01-15 14:50:13 +00:00
Adam Warner
cc62d984d2 Changed whitelist function to outsource to whitelist.sh 2016-01-15 14:49:16 +00:00
Adam Warner
534dbc9b6e added a quiet option for when the script is called by gravity. Less output = less confusion! 2016-01-15 14:48:07 +00:00
Adam Warner
8ad116fe7b Aiming to get whitelist.sh to run either standalone or to be called from gravity.sh. Initial commit 2016-01-15 14:17:55 +00:00
jacobsalmela
ca5e34a9a9 Merge branch 'master' into whitelist
# Conflicts:
#	gravity.sh
2016-01-14 18:12:45 -06:00
Jacob Salmela
9ff1129510 Minibian Pi-hole 2016-01-14 17:11:16 -06:00
Jacob Salmela
4b1dd8a2a5 fixes #158
Running at midnight, not 11:58 in the afternoon.
2016-01-12 17:44:08 -06:00
Jacob Salmela
b5bdfe27be Merge pull request #155 from JoshKastang/webinterface-update
replaces the non-repository managed web interface for pihole and keep…
2016-01-11 17:39:42 -06:00
Jacob Salmela
0ef0b0b661 LCD real-time stats 2016-01-10 14:09:40 -06:00
Josh Kastang
802638ce8b replaces the non-repository managed web interface for pihole and keeps it updated 2016-01-10 19:08:29 +00:00
Jacob Salmela
cfd6e0d65d more coverage and an API 2016-01-10 10:40:58 -06:00
Jacob Salmela
93664aeb4e cleaning up the readme
- removed most of the video images to reduce clutter
- converged the "coverage" and "video" sections into a bulleted list of links
- added a new project link (pi-hole on/off button)
- moved projects up in the page so it's easier to find and see what people are doing with Pi-hole
- removed custom conf section since it will be suited better in the wiki or FAQs
- added a help section
2016-01-04 20:32:46 -06:00
Jacob Salmela
6f9d2d0567 fixes #145
A much more elegant way to get the screen size.
2016-01-02 17:20:33 -06:00
Jacob Salmela
d2b6947886 Merge pull request #146 from iblamefish/multiple-interfaces
installer - only select first (probably default) interface in list instead of all
2016-01-02 17:17:58 -06:00
Clinton
bc3224e0b9 installer - only select first (probably default) interface in list instead of all 2016-01-02 22:10:26 +00:00
Jacob Salmela
ba75c4c62c Merge pull request #144 from jacobsalmela/ipv6
Enables ad-blocking over IPv6 for an even better Internet experience.
2016-01-01 18:44:07 -06:00
Jacob Salmela
3fc1817e7a Merge branch 'master' into ipv6 2016-01-01 18:34:33 -06:00
Jacob Salmela
ab1352b48e Merge pull request #143 from iblamefish/master
fixes #142 kill -HUP erroring on gravity_reload if dnsmasq is not running
2016-01-01 18:16:35 -06:00
Clinton
89b88a2d5d fixes #142 kill -HUP erroring on gravity_reload if dnsmasq is not running 2016-01-02 00:10:12 +00:00
Salmela
d37db4304c A few small display changes
IPv6 box was missing the title.
Added some IPv6 echoes.
2016-01-01 10:59:30 -06:00
Jacob Salmela
a6b18feed9 Merge pull request #141 from iblamefish/ipv6
Fix bug in gravity.sh where IPv6 list was not always populated
2016-01-01 09:14:43 -06:00
Clinton
987e4e02a9 Fix bug in gravity.sh where IPv6 list was not always populated
Failed to be populated if /tmp/piholeIP does not exist. This may happen under
the following conditions:

- was not generated during install
- gravity.sh being run again after the original install (the file is deleted
  during the installation process)
2016-01-01 14:11:46 +00:00
Salmela
d646612a25 Block ads over IPv6
I’m pretty sure this works well.  Maybe someone else can try it out.
2015-12-31 20:26:05 -06:00
Jacob Salmela
8ffa5e9357 adding unRaid-hole fork 2015-12-30 13:34:45 -06:00
Jacob Salmela
d92b3fda91 Merge pull request #137 from iblamefish/patch-1
Fix typo in installer
2015-12-28 10:44:50 -06:00
Clinton Montague
b757e7a769 Fix typo in installer
IPv4 was mentioned in an IPv6 setting - changed to correctly reference IPv6.
2015-12-28 12:29:54 +00:00
Jacob Salmela
26dcbfc1f9 hide minor error
An error shows up on the first install that `latentWhitelist.txt` doesn't exist and can't be removed.  Redirecting STDERR should fix this.
2015-12-27 12:25:35 -06:00
Jacob Salmela
94f7363b8f Merge pull request #136 from klaas01/patch-2
Fix kill command to re-read hosts file
2015-12-27 12:07:16 -06:00
klaas01
a6313c9e9e Update gravity.sh
Fix kill command and only run as last step.
2015-12-26 14:37:51 -04:00
Jacob Salmela
3cdce17d28 adding more coverage
- Rob's post on medium.com
- TekThing video

Also posting about plans to partner up with Rob for his new service that can help reduce the flame war surrounding ad blocking
2015-12-25 21:14:19 -06:00
Jacob Salmela
184d1bd046 fixes #126
These commands were left out, resulting in the Web interface not showing ads blocked despite the Pi-hole working.  It is just a permissions error.
2015-12-16 11:23:44 -06:00
Jacob Salmela
c88982d0d5 chmod doesn't apply at initial install 2015-12-09 15:52:53 -06:00
Jacob Salmela
57282cfe16 ugly hack to whitelist from the Web interface
I wanted the whitelist feature to keep the user on the same page
without having to reload it.  I'm sure someone better versed in PHP
could eliminate the need for this hack.  Nonetheless, it works.

www-data runs the script if executed from the Web interface.  www-data
also needs access to write to /etc/pihole/gravity.list to actually
remove the domain.  So a few more things need to happen before this
will fully work.

The changes in this script won't change what is displayed if run from
the terminal, but will help when it needs to be run from the Web
interface, so I am just committing this now.

The only other thing I would like to see would be a progress spinner,
but my Web skills still need some work...
2015-12-09 15:16:34 -06:00
Jacob Salmela
263d9a222a Merge pull request #120 from dschaper/documenting
Add GPL V2+ headers to script files
2015-12-08 17:46:56 -06:00
Dan Schaper
73bbfc27d0 Remove extra debian doc file 2015-12-08 15:43:40 -08:00
Dan Schaper
4027139d9c More merge conflict resolution 2015-12-06 20:24:58 -08:00
Dan Schaper
d215fa9ade Resolve merge confict 2015-12-06 20:22:34 -08:00
Dan Schaper
b261e046bb Merge pull request #8 from jacobsalmela/master
Upstream sync
2015-12-06 14:44:55 -08:00
Jacob Salmela
4bca6fdfc4 Merge pull request #124 from dschaper/master
Fix merge conflicts
2015-12-06 16:41:46 -06:00
Dan Schaper
9c1eca23ae Fix merge conflicts 2015-12-06 14:39:43 -08:00
Dan Schaper
66953319c4 Merge branch 'development' of github.com:dschaper/pi-hole into development 2015-12-06 14:37:40 -08:00
Dan Schaper
dfc317124c Merge pull request #6 from jacobsalmela/development
Development
2015-12-06 14:36:55 -08:00
Dan Schaper
debb5aeed6 Merge pull request #5 from jacobsalmela/master
Upstream sync
2015-12-06 14:36:26 -08:00
Jacob Salmela
f724a3a61a Merge pull request #122 from dschaper/bug/interfaceCheck
Bug/interface check
2015-12-06 16:32:44 -06:00
Jacob Salmela
f5e573371c Merge pull request #121 from dschaper/development
Merge development
2015-12-06 16:31:11 -06:00
Jacob Salmela
86192a6950 Merge pull request #117 from dschaper/master
Merge development into master
2015-12-06 16:18:12 -06:00
Dan Schaper
ed75f11f3e Merge branch 'bug/interfaceCheck' into development 2015-12-06 14:05:35 -08:00
Dan Schaper
dcccb2ee2b Merge branch 'bug/multipleIP' into development 2015-12-06 11:58:02 -08:00
Dan Schaper
412a190b42 Basic-install.sh should only show one ip address in whiptail screen. 2015-12-06 11:05:09 -08:00
Dan Schaper
d2b260fc1e Log file is automatically generated by dnsmasq, no need to create. 2015-12-06 10:29:59 -08:00
Dan Schaper
723c2d47bb Add gravity.pod 2015-12-06 09:27:13 -08:00
Dan Schaper
22d0e82d92 Add GPL V2+ header 2015-12-06 06:31:49 -08:00
Dan Schaper
cb91b8f5fa Add copyright headers 2015-12-06 05:55:50 -08:00
Dan Schaper
a230df0032 Fix errant ) 2015-12-06 05:33:22 -08:00
Dan Schaper
b391afef49 Interface pull for multiple platforms 2015-12-06 04:45:04 -08:00
Dan Schaper
5441591409 Resolve merge confict 2015-12-06 03:10:29 -08:00
Dan Schaper
7cf5320f50 Only write to dhcpcd.conf if address isn't set 2015-12-06 02:40:30 -08:00
Dan Schaper
04c31f3d06 Merge branch 'development'
Conflicts:
	automated install/basic-install.sh
2015-12-06 00:48:15 -08:00
Dan Schaper
e5652be2a9 Merge pull request #4 from jacobsalmela/development
Sync with upstream development branch
2015-12-06 00:34:01 -08:00
Dan Schaper
d068593582 Get last IP for selected interface 2015-12-06 00:30:16 -08:00
Dan Schaper
3e0daa7e3c Merge pull request #3 from jacobsalmela/master
Upstream sync
2015-12-05 23:04:08 -08:00
Dan Schaper
d8034f4156 Get last IP listed for interface 2015-12-05 22:17:28 -08:00
Jacob Salmela
2b5030e629 Link to explainer video
Also clarifies that the automated install is for Raspbian installs only.
2015-12-05 23:23:44 -06:00
Jacob Salmela
f453d407a9 log-async
For better performance.  I have been using it for a few weeks with no
adverse effects.
2015-12-05 14:14:34 -06:00
Jacob Salmela
49a40115c8 fixes #105 2015-12-05 14:04:37 -06:00
Dan Schaper
f7f2895eec Merge pull request #2 from jacobsalmela/master
Upstream sync
2015-12-04 20:26:50 -08:00
Jacob Salmela
0c3409a028 fixes #111
Also clears out some errors users don't need to see
2015-12-04 21:41:37 -06:00
Dan Schaper
f896d1a5bc Merge pull request #1 from jacobsalmela/development
Sync to upstream/development
2015-12-04 18:10:47 -08:00
Jacob Salmela
3b5f40c1f7 Merge branch 'master' into development 2015-12-04 16:31:45 -06:00
Jacob Salmela
e74bb78a96 Merge pull request #109 from dschaper/bug/dnsmasqInterface
Bug/dnsmasq interface
2015-12-04 15:09:38 -06:00
Jacob Salmela
99c9f792f2 Merge pull request #108 from dschaper/feature/installFunctions
Feature/install functions
2015-12-04 15:09:23 -06:00
Jacob Salmela
0a5c3d021a Merge pull request #110 from dschaper/patch-2
ReadMe.md point to wiki
2015-12-04 15:08:17 -06:00
Dan Schaper
b9a5ca60b2 Oneline ip link call, tighten awk call 2015-12-03 20:34:45 -08:00
Dan Schaper
861673594d Point to wiki
Point users to the Wiki Customization entry instead of the PR
2015-12-03 13:17:27 -08:00
Dan Schaper
3651ee5480 Bugfix for hardcoded dnsmasq.conf interface
Add target to dnsmasq.conf for sed

Replace dnsmasq.conf target with selected interface
2015-12-03 10:05:48 -08:00
Dan Schaper
7a82d1ff17 Breakout basic-install.sh into functions 2015-12-03 09:26:43 -08:00
Dan Schaper
9421366e4f Breakout basic-install.sh to functions 2015-12-03 09:25:13 -08:00
Jacob Salmela
b806a36cfc Merge pull request #106 from dschaper/documenting
Document dnsmasq.conf config
2015-12-03 10:23:44 -06:00
Dan Schaper
2193d6a81f Document dnsmasq.conf config 2015-12-03 01:29:26 -08:00
Jacob Salmela
9ee2f006ac Merge pull request #102 from jacobsalmela/lighttpd
Fix #101 and add Logstalgia requirements
2015-12-01 20:10:21 -06:00
Jacob Salmela
c34cc1608b for use with logstalgia
This seems to show the domain queried and the path requested.
2015-12-01 16:04:07 -06:00
Jacob Salmela
1eb7f879f0 fixes #101
the line url.access-deny caused the error.
2015-12-01 15:12:16 -06:00
Jacob Salmela
6c4f4f49bd Merge branch 'master' into lighttpd 2015-12-01 15:09:51 -06:00
Jacob Salmela
831322b8b2 replace file paths with variables 2015-11-27 18:38:33 -06:00
Jacob Salmela
573c1ef94f double bracket notation 2015-11-27 18:34:02 -06:00
Jacob Salmela
a2cddda590 if whitelist.txt doesn't exist, create it 2015-11-27 18:29:44 -06:00
Jacob Salmela
3b9f7031d5 Merge pull request #96 from dschaper/feature/AtomicFunctions
Feature/atomic functions
2015-11-27 18:10:51 -06:00
Jacob Salmela
9fe531d1aa Merge pull request #94 from dschaper/bug/CleanupFiles
Bug Fix - Cleanup remnant files
2015-11-27 11:59:47 -06:00
Dan Schaper
9892d06c0d Code format cleanups 2015-11-26 15:56:37 -08:00
Dan Schaper
d1e475da89 Move black/white list check to pulsar 2015-11-26 15:48:52 -08:00
Dan Schaper
c45dc277b6 Tighten themeatics 2015-11-26 15:29:13 -08:00
Dan Schaper
29ae57465b Bug Fix - Cleanup Files 2015-11-25 19:51:07 -08:00
Dan Schaper
f899aaad44 Merge branch 'jacobsalmela-development' into bug/CleanupFiles 2015-11-25 19:30:09 -08:00
Dan Schaper
7bbe56d61c Fix merge conflict 2015-11-25 19:29:13 -08:00
Jacob Salmela
8ad69cea33 Merge pull request #85 from dschaper/development
Refactored gravity.sh
2015-11-25 20:14:30 -06:00
Jacob Salmela
11e1859f7d Merge pull request #92 from dschaper/OutsideIP
IP detection update for gravity.sh
2015-11-25 19:05:56 -06:00
Dan Schaper
23856d65e2 IP address detection update 2015-11-25 16:35:36 -08:00
Jacob Salmela
bc0a8e7733 final dialog verbiage
Updating dialog to reflect changes in #90
2015-11-25 18:08:17 -06:00
Dan Schaper
2164e13303 Merge pull request #11 from dschaper/upstream
Pull upstream into master
2015-11-25 16:07:54 -08:00
Dan Schaper
3f4567d088 Merge pull request #10 from jacobsalmela/master
Upstream sync
2015-11-25 16:06:48 -08:00
Jacob Salmela
bf4ef2b314 Merge pull request #90 from dschaper/IPCheck
Pull IP info from outgoing interface
2015-11-25 18:02:09 -06:00
Dan Schaper
b011fe28d9 No longer need a reboot 2015-11-25 14:34:06 -08:00
Dan Schaper
b318d5350c Merge branch 'IPCheck' of https://github.com/dschaper/pi-hole into IPCheck 2015-11-25 14:24:15 -08:00
Dan Schaper
21ee63b7fb Get IP info from outgoing interface
Use IP to get interface information from outgoing interface. Use CIDR notation to make things easier.
2015-11-25 14:08:13 -08:00
Dan Schaper
4057a076a2 Merge pull request #9 from dschaper/upstream
Upstream sync
2015-11-25 14:03:25 -08:00
Dan Schaper
6e13134328 Revert FHS change until merged 2015-11-25 13:55:32 -08:00
Dan Schaper
29ae66c6db Check IP info for outgoing interface 2015-11-25 13:43:59 -08:00
Jacob Salmela
464003d674 uninstall script
This should remove the Pi-hole.
2015-11-25 13:36:39 -08:00
Cole Turner
03bbef07b5 pinholeIP should only use one IP
Updated piholeIP because if there are multiple network adapters, the gravity list will populate incorrectly with both IP addresses. Only one address should be used.
2015-11-25 13:36:39 -08:00
Jacob Salmela
ecb514dd0a pihole in the cloud link 2015-11-25 13:36:39 -08:00
Jacob Salmela
04f6c478cc Updated install instructions
Also a screenshot of the dialog-based installer
2015-11-25 13:36:39 -08:00
Dan Schaper
20399b8262 Build array of active domains to concatenate
Fix #86 Builds an array of active domains, and then loops through that list to pick files to concatenate after truncating Matter.
2015-11-23 13:12:11 -08:00
Dan Schaper
e2b518568e Forgot to start the directory check function 2015-11-23 12:39:47 -08:00
Dan Schaper
100cbd4032 Merge pull request #7 from dschaper/upstream
Upstream
2015-11-23 04:56:40 -08:00
Dan Schaper
673113cb98 Merge pull request #6 from jacobsalmela/master
Upstream sync
2015-11-23 04:55:57 -08:00
Dan Schaper
a5d29a1048 Fix function ordering
Unique is now called after the comments are scrubbed from the unified domain list.
2015-11-23 03:26:10 -08:00
Dan Schaper
4f1bb12d36 More functions
Splitting into more functions
2015-11-23 03:11:16 -08:00
Dan Schaper
3d22e3bb7d Merge pull request #5 from dschaper/refactor
Code refactoring
2015-11-23 02:55:49 -08:00
Dan Schaper
af909e0ee6 Copyright issues
Some of the blocklists are copyright and need to be pulled and stored as is. They can be processed further in the script to remove comments.
2015-11-23 02:52:12 -08:00
Dan Schaper
fe46afd08d More functions
More refactoring
2015-11-23 01:47:24 -08:00
Dan Schaper
a1e609d005 Ugly hack permissions
Temporary hack for /etc/pihole directory and file permissions to pull out sudo requirement. (Irony is that is requires sudo.) This will be fixed later, but for now it's needed for existing installs so they don't break.
2015-11-23 01:16:00 -08:00
Dan Schaper
668d14e32d Add functions
Start to add functions for code reuse
2015-11-23 00:36:01 -08:00
Dan Schaper
f02c37ec07 Start code refactor, eliminate some repetitive code
Begin code refactor prepatation, prevent DRY where possible.
2015-11-22 23:49:38 -08:00
Jacob Salmela
4e50a03dfc uninstall script
This should remove the Pi-hole.
2015-11-21 13:29:03 -06:00
Jacob Salmela
a3a244c4af Merge pull request #82 from colepatrickturner/master
pinholeIP should only use one IP
2015-11-21 12:56:25 -06:00
Cole Turner
d0e9e90ebe pinholeIP should only use one IP
Updated piholeIP because if there are multiple network adapters, the gravity list will populate incorrectly with both IP addresses. Only one address should be used.
2015-11-20 22:53:43 -05:00
Jacob Salmela
1578a28363 pihole in the cloud link 2015-11-19 19:36:34 -06:00
Dan Schaper
9c13d2d88b Merge pull request #3 from jacobsalmela/master
Upstream sync
2015-11-18 02:17:11 -08:00
Jacob Salmela
b005da395f Updated install instructions
Also a screenshot of the dialog-based installer
2015-11-15 20:54:15 -06:00
Jacob Salmela
1b47a42792 Merge pull request #74 from dschaper/CherryPick
Cherry pick from PR73
2015-11-15 08:40:09 -06:00
Jacob Salmela
d477021532 Merge pull request #75 from dschaper/ConflictBreaker
Resolve merge conflicts
2015-11-15 08:39:38 -06:00
Dan Schaper
b895235ec1 Merge pull request #2 from dschaper/ConflictBreaker
Resolve merge conflicts
2015-11-15 06:02:27 -08:00
Dan Schaper
3a01b370d3 Merge pull request #1 from dschaper/CherryPick
Cherry pick
2015-11-15 06:01:58 -08:00
dschaper
689426180a Resolve merge conflicts 2015-11-15 13:59:51 +00:00
Jacob Salmela
d0d165ad16 chmod the log flusher 2015-11-15 13:14:56 +00:00
Jacob Salmela
0cb20fc080 typo 2015-11-15 13:14:46 +00:00
Jacob Salmela
dee3df4e11 download master gravity 2015-11-15 13:14:33 +00:00
Jacob Salmela
814873c643 reboot logic 2015-11-15 13:14:22 +00:00
Jacob Salmela
0936e394d4 reboot only if new IP was set 2015-11-15 13:14:07 +00:00
Jacob Salmela
ad91eb44fb choose an interface
also fixing ipv6 logic
2015-11-15 13:13:21 +00:00
Jacob Salmela
76c217d9cc moving to functions
Also download the whitelist script.  Ask for donations for IPv6 support.
2015-11-15 13:13:07 +00:00
Jacob Salmela
46b4000e75 reboot works better 2015-11-15 13:12:55 +00:00
Jacob Salmela
8ac8aa72ce Closing dialog
Also starting the Pi-hole and restarting networking.
2015-11-15 13:12:41 +00:00
Jacob Salmela
8df376860c simple function to run install commands
The arrays were cool, but I think this just works easier.
2015-11-15 13:12:30 +00:00
Jacob Salmela
eec0a31216 trying text output
I commented out the whiptail dialog at the end in place of text so you
can see what is going on.  I also install the crontab.
2015-11-15 13:12:16 +00:00
Jacob Salmela
fb3fde3d19 testing with no reboot 2015-11-15 13:12:04 +00:00
Jacob Salmela
1482b9563c does gravity use static IP?
The changes to the gravity script check for a temp file containing the
static address set during the install.  I need to verify it works so I
have to change the URL.  I will change it back before merging with
master.
2015-11-15 13:11:49 +00:00
Jacob Salmela
6d989f9160 overwrite html folder
If the files already exist, the installer stalls out because it asks if
you want to replace the existing files.  the -o option forces an
overwrite.
2015-11-15 13:11:29 +00:00
Jacob Salmela
f37990351e dumb mistake
fixed the variable name
2015-11-15 13:11:21 +00:00
Jacob Salmela
a44591ca6b fix permission denied for log file
Just use a temporary file and then move it over once the install is
complete.
2015-11-15 13:11:03 +00:00
Jacob Salmela
37f255d761 save output to log file instead
Since the progress bar hides the output now.  Instead of destroying it,
send it to a log file instead so users who want to see it still can.
2015-11-15 13:10:43 +00:00
Jacob Salmela
72cf5c91a5 set static ip and suppress more output
Created a function to set a static IP address.

I also sent STDOUT and STDERR to /dev/null so it doesn't mangle the
progress bar.  When the device reboots, it still gets mangled a bit
(via ssh).
2015-11-15 13:10:26 +00:00
Jacob Salmela
dfe1b126c4 progress dialog working
The ellipses cause errors, so they were removed.

I was on the right track with the associate array, but it would
previously execute the commands out of order.  Following directions
from the URL in the comments, I made another array that helps keep the
array in the order.
2015-11-15 13:10:09 +00:00
Jacob Salmela
4229a3e5e9 whiptail revamp of install script
This is a large update that helps users install the Pi-hole a bit
easier by using some dialog windows and also letting the user set a
static IP (I still need to figure out how to actually set the address
in the system, but everything else having to do with the install script
works).
2015-11-15 13:07:03 +00:00
Jacob Salmela
7a3add3a2e Merge pull request #72 from dschaper/master
Change shell path to environment
2015-11-14 20:02:28 -06:00
Dan Schaper
3992c0fba8 Merge pull request #5 from dschaper/dschaper-patch-1
Change shebang to environment
2015-11-14 15:09:22 -08:00
Dan Schaper
763aa6aa5c Change shebang to environment
Find bash in the environment, not hard coded to path
2015-11-11 00:43:00 -08:00
Jacob Salmela
ce0ca3cc61 for use with /etc/crontab
Adding a system-wide crontab to update the ad source lists, flush the
log daily, and (eventually) record the stats for historical purposes.
2015-11-07 07:58:35 -06:00
Dan Schaper
5495f23e4e Merge pull request #3 from jacobsalmela/master
Upstream sync
2015-11-06 15:47:58 -08:00
Jacob Salmela
e9bd7b1d47 Merge pull request #70 from jacobsalmela/development
Merge development changes
2015-11-06 17:29:29 -06:00
Jacob Salmela
a7d1b0b42c Revert "theme addition"
This reverts commit e1b8419a07.
2015-11-06 17:17:14 -06:00
Jacob Salmela
e1b8419a07 theme addition
Further adherence to the science/star trek theme
2015-11-06 17:16:14 -06:00
Jacob Salmela
932d410b66 anal retentive changes
OCD
2015-11-06 17:14:05 -06:00
Jacob Salmela
c297a86211 decluttering output
I love the adherence to the theme, but this line makes it difficult to
quickly read what is happening.
2015-11-06 17:10:17 -06:00
Jacob Salmela
1b65193fe4 new hostsfile url
This seems to be the more appropriate URL:
http://hosts-file.net/ad_servers.txt.

I compared it to the original URL using opendiff and they are exactly
the same.
2015-11-06 17:05:04 -06:00
Jacob Salmela
a06098bb16 remove filename from whitelist output
I also cleared the whitespace (or rather, Atom did).
I moved the pinhole.conf to it's current location
I commented out mahakala
2015-11-06 17:03:55 -06:00
Jacob Salmela
a675dc3f2c Merge pull request #68 from dschaper/hawson-reduce-memory
Hawson reduce memory
2015-11-06 16:50:37 -06:00
Dan Schaper
15b9fb68d7 Remove filename from wc
Line 118 and Line 127 changed wc to remove filename from output.
2015-11-06 10:24:12 -08:00
Dan Schaper
642c31c361 Theme changes 2015-11-05 18:33:05 -08:00
Dan Schaper
8e21488542 hawson memory reductions 2015-11-05 18:22:17 -08:00
Dan Schaper
deb6e76e08 Merge pull request #1 from dschaper/hawson-reduce-memory
Upstream Branch pseudo-rebase
2015-11-05 18:11:43 -08:00
Dan Schaper
23eece9443 Upstream Branch pseudo-rebase 2015-11-05 18:11:34 -08:00
Jacob Salmela
1b51b9ade3 for use as a cron job
The log will be flushed daily and stats will be stored in a DB for
displaying on the Web interface.
2015-11-05 14:31:38 -06:00
Jacob Salmela
a36352dfb6 Merge pull request #58 from Giermann/patch-1
add whitespace after $piholeIP
2015-11-04 21:02:58 -06:00
Jacob Salmela
271163ed66 Merge pull request #61 from nathanpjones/improve-whitelist-script
Improve whitelisting script
2015-11-04 20:35:42 -06:00
Jacob Salmela
3290dbbe48 link to Sky-Hole fork
Pi-hole in the cloud with Sky-Hole.
2015-10-31 17:09:21 -05:00
Jacob Salmela
d9aa19d2cd Link to Security Now! mention 2015-10-27 18:22:54 -05:00
Jacob Salmela
58e4fbd0fb New, easier-to-remember installation command
Also a picture of the Web interface and how to access it since it is now included in the automated installer.
2015-10-27 17:59:01 -05:00
Jacob Salmela
ec7bbd4ca8 Merge pull request #63 from jacobsalmela/installation
Installs the Web interface now
2015-10-27 17:28:28 -05:00
Jacob Salmela
2f9e650739 Merge pull request #62 from jacobsalmela/lighttpd
New lighttpd.conf.  Closes #31 and #50
2015-10-27 17:26:45 -05:00
Jacob Salmela
4ad2b68ee1 reverting IPv6 so I can merge lighttpd.conf 2015-10-27 17:16:17 -05:00
Jacob Salmela
7a0b92d2c1 missed a few file paths 2015-10-27 17:03:48 -05:00
Jacob Salmela
cfc4697236 Download and install the Web interface
dnsmasq also needs to be able to read the log file to properly display
the statistics
2015-10-27 16:21:20 -05:00
Jacob Salmela
bc3ece778d /var/www/html instead of /var/www
lighttpd in Jessie uses /var/www/html for the root folder, so in order
to only edit one lightpd.conf file, the installer will create the
correct directory even if not being run on Jessie.
2015-10-27 16:19:01 -05:00
Jacob Salmela
6d0c67af9a Install and enable PHP
Needed to view the admin web interface
2015-10-27 16:16:22 -05:00
Nathan Jones
deb48c124f Improve whitelisting script
Match domain exactly instead of partially.
Gather list of domains to minimize number of times that hosts file must be enumerated.
Only add domain to whitelist if it isn't already present.
2015-10-25 16:53:20 -07:00
Jacob Salmela
ca9ca36315 Merge pull request #60 from ManuCart/patch-1
Update basic-install.sh
2015-10-24 19:20:49 -05:00
Emmanuel CHARETTE
ced96905e9 Update basic-install.sh
change `shutdown -r now` to reboot for ssh users
2015-10-24 21:55:31 +02:00
Sven Giermann
d5ffec64f2 add whitespace after $piholeIP
In my case there had been no whitespace in piholeIP (I configured it statically because 'hostname -I' returns multiple IP addresses, which ends in errornous hosts file), so it's more safe to add one between IP and hostname.

Further, I removed the obsolete latentBlacklist variable.
2015-10-22 15:17:44 +02:00
Jacob Salmela
17904b3106 ads still get blocked when a 404 happens 2015-10-17 12:12:51 -05:00
Jacob Salmela
7b16a42f31 conditionals for accessing the web interface
This adds in some back end improvements for better debugging.  It also
allows you to access the Web interface, while you are connected to the
Pi-hole, which resolves #31
2015-10-17 12:11:03 -05:00
Jacob Salmela
28dd956449 changing web server root folder
Since the version of lighted in Jessie moved the default folder to
/var/www/html, I am going to make it the same for wheezy for better
compatibility.

Also removed spaces
2015-10-17 12:04:49 -05:00
Jacob Salmela
bf397db73e adding crontab file
I plan to use this to be deployed with the automatic installer.  Just
pushing the file for now so I can test download it.
2015-10-15 18:58:12 -05:00
Jacob Salmela
963eacfe05 commenting out mahakala list
Due to so many users having issues with this list blocking legitimate
domains such as microsoft.com, apple.com, xkcd.com and more, I am
turning it off by default.  While this drastically reduces the amount
of domains blocked, ad-blocking performance still seems to function
quite well.

Long-time users can simply uncomment the list, but this will make it so
new users have a more pleasant experience.

If you already have the mahakala list, you will need to remove it first
with this command:

sudo rm /etc/pihole/list.2.adblock.mahakala.is.domains

There are a few other lists I am looking at including, but this will
provide an immediate fix.
2015-10-11 09:28:11 -05:00
Jacob Salmela
ee40bc0423 forgot to redirect it to the file 2015-10-10 14:02:18 -05:00
Jacob Salmela
428d5e9a06 Revert "new command to print both the IPv4 and IPv6 address on their own line"
This reverts commit 88e6ce041d.
2015-10-10 14:01:10 -05:00
Jacob Salmela
88e6ce041d new command to print both the IPv4 and IPv6 address on their own line
I'm not 100% sure if you can add multiple IP addresses to one domain on
a single line, so I just broke it up into two.  It makes the file
bigger and longer, but I'll have to see how it works
2015-10-10 13:55:49 -05:00
Jacob Salmela
e3c0fdfeb7 new variables for IPv4 and IPv6
The IPv6 address looks for the one created from the MAC address.
2015-10-10 13:52:54 -05:00
Jacob Salmela
dfbf1a952f deleting tabs and spaces 2015-10-10 13:51:21 -05:00
Jacob Salmela
8f3bbadf73 Merge branch 'master' into development 2015-10-10 13:40:07 -05:00
Jacob Salmela
6976532ef5 Removing IP as input
Due to users having issues with the IP not being entered properly, I am restoring the original way to store `piholeIP` until a better solution can be formed.
2015-10-06 06:12:52 -05:00
Jacob Salmela
89e63c7e90 Merge pull request #52 from mospaeda/mospaeda-patch-1
Dnsutils package missing for dig tool
2015-10-05 17:55:12 -05:00
mospaeda
06e89614e9 Dnsutils package missing for dig tool 2015-10-05 23:58:15 +02:00
Jacob Salmela
d859d925e3 Merge pull request #47 from mospaeda/master
Tools are missing for chronometer.sh
2015-10-03 11:10:01 -05:00
Jacob Salmela
d52fdde2f8 using double bracket notation
Despite the script running successfully, it produced this error:

`/usr/local/bin/gravity.sh: line 8: [: missing `]'`

prior to this fix.
2015-10-03 11:06:50 -05:00
Jacob Salmela
533f707578 Merge pull request #45 from jofrep/IP-as-input-parameter
Allow external IP as an input script parameter
2015-10-03 11:05:52 -05:00
Jofre Palau
4ea397bc71 Removed extra blank space if no IP added 2015-09-28 17:40:13 +02:00
mospaeda
7b49677d24 add install for bc and toilet tools
these tools are needed later by chronometer.sh
2015-09-22 22:38:25 +02:00
mospaeda
56d4b7b0f7 Update basic-install.sh 2015-09-22 22:13:16 +02:00
mospaeda
96bc557e21 Update basic-install.sh 2015-09-22 22:11:30 +02:00
mospaeda
11fcfc4bf5 Update basic-install.sh 2015-09-22 22:10:33 +02:00
Jacob Salmela
2ca9b6b005 Merge pull request #42 from hawson/noswap
Allow for local settings to disable swap
2015-09-18 16:49:43 -05:00
Jofre Palau
885069d440 Allow external IP as an input script parameter: ./gravity.sh 123.123.123.123 2015-09-18 23:06:29 +02:00
mospaeda
6fc798ebe4 Update basic-install.sh 2015-09-18 00:40:21 +02:00
mospaeda
2b4500363b Update basic-install.sh 2015-09-18 00:31:17 +02:00
mospaeda
2d91a7a3c4 Update basic-install.sh 2015-09-18 00:22:21 +02:00
mospaeda
d15a085dd0 Update basic-install.sh 2015-09-18 00:20:50 +02:00
mospaeda
8718321727 Update basic-install.sh 2015-09-18 00:06:04 +02:00
mospaeda
d44e48114e Merge pull request #4 from jacobsalmela/master
Rebase
2015-09-17 23:51:32 +02:00
Jesse Becker
cfac2be334 toggle test case for noswap 2015-09-13 15:23:29 -04:00
Jesse Becker
4a4db7ab56 Allow for local settings to disable swap 2015-09-11 22:54:37 -04:00
Jacob Salmela
23713d82a0 1.6 million instead of 900,000
Updating to reflect the latest amount of domains the Pi-hole blocks.
2015-09-06 10:16:11 -05:00
Jacob Salmela
e19a6c3624 Merge pull request #38 from korhadris/master
Fixes #32 and fixes #35
2015-09-06 10:11:39 -05:00
jacobsalmela
2792238472 Merge remote-tracking branch 'origin/development' 2015-08-26 18:08:19 -05:00
jacobsalmela
fa77b7b69d increase swap to fix #37 memory error
This will increase the swap file to 500MB before downloading the lists.
 Most of the issue comes from the mahakala list, which is so large.  If
no swap file is found, one is created.
2015-08-25 18:01:54 -05:00
jacobsalmela
d68c262b96 swap file to eliminate memory allocation error 2015-08-24 16:30:00 -05:00
korhadris
98c94912e1 Replace use of grep -w with grep -x.
Prepend "^" to start of latentWhitelist.txt lines.

The -x switch requires a full line match of the regexp, where as -w
will try to find the match somewhere in the line, looking for work
breaks. Combined with turning the whitelist lines into full regexps,
this results in significantly faster parsing.

Having "^" prepended to the lines also keeps false whitelisting from
occuring, such as the following example:

If whitelist.txt contains "google.com" it would whitelist many other
sites that end in "google.com" as long as there is a non-word
character preceeding the google (such as "-", or ".").
2015-08-22 23:37:01 -07:00
korhadris
a26377d229 Append ad list sources to latentWhitelist.txt to prevent them from being filtered.
Additional fixes for #35. This will prevent our own sources from being
filtered out by competing source lists.
2015-08-22 21:44:41 -07:00
korhadris
e464c04490 Ignore domains in ad lists that do not contain . characters.
This will skip entries such as `localhost`, `android`, `debian` and
empty lines as listed in #35.
2015-08-22 17:47:22 -07:00
korhadris
bb7db11214 Changing printouts when updating sources to tell what is going on when
manually running gravity.sh

This will print "Getting $domain list... " for each domain, followed
by either "Done" if data was received and validated, or "Skipping
list because it does not have any new entries" if no updates were
needed.
2015-08-22 17:33:30 -07:00
korhadris
1f29d01694 Remove leading and trailing whitespace and . characters and
duplicate `.` characters as each list is stored.

Should fix #32.
2015-08-22 17:05:19 -07:00
korhadris
d6d192cb0a Use url variable to store ${sources[$i]} value to improve readability.
I also wanted to replace the for loop iterating over indices with
something like:

`for url in $sources[@]}`

It made the use of `$i` in the save location more annoying though.
2015-08-22 16:22:07 -07:00
korhadris
0ec6eab683 Appending ".$justDomainsExtension" to $saveLocation variable.
Every use of $saveLocation was adding this and making lines
longer.
2015-08-22 16:04:54 -07:00
korhadris
159b29b80b Replace spaces with tabs to make indentation consistent within the file. 2015-08-22 15:56:32 -07:00
mospaeda
942bdd2b35 Merge pull request #3 from jacobsalmela/master
Rebase
2015-03-29 20:18:40 +02:00
54 changed files with 6941 additions and 589 deletions

38
.editorconfig Normal file
View File

@@ -0,0 +1,38 @@
# EditorConfig is awesome: http://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = tab
tab_width = 2
charset = utf-8
trim_trailing_whitespace = true
# Matches multiple files with brace expansion notation
# Set default charset
[*.{js,py}]
charset = utf-8
# 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

38
.gitattributes vendored Normal file
View File

@@ -0,0 +1,38 @@
# FROM https://github.com/libgit2/libgit2sharp
# Text files that should be normalized to LF in odb.
*.cs text diff=csharp
*.config text
*.sln text
*.csproj text
*.md text
*.sh text
*.ps1 text
*.cmd text
*.bat text
*.markdown text
*.msbuild text
Lib/* binary
GitHub.Tests.Integration/Resources/* binary
# Binary files that should not be normalized or diffed
*.png binary
*.jpg binary
*.gif binary
*.pfx binary
*.snk binary
*.dll binary
*.exe binary
*.lib binary
*.exp binary
*.pdb binary
*.sdf binary
*.7z binary
# Catch all for anything we forgot. Add rules if you get CRLF -> LF warnings.
* text eol=lf

33
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,33 @@
**In raising this issue, I confirm the following (please check boxes, eg [X]) Failure to fill the template will close your issue:**
- [] I have read and understood the [contributors guide](https://github.com/pi-hole/pi-hole/blob/master/CONTRIBUTING.md).
- [] The issue I am reporting can be *replicated*
- [] The issue I am reporting isn't a duplicate (see [FAQs](https://github.com/pi-hole/pi-hole/wiki/FAQs), [closed issues](https://github.com/pi-hole/pi-hole/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20), and [open issues](https://github.com/pi-hole/pi-hole/issues)).
**How familiar are you with the codebase?:**
_{replace this text with a number from 1 to 10, with 1 being not familiar, and 10 being very familiar}_
---
**[FEATURE REQUEST | QUESTION | OTHER]:**
Please [submit your feature request here](https://discourse.pi-hole.net/c/feature-requests), so it is votable by the community. It's also easier for us to track.
**[BUG | ISSUE] Expected Behaviour:**
**[BUG | ISSUE] Actual Behaviour:**
**[BUG | ISSUE] Steps to reproduce:**
-
-
-
-
**(Optional) Debug token generated by `pihole -d`:**
`<token>`
_This template was created based on the work of [`udemy-dl`](https://github.com/nishad/udemy-dl/blob/master/LICENSE)._

19
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,19 @@
**By submitting this pull request, I confirm the following (please check boxes, eg [X]) _Failure to fill the template will close your PR_:**
***Please submit all pull requests against the `development` branch. Failure to do so will delay or deny your request***
- [] I have read and understood the [contributors guide](https://github.com/pi-hole/pi-hole/blob/master/CONTRIBUTING.md).
- [] I have checked that [another pull request](https://github.com/pi-hole/pi-hole/pulls) for this purpose does not exist.
- [] I have considered, and confirmed that this submission will be valuable to others.
- [] I accept that this submission may not be used, and the pull request closed at the will of the maintainer.
- [] I give this submission freely, and claim no ownership to its content.
**How familiar are you with the codebase?:**
_{replace this text with a number from 1 to 10, with 1 being not familiar, and 10 being very familiar}_
---
_{replace this line with your pull request content}_
_This template was created based on the work of [`udemy-dl`](https://github.com/nishad/udemy-dl/blob/master/LICENSE)._

6
.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
.DS_Store
*.pyc
*.swp
__pycache__
.cache
.pullapprove.yml

25
.idea/codeStyleSettings.xml generated Normal file
View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectCodeStyleSettingsManager">
<option name="PER_PROJECT_SETTINGS">
<value>
<option name="OTHER_INDENT_OPTIONS">
<value>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="8" />
<option name="TAB_SIZE" value="2" />
<option name="USE_TAB_CHARACTER" value="false" />
<option name="SMART_TABS" value="false" />
<option name="LABEL_INDENT_SIZE" value="0" />
<option name="LABEL_INDENT_ABSOLUTE" value="false" />
<option name="USE_RELATIVE_INDENTS" value="false" />
</value>
</option>
<MarkdownNavigatorCodeStyleSettings>
<option name="RIGHT_MARGIN" value="72" />
</MarkdownNavigatorCodeStyleSettings>
</value>
</option>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</component>
</project>

38
.pullapprove.yml Normal file
View File

@@ -0,0 +1,38 @@
version: 2
always_pending:
title_regex: '(WIP|wip)'
labels:
- wip
explanation: 'This PR is a work in progress...'
group_defaults:
reset_on_push:
enabled: true
reject_value: -2
approve_regex: '^(Approved|:shipit:|:\+1:|Engage)'
reject_regex: '^(Rejected|:-1:|Borg)'
author_approval:
auto: true
groups:
development:
approve_by_comment:
enabled: true
conditions:
branches:
- development
required: 2
teams:
- approvers
master:
approve_by_comment:
enabled: true
conditions:
branches:
- master
required: 4
teams:
- admin

10
.travis.yml Normal file
View File

@@ -0,0 +1,10 @@
sudo: required
services:
- docker
language: python
python:
- "2.7"
install:
- pip install -r requirements.txt
script: py.test -vv

39
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,39 @@
_This template was created based on the work of [`udemy-dl`](https://github.com/nishad/udemy-dl/blob/master/LICENSE)._
# Contributors Guide
Please read and understand the contribution guide before creating an issue or pull request.
## Etiquette
- Our goal for Pi-hole is **stability before features**. This means we focus on squashing critical bugs before adding new features. Often, we can do both in tandem, but bugs will take priority over a new feature.
- Pi-hole is open source and [powered by donations](https://pi-hole.net/donate/), and as such, we give our **free time** to build, maintain, and **provide user support** for this project. It would be extremely unfair for us to suffer abuse or anger for our hard work, so please take a moment to consider that.
- Please be considerate towards the developers and other users when raising issues or presenting pull requests.
- Respect our decision(s), and do not be upset or abusive if your submission is not used.
## Viability
When requesting or submitting new features, first consider whether it might be useful to others. Open source projects are used by many people, who may have entirely different needs to your own. Think about whether or not your feature is likely to be used by other users of the project.
## Procedure
**Before filing an issue:**
- Attempt to replicate and **document** the problem, to ensure that it wasn't a coincidental incident.
- Check to make sure your feature suggestion isn't already present within the project.
- Check the pull requests tab to ensure that the bug doesn't have a fix in progress.
- Check the pull requests tab to ensure that the feature isn't already in progress.
**Before submitting a pull request:**
- Check the codebase to ensure that your feature doesn't already exist.
- Check the pull requests to ensure that another person hasn't already submitted the feature or fix.
## Technical Requirements
- Submit Pull Requests to the **development branch only**.
- Before Submitting your Pull Request, merge `development` with your new branch and fix any conflicts. (Make sure you don't break anything in development!)
- Please use the [Google Style Guide for Shell](https://google.github.io/styleguide/shell.xml) for your code submission styles.
- Commit Unix line endings.
- Please use the Pi-hole brand: **Pi-hole** (Take a special look at the capitalized 'P' and a low 'h' with a hyphen)
- (Optional fun) keep to the theme of Star Trek/black holes/gravity.

390
LICENSE
View File

@@ -1,339 +1,167 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 2017 Pi-hole, LLC (https://pi-hole.net)
Pi-hole Core
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
This software is licensed under the European Union Public License (EUPL)
The license is available in the 22 official languages of the EU. The English version is included here.
Please see https://joinup.ec.europa.eu/community/eupl/og_page/eupl for official translations of the other languages.
Preamble
This license applies to the whole project EXCEPT:
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
- any commits made to the master branch prior to the release of version 3.0
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
The licenses that existed prior to this change have remained intact.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
-------------------------------------------------------------
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
European Union Public Licence
V. 1.1
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
EUPL (C) the European Community 2007
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
This European Union Public Licence (the "EUPL") applies to the Work or Software (as defined below) which is provided under the terms of this Licence. Any use of the Work, other than as authorised under this Licence is prohibited (to the extent such use is covered by a right of the copyright holder of the Work).
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The Original Work is provided under the terms of this Licence when the Licensor (as defined below) has placed the following notice immediately following the copyright notice for the Original Work:
The precise terms and conditions for copying, distribution and
modification follow.
Licensed under the EUPL V.1.1
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
or has expressed by any other mean his willingness to license under the EUPL.
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
1. Definitions
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
In this Licence, the following terms have the following meaning:
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
- The Licence: this Licence.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
- The Original Work or the Software: the software distributed and/or communicated by the Licensor under this Licence, available as Source Code and also as Executable Code as the case may be.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
- Derivative Works: the works or software that could be created by the Licensee, based upon the Original Work or modifications thereof. This Licence does not define the extent of modification or dependence on the Original Work required in order to classify a work as a Derivative Work; this extent is determined by copyright law applicable in the country mentioned in Article 15.
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
- The Work: the Original Work and/or its Derivative Works.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
- The Source Code: the human-readable form of the Work which is the most convenient for people to study and modify.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
- The Executable Code: any code which has generally been compiled and which is meant to be interpreted by a computer as a program.
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
- The Licensor: the natural or legal person that distributes and/or communicates the Work under the Licence.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
- Contributor(s): any natural or legal person who modifies the Work under the Licence, or otherwise contributes to the creation of a Derivative Work.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
- The Licensee or "You": any natural or legal person who makes any usage of the Software under the terms of the Licence.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
- Distribution and/or Communication: any act of selling, giving, lending, renting, distributing, communicating, transmitting, or otherwise making available, on-line or off-line, copies of the Work or providing access to its essential functionalities at the disposal of any other natural or legal person.
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
2. Scope of the rights granted by the Licence
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
The Licensor hereby grants You a world-wide, royalty-free, non-exclusive, sub-licensable licence to do the following, for the duration of copyright vested in the Original Work:
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
- use the Work in any circumstance and for all usage,
- reproduce the Work,
- modify the Original Work, and make Derivative Works based upon the Work,
- communicate to the public, including the right to make available or display the Work or copies thereof to the public and perform publicly, as the case may be, the Work,
- distribute the Work or copies thereof,
- lend and rent the Work or copies thereof,
- sub-license rights in the Work or copies thereof.
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
Those rights can be exercised on any media, supports and formats, whether now known or later invented, as far as the applicable law permits so.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
In the countries where moral rights apply, the Licensor waives his right to exercise his moral right to the extent allowed by law in order to make effective the licence of the economic rights here above listed.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
The Licensor grants to the Licensee royalty-free, non exclusive usage rights to any patents held by the Licensor, to the extent necessary to make use of the rights granted on the Work under this Licence.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
3. Communication of the Source Code
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
The Licensor may provide the Work either in its Source Code form, or as Executable Code. If the Work is provided as Executable Code, the Licensor provides in addition a machine-readable copy of the Source Code of the Work along with each copy of the Work that the Licensor distributes or indicates, in a notice following the copyright notice attached to the Work, a repository where the Source Code is easily and freely accessible for as long as the Licensor continues to distribute and/or communicate the Work.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
4. Limitations on copyright
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
Nothing in this Licence is intended to deprive the Licensee of the benefits from any exception or limitation to the exclusive rights of the rights owners in the Original Work or Software, of the exhaustion of those rights or of other applicable limitations thereto.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
5. Obligations of the Licensee
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
The grant of the rights mentioned above is subject to some restrictions and obligations imposed on the Licensee. Those obligations are the following:
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
Attribution right: the Licensee shall keep intact all copyright, patent or trademarks notices and all notices that refer to the Licence and to the disclaimer of warranties. The Licensee must include a copy of such notices and a copy of the Licence with every copy of the Work he/she distributes and/or communicates. The Licensee must cause any Derivative Work to carry prominent notices stating that the Work has been modified and the date of modification.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Copyleft clause: If the Licensee distributes and/or communicates copies of the Original Works or Derivative Works based upon the Original Work, this Distribution and/or Communication will be done under the terms of this Licence or of a later version of this Licence unless the Original Work is expressly distributed only under this version of the Licence. The Licensee (becoming Licensor) cannot offer or impose any additional terms or conditions on the Work or Derivative Work that alter or restrict the terms of the Licence.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
Compatibility clause: If the Licensee Distributes and/or Communicates Derivative Works or copies thereof based upon both the Original Work and another work licensed under a Compatible Licence, this Distribution and/or Communication can be done under the terms of this Compatible Licence. For the sake of this clause, "Compatible Licence" refers to the licences listed in the appendix attached to this Licence. Should the Licensees obligations under the Compatible Licence conflict with his/her obligations under this Licence, the obligations of the Compatible Licence shall prevail.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
Provision of Source Code: When distributing and/or communicating copies of the Work, the Licensee will provide a machine-readable copy of the Source Code or indicate a repository where this Source will be easily and freely available for as long as the Licensee continues to distribute and/or communicate the Work.
NO WARRANTY
Legal Protection: This Licence does not grant permission to use the trade names, trademarks, service marks, or names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the copyright notice.
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
6. Chain of Authorship
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
The original Licensor warrants that the copyright in the Original Work granted hereunder is owned by him/her or licensed to him/her and that he/she has the power and authority to grant the Licence.
END OF TERMS AND CONDITIONS
Each Contributor warrants that the copyright in the modifications he/she brings to the Work are owned by him/her or licensed to him/her and that he/she has the power and authority to grant the Licence.
How to Apply These Terms to Your New Programs
Each time You accept the Licence, the original Licensor and subsequent Contributors grant You a licence to their contributions to the Work, under the terms of this Licence.
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
7. Disclaimer of Warranty
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
The Work is a work in progress, which is continuously improved by numerous contributors. It is not a finished work and may therefore contain defects or "bugs" inherent to this type of software development.
{description}
Copyright (C) {year} {fullname}
For the above reason, the Work is provided under the Licence on an "as is" basis and without warranties of any kind concerning the Work, including without limitation merchantability, fitness for a particular purpose, absence of defects or errors, accuracy, non-infringement of intellectual property rights other than copyright as stated in Article 6 of this Licence.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This disclaimer of warranty is an essential part of the Licence and a condition for the grant of any rights to the Work.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
8. Disclaimer of Liability
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Except in the cases of wilful misconduct or damages directly caused to natural persons, the Licensor will in no event be liable for any direct or indirect, material or moral, damages of any kind, arising out of the Licence or of the use of the Work, including without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, loss of data or any commercial damage, even if the Licensor has been advised of the possibility of such damage. However, the Licensor will be liable under statutory product liability laws as far such laws apply to the Work.
Also add information on how to contact you by electronic and paper mail.
9. Additional agreements
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
While distributing the Original Work or Derivative Works, You may choose to conclude an additional agreement to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or services consistent with this Licence. However, in accepting such obligations, You may act only on your own behalf and on your sole responsibility, not on behalf of the original Licensor or any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against such Contributor by the fact You have accepted any such warranty or additional liability.
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
10. Acceptance of the Licence
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
The provisions of this Licence can be accepted by clicking on an icon "I agree" placed under the bottom of a window displaying the text of this Licence or by affirming consent in any other similar way, in accordance with the rules of applicable law. Clicking on that icon indicates your clear and irrevocable acceptance of this Licence and all of its terms and conditions.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Similarly, you irrevocably accept this Licence and all of its terms and conditions by exercising any rights granted to You by Article 2 of this Licence, such as the use of the Work, the creation by You of a Derivative Work or the Distribution and/or Communication by You of the Work or copies thereof.
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
11. Information to the public
{signature of Ty Coon}, 1 April 1989
Ty Coon, President of Vice
In case of any Distribution and/or Communication of the Work by means of electronic communication by You (for example, by offering to download the Work from a remote location) the distribution channel or media (for example, a website) must at least provide to the public the information requested by the applicable law regarding the Licensor, the Licence and the way it may be accessible, concluded, stored and reproduced by the Licensee.
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
12. Termination of the Licence
The Licence and the rights granted hereunder will terminate automatically upon any breach by the Licensee of the terms of the Licence.
Such a termination will not terminate the licences of any person who has received the Work from the Licensee under the Licence, provided such persons remain in full compliance with the Licence.
13. Miscellaneous
Without prejudice of Article 9 above, the Licence represents the complete agreement between the Parties as to the Work licensed hereunder.
If any provision of the Licence is invalid or unenforceable under applicable law, this will not affect the validity or enforceability of the Licence as a whole. Such provision will be construed and/or reformed so as necessary to make it valid and enforceable.
The European Commission may publish other linguistic versions and/or new versions of this Licence, so far this is required and reasonable, without reducing the scope of the rights granted by the Licence. New versions of the Licence will be published with a unique version number.
All linguistic versions of this Licence, approved by the European Commission, have identical value. Parties can take advantage of the linguistic version of their choice.
14. Jurisdiction
Any litigation resulting from the interpretation of this License, arising between the European Commission, as a Licensor, and any Licensee, will be subject to the jurisdiction of the Court of Justice of the European Communities, as laid down in article 238 of the Treaty establishing the European Community.
Any litigation arising between Parties, other than the European Commission, and resulting from the interpretation of this License, will be subject to the exclusive jurisdiction of the competent court where the Licensor resides or conducts its primary business.
15. Applicable Law
This Licence shall be governed by the law of the European Union country where the Licensor resides or has his registered office.
This licence shall be governed by the Belgian law if:
- a litigation arises between the European Commission, as a Licensor, and any Licensee;
- the Licensor, other than the European Commission, has no residence or registered office inside a European Union country.
===
Appendix
"Compatible Licences" according to article 5 EUPL are:
- GNU General Public License (GNU GPL) v. 2
- Open Software License (OSL) v. 2.1, v. 3.0
- Common Public License v. 1.0
- Eclipse Public License v. 1.0
- Cecill v. 2.0

215
README.md
View File

@@ -1,50 +1,175 @@
# Raspberry Pi Ad Blocker
**A black hole for ads, hence Pi-hole**
<p align="center">
<a href=https://www.bountysource.com/trackers/3011939-pi-hole-pi-hole?utm_source=3011939&utm_medium=shield&utm_campaign=TRACKER_BADGE><img src="https://www.bountysource.com/badge/tracker?tracker_id=3011939"></a>
<a href="https://www.codacy.com/app/Pi-hole/pi-hole?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=pi-hole/pi-hole&amp;utm_campaign=Badge_Grade"><img src="https://api.codacy.com/project/badge/Grade/c558a0f8d7124c99b02b84f0f5564238"/></a>
<a href=https://travis-ci.org/pi-hole/pi-hole><img src="https://travis-ci.org/pi-hole/pi-hole.svg?branch=development"></a>
</p>
![Pi-hole](http://i.imgur.com/wd5ltCU.png)
<p align="center">
<a href=https://discourse.pi-hole.net><img src="https://assets.pi-hole.net/static/Vortex_with_text_and_TM.png" width=210></a>
</p>
The Pi-hole is a DNS/Web server that will **block ads for any device on your network**.
## The multi-platform, network-wide ad blocker
Block ads for **all** your devices _without_ the need to install client-side software. The Pi-hole™ blocks ads at the DNS-level, so all your devices are protected.
- Web Browsers
- Cell Phones
- Smart TV's
- Internet-connected home automation
- Anything that communicates with the Internet
<p align="center">
<a href=http://www.digitalocean.com/?refcode=344d234950e1><img src="https://assets.pi-hole.net/static/DOHostingSlug.png"></a>
</p>
## Your Support Still Matters
Digital Ocean helps with our infrastructure, but our developers are all volunteers so *your donations help keep us innovating*. Sending a donation using our links below helps us offset a portion of our monthly costs.
- ![Paypal](https://assets.pi-hole.net/static/paypal.png) [Donate via PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3J2L3Z4DHW9UY)
- ![Bitcoin](https://assets.pi-hole.net/static/Bitcoin.png) Bitcoin Address: 1GKnevUnVaQM2pQieMyeHkpr8DXfkpfAtL
### One-Step Automated Install
1. Install a [supported operating system](https://discourse.pi-hole.net/t/hardware-software-requirements/273/1)
2. Run the command below (it downloads [this script](https://github.com/pi-hole/pi-hole/blob/master/automated%20install/basic-install.sh) in case you want to read over it first!)
### `curl -sSL https://install.pi-hole.net | bash`
#### Alternative Semi-Automated Install Methods
_If you wish to read over the script before running it, run `nano basic-install.sh` to open the file in a text viewer._
##### Clone our repository and run the automated installer from your device.
```
git clone --depth 1 https://github.com/pi-hole/pi-hole.git Pi-hole
cd Pi-hole/automated\ install/
bash basic-install.sh
```
##### Or
```bash
wget -O basic-install.sh https://install.pi-hole.net
bash basic-install.sh
```
Once installed, [configure your router to have **DHCP clients use the Pi as their DNS server**](https://discourse.pi-hole.net/t/how-do-i-configure-my-devices-to-use-pi-hole-as-their-dns-server/245) and then any device that connects to your network will have ads blocked without any further configuration. Alternatively, you can manually set each device to use Pi-hole™ as their DNS server.
## What is Pi-hole™ and how do I install it?
<p align="center">
<a href=https://www.youtube.com/watch?v=vKWjx1AQYgs><img src="https://assets.pi-hole.net/static/video-explainer.png"></a>
</p>
## Get Help Or Connect With Us On The Web
- [Users Forum](https://discourse.pi-hole.net/)
- [FAQs](https://discourse.pi-hole.net/c/faqs)
- [Wiki](https://github.com/pi-hole/pi-hole/wiki)
- ![Twitter](https://assets.pi-hole.net/static/twitter.png) [Tweet @The_Pi_Hole](https://twitter.com/The_Pi_Hole)
- ![Reddit](https://assets.pi-hole.net/static/reddit.png) [Reddit /r/pihole](https://www.reddit.com/r/pihole/)
- ![YouTube](https://assets.pi-hole.net/static/youtube.png) [Pi-hole channel](https://www.youtube.com/channel/UCT5kq9w0wSjogzJb81C9U0w)
- [![Join the chat at https://gitter.im/pi-hole/pi-hole](https://badges.gitter.im/pi-hole/pi-hole.svg)](https://gitter.im/pi-hole/pi-hole?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
## Technical Details
The Pi-hole™ is an **advertising-aware DNS/Web server**. If an ad domain is queried, a small Web page or GIF is delivered in place of the advertisement.
### Gravity
The [gravity.sh](https://github.com/pi-hole/pi-hole/blob/master/gravity.sh) does most of the magic. The script pulls in ad domains from many sources and compiles them into a single list of [over 1.6 million entries](http://jacobsalmela.com/block-millions-ads-network-wide-with-a-raspberry-pi-hole-2-0) (if you decide to use the [mahakala list](https://github.com/pi-hole/pi-hole/commit/963eacfe0537a7abddf30441c754c67ca1e40965)). This script is controlled by the `pihole` command. Please run `pihole -h` to see what commands can be run via `pihole`.
#### Other Operating Systems
The automated install is only for a clean install of a Debian family or Fedora based system, such as the Raspberry Pi. However, this script will work for most UNIX-like systems, some with some slight **modifications** that we can help you work through. If you can install `dnsmasq` and a web server, it should work OK. If there are other platforms you'd like supported, let us know.
### Web Interface
The [Web interface](https://github.com/pi-hole/AdminLTE#pi-hole-admin-dashboard) will be installed automatically so you can view stats and change settings. You can find it at:
`http://192.168.1.x/admin/index.php` or `http://pi.hole/admin`
![Pi-hole Advanced Stats Dashboard](https://assets.pi-hole.net/static/dashboard212.png)
### Whitelist and blacklist
Domains can be whitelisted and blacklisted using either the web interface or the command line. See [the wiki page](https://github.com/pi-hole/pi-hole/wiki/Whitelisting-and-Blacklisting) for more details
<p align="center">
<a href=https://github.com/pi-hole/pi-hole/wiki/Whitelisting-and-Blacklisting><img src="https://assets.pi-hole.net/static/whitelist212.png"></a>
</p>
### Settings
The settings page lets you control and configure your Pi-hole™. You can do things like:
- enable Pi-hole's built-in DHCP server
- exclude domains from the graphs
- configure upstream DNS servers
- and more!
![Settings page](https://assets.pi-hole.net/static/settings212.png)
#### Built-in DHCP Server
Pi-hole™ ships with a built-in DHCP server. This allows you to let your network devices use Pi-hole™ as their DNS server if your router does not let you adjust the DHCP options.
<p align="center">
<a href=hhttps://discourse.pi-hole.net/t/how-do-i-configure-my-devices-to-use-pi-hole-as-their-dns-server/245><img src="https://assets.pi-hole.net/static/piholedhcpserver.png"></a>
</p>
## API
A basic read-only API can be accessed at `/admin/api.php`. It returns the following JSON:
``` json
{
"domains_being_blocked": "136708",
"dns_queries_today": "18108",
"ads_blocked_today": "14648",
"ads_percentage_today": "80.89"
}
```
The same output can be achieved on the CLI by running `chronometer.sh -j`
## Real-time Statistics
You can view [real-time stats](https://discourse.pi-hole.net/t/how-do-i-view-my-pi-holes-stats-over-ssh-or-on-an-lcd-using-chronometer/240) via `ssh` or on an [2.8" LCD screen](http://amzn.to/1P0q1Fj). This is accomplished via [`chronometer.sh`](https://github.com/pi-hole/pi-hole/blob/master/advanced/Scripts/chronometer.sh). ![Pi-hole LCD](http://i.imgur.com/nBEqycp.jpg)
## Pi-hole™ Projects
- [An ad blocking Magic Mirror](https://zonksec.com/blog/magic-mirror-dns-filtering/#dnssoftware)
- [Pi-hole stats in your Mac's menu bar](https://getbitbar.com/plugins/Network/pi-hole.1m.py)
- [Get LED alerts for each blocked ad](http://thetimmy.silvernight.org/pages/endisbutton/)
- [Pi-hole on Ubuntu 14.04 on VirtualBox](http://hbalagtas.blogspot.com/2016/02/adblocking-with-pi-hole-and-ubuntu-1404.html)
- [Docker Pi-hole container (x86 and ARM)](https://hub.docker.com/r/diginc/pi-hole/)
- [Splunk: Pi-hole Visualiser](https://splunkbase.splunk.com/app/3023/)
- [Pi-hole Chrome extension](https://chrome.google.com/webstore/detail/pi-hole-list-editor/hlnoeoejkllgkjbnnnhfolapllcnaglh) ([open source](https://github.com/packtloss/pihole-extension))
- [Go Bananas for CHiP-hole ad blocking](https://www.hackster.io/jacobsalmela/chip-hole-network-wide-ad-blocker-98e037)
- [Sky-Hole](http://dlaa.me/blog/post/skyhole)
- [Pi-hole in the Cloud!](http://blog.codybunch.com/2015/07/28/Pi-Hole-in-the-cloud/)
- [unRaid-hole](https://github.com/spants/unraidtemplates/blob/master/Spants/unRaid-hole.xml#L13)--[Repo and more info](http://lime-technology.com/forum/index.php?PHPSESSID=c0eae3e5ef7e521f7866034a3336489d&topic=38486.0)
- [Pi-hole on/off button](http://thetimmy.silvernight.org/pages/endisbutton/)
- [Minibian Pi-hole](http://munkjensen.net/wiki/index.php/See_my_Pi-Hole#Minibian_Pi-hole)
- [Windows Tray Stat Application](https://github.com/goldbattle/copernicus)
- [Let your blink1 device blink when Pi-hole filters ads](https://gist.github.com/elpatron68/ec0b4c582e5abf604885ac1e068d233f)
- [Pi-hole Prometheus exporter](https://github.com/nlamirault/pihole_exporter): a [Prometheus](https://prometheus.io/) exporter for Pi-hole
- [Pi-hole Droid - open source Android client](https://github.com/friimaind/pi-hole-droid)
## Coverage
Featured on [MakeUseOf](http://www.makeuseof.com/tag/adblock-everywhere-raspberry-pi-hole-way/) and [Lifehacker](http://lifehacker.com/turn-a-raspberry-pi-into-an-ad-blocker-with-a-single-co-1686093533)!
## Automated Install
1. Install Raspbian
2. Set a **static** IP address
3. Run the command below
```curl -s "https://raw.githubusercontent.com/jacobsalmela/pi-hole/master/automated%20install/basic-install.sh" | bash```
Once installed, **configure any device to use the Raspberry Pi as its DNS server and the ads will be blocked**. You can also configure your router's DHCP options to assign the Pi as clients DNS server so they do not need to do it manually.
A more detailed explanation of the installation can be found [here](http://jacobsalmela.com/block-millions-ads-network-wide-with-a-raspberry-pi-hole-2-0).
[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif "AdminLTE Presentation")](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3J2L3Z4DHW9UY "Donate")
## Gravity
The [gravity.sh](https://github.com/jacobsalmela/pi-hole/blob/master/gravity.sh) does most of the magic. The script pulls in ad domains from many sources and compiles them into a single list of [over 900,000 entries](http://jacobsalmela.com/block-millions-ads-network-wide-with-a-raspberry-pi-hole-2-0).
## Whitelist and blacklist
You can add a `whitelist.txt` or `blacklist.txt` in `/etc/pihole/` and the script will apply those files automatically.
## Web Interface
I am also working on a [Web interface](https://github.com/jacobsalmela/AdminLTE#pi-hole-admin-dashboard) so you can view stats and change settings.
## Custom Config File
If you want to use your own variables for the gravity script (i.e. storing the files in a different location) and don't want to have to change them every time there is an update to the script, create a file called `/etc/pihole/pihole.conf`. In it, you should add your own variables in a similar fashion as shown below:
```
origin=/var/run/pihole
adList=/etc/dnsmasq.d/adList
```
See [this PR](https://github.com/jacobsalmela/pi-hole/pull/20) for more details.
### How It Works
A technical and detailed description can be found [here](http://jacobsalmela.com/block-millions-ads-network-wide-with-a-raspberry-pi-hole-2-0)!
## Other Operating Systems
This script will work for other UNIX-like systems with some slight **modifications**. As long as you can install `dnsmasq` and a Webserver, it should work OK. The automated install only works for a clean install of Raspiban right now since that is how the project originated.
[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif "AdminLTE Presentation")](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3J2L3Z4DHW9UY "Donate")
- [Adafruit livestream install](https://www.youtube.com/watch?v=eg4u2j1HYlI)
- [TekThing: 5 fun, easy projects for a Raspberry Pi](https://youtu.be/QwrKlyC2kdM?t=1m42s)
- [Pi-hole on Adafruit's blog](https://blog.adafruit.com/2016/03/04/pi-hole-is-a-black-hole-for-internet-ads-piday-raspberrypi-raspberry_pi/)
- [The Defrag Show - MSDN/Channel 9](https://channel9.msdn.com/Shows/The-Defrag-Show/Defrag-Endoscope-USB-Camera-The-Final-HoloLens-Vote-Adblock-Pi-and-more?WT.mc_id=dlvr_twitter_ch9#time=20m39s)
- [MacObserver Podcast 585](http://www.macobserver.com/tmo/podcast/macgeekgab-585)
- [Medium: Block All Ads For $53](https://medium.com/@robleathern/block-ads-on-all-home-devices-for-53-18-a5f1ec139693#.gj1xpgr5d)
- [MakeUseOf: Adblock Everywhere, The Pi-hole Way](http://www.makeuseof.com/tag/adblock-everywhere-raspberry-pi-hole-way/)
- [Lifehacker: Turn Your Pi Into An Ad Blocker With A Single Command](http://lifehacker.com/turn-a-raspberry-pi-into-an-ad-blocker-with-a-single-co-1686093533)!
- [Pi-hole on TekThing](https://youtu.be/8Co59HU2gY0?t=2m)
- [Pi-hole on Security Now! Podcast](http://www.youtube.com/watch?v=p7-osq_y8i8&t=100m26s)
- [Foolish Tech Show](https://youtu.be/bYyena0I9yc?t=2m4s)
- [Pi-hole on Ubuntu](http://www.boyter.org/2015/12/pi-hole-ubuntu-14-04/)
- [Catchpoint: iOS 9 Ad Blocking](http://blog.catchpoint.com/2015/09/14/ad-blocking-apple/)
- [Build an Ad-Blocker for less than 10$ with Orange-Pi](http://www.devacron.com/orangepi-zero-as-an-ad-block-server-with-pi-hole/)

23
adlists.default Normal file
View File

@@ -0,0 +1,23 @@
# The below list amalgamates several lists we used previously.
# See `https://github.com/StevenBlack/hosts` for details
##StevenBlack's list
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
##MalwareDomains
https://mirror1.malwaredomains.com/files/justdomains
##Cameleon
http://sysctl.org/cameleon/hosts
##Zeustracker
https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist
##Disconnect.me Tracking
https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt
##Disconnect.me Ads
https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt
##Hosts-file.net
https://hosts-file.net/ad_servers.txt

44
advanced/01-pihole.conf Normal file
View File

@@ -0,0 +1,44 @@
# Pi-hole: A black hole for Internet advertisements
# (c) 2015, 2016 by Jacob Salmela
# Network-wide ad blocking via your Raspberry Pi
# http://pi-hole.net
# dnsmasq config for Pi-hole
#
# Pi-hole is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
###############################################################################
# FILE AUTOMATICALLY POPULATED BY PI-HOLE INSTALL/UPDATE PROCEDURE. #
# ANY CHANGES MADE TO THIS FILE AFTER INSTALL WILL BE LOST ON THE NEXT UPDATE #
# #
# IF YOU WISH TO CHANGE THE UPSTREAM SERVERS, CHANGE THEM IN: #
# /etc/pihole/setupVars.conf #
# #
# ANY OTHER CHANGES SHOULD BE MADE IN A SEPERATE CONFIG FILE #
# OR IN /etc/dnsmasq.conf #
###############################################################################
addn-hosts=/etc/pihole/gravity.list
addn-hosts=/etc/pihole/local.list
domain-needed
bogus-priv
no-resolv
server=@DNS1@
server=@DNS2@
interface=@INT@
cache-size=10000
log-queries
log-facility=/var/log/pihole.log
local-ttl=300
log-async

View File

@@ -1,28 +1,108 @@
#!/bin/bash
# Displays Pi-hole stats on the Adafruit PiTFT 2.8" touch screen
# Set the pi user to log in automatically and run this script from /etc/profile
for (( ; ; ))
do
clear
# Displays a colorful Pi-hole logo
toilet -f small -F gay Pi-hole
echo " $(ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -d':' -f2)"
echo ""
uptime | cut -d' ' -f11-
echo "-------------------------------"
# Uncomment to continually read the log file and display the current domain being blocked
#tail -f /var/log/pihole.log | awk '/\/etc\/pihole\/gravity.list/ {if ($7 != "address" && $7 != "name" && $7 != "/etc/pihole/gravity.list") print $7; else;}'
today=$(date "+%b %e")
todaysQueryCount=$(cat /var/log/pihole.log | grep "$today" | awk '/query/ {print $7}' | wc -l)
todaysQueryCountV4=$(cat /var/log/pihole.log | grep "$today" | awk '/query/ && /\[A\]/ {print $7}' | wc -l)
todaysQueryCountV6=$(cat /var/log/pihole.log | grep "$today" | awk '/query/ && /\[AAAA\]/ {print $7}' | wc -l)
todaysAdsEliminated=$(cat /var/log/pihole.log | grep "$today" | awk '/\/etc\/pihole\/gravity.list/ {print $7}' | wc -l)
dividend=$(echo "$todaysAdsEliminated/$todaysQueryCount" | bc -l)
fp=$(echo "$dividend*100" | bc -l)
percentAds=$(echo ${fp:0:4})
echo "Queries: $todaysQueryCountV4 / $todaysQueryCountV6"
echo "Pi-holed: $todaysAdsEliminated ($percentAds%)"
sleep 5
#!/usr/bin/env bash
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Calculates stats and displays to an LCD
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
#Functions##############################################################################################################
piLog="/var/log/pihole.log"
gravity="/etc/pihole/gravity.list"
. /etc/pihole/setupVars.conf
function GetFTLData {
# Open connection to FTL
exec 3<>/dev/tcp/localhost/"$(cat /var/run/pihole-FTL.port)"
# Test if connection is open
if { >&3; } 2> /dev/null; then
# Send command to FTL
echo -e ">$1" >&3
# Read input
read -r -t 1 LINE <&3
until [ ! $? ] || [[ "$LINE" == *"EOM"* ]]; do
echo "$LINE" >&1
read -r -t 1 LINE <&3
done
# Close connection
exec 3>&-
exec 3<&-
fi
}
outputJSON() {
get_summary_data
echo "{\"domains_being_blocked\":${domains_being_blocked_raw},\"dns_queries_today\":${dns_queries_today_raw},\"ads_blocked_today\":${ads_blocked_today_raw},\"ads_percentage_today\":${ads_percentage_today_raw}}"
}
get_summary_data() {
local summary=$(GetFTLData "stats")
domains_being_blocked_raw=$(grep "domains_being_blocked" <<< "${summary}" | grep -Eo "[0-9]+$")
domains_being_blocked=$(printf "%'.f" ${domains_being_blocked_raw})
dns_queries_today_raw=$(grep "dns_queries_today" <<< "$summary" | grep -Eo "[0-9]+$")
dns_queries_today=$(printf "%'.f" ${dns_queries_today_raw})
ads_blocked_today_raw=$(grep "ads_blocked_today" <<< "$summary" | grep -Eo "[0-9]+$")
ads_blocked_today=$(printf "%'.f" ${ads_blocked_today_raw})
ads_percentage_today_raw=$(grep "ads_percentage_today" <<< "$summary" | grep -Eo "[0-9.]+$")
LC_NUMERIC=C ads_percentage_today=$(printf "%'.f" ${ads_percentage_today_raw})
}
normalChrono() {
for (( ; ; )); do
get_summary_data
domain=$(GetFTLData recentBlocked)
clear
# Displays a colorful Pi-hole logo
echo " ___ _ _ _"
echo "| _ (_)___| |_ ___| |___"
echo "| _/ |___| ' \/ _ \ / -_)"
echo "|_| |_| |_||_\___/_\___|"
echo ""
echo " ${IPV4_ADDRESS}"
echo ""
uptime | cut -d' ' -f11-
#uptime -p #Doesn't work on all versions of uptime
uptime | awk -F'( |,|:)+' '{if ($7=="min") m=$6; else {if ($7~/^day/) {d=$6;h=$8;m=$9} else {h=$6;m=$7}}} {print d+0,"days,",h+0,"hours,",m+0,"minutes."}'
echo "-------------------------------"
echo "Recently blocked:"
echo " $domain"
echo "Blocking: ${domains_being_blocked}"
echo "Queries: ${dns_queries_today}"
echo "Pi-holed: ${ads_blocked_today} (${ads_percentage_today}%)"
sleep 5
done
}
displayHelp() {
cat << EOM
::: Displays stats about your piHole!
:::
::: Usage: sudo pihole -c [optional:-j]
::: Note: If no option is passed, then stats are displayed on screen, updated every 5 seconds
:::
::: Options:
::: -j, --json output stats as JSON formatted string
::: -h, --help display this help text
EOM
exit 0
}
if [[ $# = 0 ]]; then
normalChrono
fi
for var in "$@"; do
case "$var" in
"-j" | "--json" ) outputJSON;;
"-h" | "--help" ) displayHelp;;
* ) exit 1;;
esac
done

234
advanced/Scripts/list.sh Executable file
View File

@@ -0,0 +1,234 @@
#!/usr/bin/env bash
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Whitelists and blacklists domains
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
#globals
basename=pihole
piholeDir=/etc/${basename}
whitelist=${piholeDir}/whitelist.txt
blacklist=${piholeDir}/blacklist.txt
readonly wildcardlist="/etc/dnsmasq.d/03-pihole-wildcard.conf"
reload=false
addmode=true
verbose=true
domList=()
domToRemoveList=()
listMain=""
listAlt=""
helpFunc() {
if [[ ${listMain} == ${whitelist} ]]; then
letter="w"
word="white"
else
letter="b"
word="black"
fi
cat << EOM
::: Immediately ${word}lists one or more domains in the hosts file
:::
::: Usage: pihole -${letter} domain1 [domain2 ...]
:::
::: Options:
::: -d, --delmode Remove domains from the ${word}list
::: -nr, --noreload Update ${word}list without refreshing dnsmasq
::: -q, --quiet Output is less verbose
::: -h, --help Show this help dialog
::: -l, --list Display your ${word}listed domains
EOM
if [[ "${letter}" == "b" ]]; then
echo "::: -wild, --wildcard Add wildcard entry (only blacklist)"
fi
exit 0
}
EscapeRegexp() {
# This way we may safely insert an arbitrary
# string in our regular expressions
# Also remove leading "." if present
echo $* | sed 's/^\.*//' | sed "s/[]\.|$(){}?+*^]/\\\\&/g" | sed "s/\\//\\\\\//g"
}
HandleOther(){
# First, convert everything to lowercase
domain=$(sed -e "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/" <<< "$1")
#check validity of domain
validDomain=$(echo "${domain}" | perl -lne 'print if /(?!.*[^a-z0-9-\.].*)^((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9-]+\.)*[a-z]{2,63}/')
if [ -z "${validDomain}" ]; then
echo "::: $1 is not a valid argument or domain name"
else
domList=("${domList[@]}" ${validDomain})
fi
}
PoplistFile() {
#check whitelist file exists, and if not, create it
if [[ ! -f ${whitelist} ]]; then
touch ${whitelist}
fi
for dom in "${domList[@]}"; do
# Logic : If addmode then add to desired list and remove from the other; if delmode then remove from desired list but do not add to the other
if ${addmode}; then
AddDomain "${dom}" "${listMain}"
RemoveDomain "${dom}" "${listAlt}"
if [[ "${listMain}" == "${whitelist}" || "${listMain}" == "${blacklist}" ]]; then
RemoveDomain "${dom}" "${wildcardlist}"
fi
else
RemoveDomain "${dom}" "${listMain}"
fi
done
}
AddDomain() {
list="$2"
domain=$(EscapeRegexp "$1")
if [[ "${list}" == "${whitelist}" || "${list}" == "${blacklist}" ]]; then
bool=true
#Is the domain in the list we want to add it to?
grep -Ex -q "${domain}" "${list}" > /dev/null 2>&1 || bool=false
if [[ "${bool}" == false ]]; then
#domain not found in the whitelist file, add it!
if [[ "${verbose}" == true ]]; then
echo "::: Adding $1 to $list..."
fi
reload=true
# Add it to the list we want to add it to
echo "$1" >> "${list}"
else
if [[ "${verbose}" == true ]]; then
echo "::: ${1} already exists in ${list}, no need to add!"
fi
fi
elif [[ "${list}" == "${wildcardlist}" ]]; then
source "${piholeDir}/setupVars.conf"
#Remove the /* from the end of the IPv4addr.
IPV4_ADDRESS=${IPV4_ADDRESS%/*}
IPV6_ADDRESS=${IPV6_ADDRESS}
bool=true
#Is the domain in the list?
grep -e "address=\/${domain}\/" "${wildcardlist}" > /dev/null 2>&1 || bool=false
if [[ "${bool}" == false ]]; then
if [[ "${verbose}" == true ]]; then
echo "::: Adding $1 to wildcard blacklist..."
fi
reload=true
echo "address=/$1/${IPV4_ADDRESS}" >> "${wildcardlist}"
if [[ ${#IPV6_ADDRESS} > 0 ]] ; then
echo "address=/$1/${IPV6_ADDRESS}" >> "${wildcardlist}"
fi
else
if [[ "${verbose}" == true ]]; then
echo "::: ${1} already exists in wildcard blacklist, no need to add!"
fi
fi
fi
}
RemoveDomain() {
list="$2"
domain=$(EscapeRegexp "$1")
if [[ "${list}" == "${whitelist}" || "${list}" == "${blacklist}" ]]; then
bool=true
#Is it in the list? Logic follows that if its whitelisted it should not be blacklisted and vice versa
grep -Ex -q "${domain}" "${list}" > /dev/null 2>&1 || bool=false
if [[ "${bool}" == true ]]; then
# Remove it from the other one
echo "::: Removing $1 from $list..."
# /I flag: search case-insensitive
sed -i "/${domain}/Id" "${list}"
reload=true
else
if [[ "${verbose}" == true ]]; then
echo "::: ${1} does not exist in ${list}, no need to remove!"
fi
fi
elif [[ "${list}" == "${wildcardlist}" ]]; then
bool=true
#Is it in the list?
grep -e "address=\/${domain}\/" "${wildcardlist}" > /dev/null 2>&1 || bool=false
if [[ "${bool}" == true ]]; then
# Remove it from the other one
echo "::: Removing $1 from $list..."
# /I flag: search case-insensitive
sed -i "/address=\/${domain}/Id" "${list}"
reload=true
else
if [[ "${verbose}" == true ]]; then
echo "::: ${1} does not exist in ${list}, no need to remove!"
fi
fi
fi
}
Reload() {
# Reload hosts file
pihole -g -sd
}
Displaylist() {
if [[ ${listMain} == ${whitelist} ]]; then
string="gravity resistant domains"
else
string="domains caught in the sinkhole"
fi
verbose=false
echo -e " Displaying $string \n"
count=1
while IFS= read -r RD; do
echo "${count}: ${RD}"
count=$((count+1))
done < "${listMain}"
exit 0;
}
for var in "$@"; do
case "${var}" in
"-w" | "whitelist" ) listMain="${whitelist}"; listAlt="${blacklist}";;
"-b" | "blacklist" ) listMain="${blacklist}"; listAlt="${whitelist}";;
"-wild" | "wildcard" ) listMain="${wildcardlist}";;
"-nr"| "--noreload" ) reload=false;;
"-d" | "--delmode" ) addmode=false;;
"-f" | "--force" ) force=true;;
"-q" | "--quiet" ) verbose=false;;
"-h" | "--help" ) helpFunc;;
"-l" | "--list" ) Displaylist;;
* ) HandleOther "${var}";;
esac
done
shift
if [[ $# = 0 ]]; then
helpFunc
fi
PoplistFile
if ${reload}; then
Reload
fi

View File

@@ -0,0 +1,202 @@
#!/usr/bin/env bash
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Checkout other branches than master
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
readonly PI_HOLE_FILES_DIR="/etc/.pihole"
PH_TEST="true" source "${PI_HOLE_FILES_DIR}/automated install/basic-install.sh"
# webInterfaceGitUrl set in basic-install.sh
# webInterfaceDir set in basic-install.sh
# piholeGitURL set in basic-install.sh
# is_repo() sourced from basic-install.sh
# setupVars set in basic-install.sh
source "${setupVars}"
update="false"
fully_fetch_repo() {
# Add upstream branches to shallow clone
local directory="${1}"
cd "${directory}" || return 1
if is_repo "${directory}"; then
git remote set-branches origin '*' || return 1
git fetch --quiet || return 1
else
return 1
fi
return 0
}
get_available_branches(){
# Return available branches
local directory="${1}"
cd "${directory}" || return 1
# Get reachable remote branches
git remote show origin | grep 'tracked' | sed 's/tracked//;s/ //g'
return
}
fetch_checkout_pull_branch() {
# Check out specified branch
local directory="${1}"
local branch="${2}"
# Set the reference for the requested branch, fetch, check it put and pull it
cd "${directory}"
git remote set-branches origin "${branch}" || return 1
git fetch --quiet || return 1
checkout_pull_branch "${directory}" "${branch}" || return 1
}
checkout_pull_branch() {
# Check out specified branch
local directory="${1}"
local branch="${2}"
local oldbranch
cd "${directory}" || return 1
oldbranch="$(git symbolic-ref HEAD)"
git checkout "${branch}" || return 1
if [ "$(git diff "${oldbranch}" | grep -c "^")" -gt "0" ]; then
update="true"
fi
git pull || return 1
return 0
}
warning1() {
echo "::: Note that changing the branch is a severe change of your Pi-hole system."
echo "::: This is not supported unless one of the developers explicitly asks you to do this!"
read -r -p "::: Have you read and understood this? [y/N] " response
case ${response} in
[yY][eE][sS]|[yY])
echo "::: Continuing."
return 0
;;
*)
echo "::: Aborting."
return 1
;;
esac
}
checkout()
{
local corebranches
local webbranches
# Avoid globbing
set -f
#This is unlikely
if ! is_repo "${PI_HOLE_FILES_DIR}" ; then
echo "::: Critical Error: Core Pi-hole repo is missing from system!"
echo "::: Please re-run install script from https://github.com/pi-hole/pi-hole"
exit 1;
fi
if [[ ${INSTALL_WEB} == "true" ]]; then
if ! is_repo "${webInterfaceDir}" ; then
echo "::: Critical Error: Web Admin repo is missing from system!"
echo "::: Please re-run install script from https://github.com/pi-hole/pi-hole"
exit 1;
fi
fi
if [[ -z "${1}" ]]; then
echo "::: No option detected. Please use 'pihole checkout <master|dev>'."
echo "::: Or enter the repository and branch you would like to check out:"
echo "::: 'pihole checkout <web|core> <branchname>'"
exit 1
fi
if ! warning1 ; then
exit 1
fi
if [[ "${1}" == "dev" ]] ; then
# Shortcut to check out development branches
echo "::: Shortcut \"dev\" detected - checking out development / devel branches ..."
echo "::: Pi-hole core"
fetch_checkout_pull_branch "${PI_HOLE_FILES_DIR}" "development" || { echo "Unable to pull Core developement branch"; exit 1; }
if [[ ${INSTALL_WEB} == "true" ]]; then
echo "::: Web interface"
fetch_checkout_pull_branch "${webInterfaceDir}" "devel" || { echo "Unable to pull Web development branch"; exit 1; }
fi
echo "::: done!"
elif [[ "${1}" == "master" ]] ; then
# Shortcut to check out master branches
echo "::: Shortcut \"master\" detected - checking out master branches ..."
echo "::: Pi-hole core"
fetch_checkout_pull_branch "${PI_HOLE_FILES_DIR}" "master" || { echo "Unable to pull Core master branch"; exit 1; }
if [[ ${INSTALL_WEB} == "true" ]]; then
echo "::: Web interface"
fetch_checkout_pull_branch "${webInterfaceDir}" "master" || { echo "Unable to pull web master branch"; exit 1; }
fi
echo "::: done!"
elif [[ "${1}" == "core" ]] ; then
echo -n "::: Fetching remote branches for Pi-hole core from ${piholeGitUrl} ... "
if ! fully_fetch_repo "${PI_HOLE_FILES_DIR}" ; then
echo "::: Fetching all branches for Pi-hole core repo failed!"
exit 1
fi
corebranches=($(get_available_branches "${PI_HOLE_FILES_DIR}"))
echo " done!"
echo "::: ${#corebranches[@]} branches available"
echo ":::"
# Have to user chosing the branch he wants
if ! (for e in "${corebranches[@]}"; do [[ "$e" == "${2}" ]] && exit 0; done); then
echo "::: Requested branch \"${2}\" is not available!"
echo "::: Available branches for core are:"
for e in "${corebranches[@]}"; do echo "::: $e"; done
exit 1
fi
checkout_pull_branch "${PI_HOLE_FILES_DIR}" "${2}"
elif [[ "${1}" == "web" && "${INSTALL_WEB}" == "true" ]] ; then
echo -n "::: Fetching remote branches for the web interface from ${webInterfaceGitUrl} ... "
if ! fully_fetch_repo "${webInterfaceDir}" ; then
echo "::: Fetching all branches for Pi-hole web interface repo failed!"
exit 1
fi
webbranches=($(get_available_branches "${webInterfaceDir}"))
echo " done!"
echo "::: ${#webbranches[@]} branches available"
echo ":::"
# Have to user chosing the branch he wants
if ! (for e in "${webbranches[@]}"; do [[ "$e" == "${2}" ]] && exit 0; done); then
echo "::: Requested branch \"${2}\" is not available!"
echo "::: Available branches for web are:"
for e in "${webbranches[@]}"; do echo "::: $e"; done
exit 1
fi
checkout_pull_branch "${webInterfaceDir}" "${2}"
else
echo "::: Requested option \"${1}\" is not available!"
exit 1
fi
# Force updating everything
if [[ ! "${1}" == "web" && "${update}" == "true" ]]; then
echo "::: Running installer to upgrade your installation"
if "${PI_HOLE_FILES_DIR}/automated install/basic-install.sh" --unattended; then
exit 0
else
echo "Unable to complete update, contact Pi-hole"
exit 1
fi
fi
}

529
advanced/Scripts/piholeDebug.sh Executable file
View File

@@ -0,0 +1,529 @@
#!/usr/bin/env bash
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Generates pihole_debug.log to be used for troubleshooting.
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
set -o pipefail
######## GLOBAL VARS ########
VARSFILE="/etc/pihole/setupVars.conf"
DEBUG_LOG="/var/log/pihole_debug.log"
DNSMASQFILE="/etc/dnsmasq.conf"
DNSMASQCONFDIR="/etc/dnsmasq.d/*"
LIGHTTPDFILE="/etc/lighttpd/lighttpd.conf"
LIGHTTPDERRFILE="/var/log/lighttpd/error.log"
GRAVITYFILE="/etc/pihole/gravity.list"
WHITELISTFILE="/etc/pihole/whitelist.txt"
BLACKLISTFILE="/etc/pihole/blacklist.txt"
ADLISTFILE="/etc/pihole/adlists.list"
PIHOLELOG="/var/log/pihole.log"
PIHOLEGITDIR="/etc/.pihole/"
ADMINGITDIR="/var/www/html/admin/"
WHITELISTMATCHES="/tmp/whitelistmatches.list"
TIMEOUT=60
# Header info and introduction
cat << EOM
::: Beginning Pi-hole debug at $(date)!
:::
::: This process collects information from your Pi-hole, and optionally uploads
::: it to a unique and random directory on tricorder.pi-hole.net.
:::
::: NOTE: All log files auto-delete after 48 hours and ONLY the Pi-hole developers
::: can access your data via the given token. We have taken these extra steps to
::: secure your data and will work to further reduce any personal information gathered.
:::
::: Please read and note any issues, and follow any directions advised during this process.
EOM
source ${VARSFILE}
### Private functions exist here ###
log_write() {
echo "${@}" >&3
}
log_echo() {
case ${1} in
-n)
echo -n "::: ${2}"
log_write "${2}"
;;
-r)
echo "::: ${2}"
log_write "${2}"
;;
-l)
echo "${2}"
log_write "${2}"
;;
*)
echo "::: ${1}"
log_write "${1}"
esac
}
header_write() {
log_echo ""
log_echo "---= ${1}"
log_write ""
}
file_parse() {
while read -r line; do
if [ ! -z "${line}" ]; then
[[ "${line}" =~ ^#.*$ || ! "${line}" || "${line}" == "WEBPASSWORD="* ]] && continue
log_write "${line}"
fi
done < "${1}"
log_write ""
}
block_parse() {
log_write "${1}"
}
lsof_parse() {
local user
local process
user=$(echo ${1} | cut -f 3 -d ' ' | cut -c 2-)
process=$(echo ${1} | cut -f 2 -d ' ' | cut -c 2-)
[[ ${2} -eq ${process} ]] \
&& echo "::: Correctly configured." \
|| log_echo "::: Failure: Incorrectly configured daemon."
log_write "Found user ${user} with process ${process}"
}
version_check() {
header_write "Detecting Installed Package Versions:"
local error_found
local pi_hole_ver
local pi_hole_branch
local pi_hole_commit
local admin_ver
local admin_branch
local admin_commit
local light_ver
local php_ver
local status
error_found=0
cd "${PIHOLEGITDIR}" &> /dev/null || \
{ status="Pi-hole git directory not found."; error_found=1; }
if git status &> /dev/null; then
pi_hole_ver=$(git describe --tags --abbrev=0)
pi_hole_branch=$(git rev-parse --abbrev-ref HEAD)
pi_hole_commit=$(git describe --long --dirty --tags --always)
log_echo -r "Pi-hole: ${pi_hole_ver:-Untagged} (${pi_hole_branch:-Detached}:${pi_hole_commit})"
else
status=${status:-"Pi-hole repository damaged."}
error_found=1
fi
if [[ "${status}" ]]; then
log_echo "${status}"
unset status
fi
cd "${ADMINGITDIR}" || \
{ status="Pi-hole Dashboard git directory not found."; error_found=1; }
if git status &> /dev/null; then
admin_ver=$(git describe --tags --abbrev=0)
admin_branch=$(git rev-parse --abbrev-ref HEAD)
admin_commit=$(git describe --long --dirty --tags --always)
log_echo -r "Pi-hole Dashboard: ${admin_ver:-Untagged} (${admin_branch:-Detached}:${admin_commit})"
else
status=${status:-"Pi-hole Dashboard repository damaged."}
error_found=1
fi
if [[ "${status}" ]]; then
log_echo "${status}"
unset status
fi
if light_ver=$(lighttpd -v |& head -n1 | cut -d " " -f1); then
log_echo -r "${light_ver}"
else
log_echo "lighttpd not installed."
error_found=1
fi
if php_ver=$(php -v |& head -n1); then
log_echo -r "${php_ver}"
else
log_echo "PHP not installed."
error_found=1
fi
return "${error_found}"
}
dir_check() {
header_write "Detecting contents of ${1}:"
for file in $1*; do
header_write "File ${file} found"
echo -n "::: Parsing..."
file_parse "${file}"
echo "done"
done
echo ":::"
}
files_check() {
#Check non-zero length existence of ${1}
header_write "Detecting existence of ${1}:"
local search_file="${1}"
if [[ -s ${search_file} ]]; then
echo -n "::: File exists, parsing..."
file_parse "${search_file}"
echo "done"
return 0
else
log_echo "${1} not found!"
return 1
fi
echo ":::"
}
source_file() {
local file_found=$(files_check "${1}") \
&& (source "${1}" &> /dev/null && echo "${file_found} and was successfully sourced") \
|| log_echo -l "${file_found} and could not be sourced"
}
distro_check() {
local soft_fail
header_write "Detecting installed OS Distribution"
soft_fail=0
local distro="$(cat /etc/*release)" && block_parse "${distro}" || (log_echo "Distribution details not found." && soft_fail=1)
return "${soft_fail}"
}
processor_check() {
header_write "Checking processor variety"
log_write $(uname -m) && return 0 || return 1
}
ipv6_check() {
# Check if system is IPv6 enabled, for use in other functions
if [[ $IPV6_ADDRESS ]]; then
ls /proc/net/if_inet6 &>/dev/null
return 0
else
return 1
fi
}
ip_check() {
local protocol=${1}
local gravity=${2}
header_write "Checking IPv${protocol} Stack"
local ip_addr_list="$(ip -${protocol} addr show dev ${PIHOLE_INTERFACE} | awk -F ' ' '{ for(i=1;i<=NF;i++) if ($i ~ '/^inet/') print $(i+1) }')"
if [[ -n ${ip_addr_list} ]]; then
log_write "IPv${protocol} on ${PIHOLE_INTERFACE}"
log_write "Gravity configured for: ${2:-NOT CONFIGURED}"
log_write "----"
log_write "${ip_addr_list}"
echo "::: IPv${protocol} addresses located on ${PIHOLE_INTERFACE}"
ip_ping_check ${protocol}
return $(( 0 + $? ))
else
log_echo "No IPv${protocol} found on ${PIHOLE_INTERFACE}"
return 1
fi
}
ip_ping_check() {
local protocol=${1}
local cmd
if [[ ${protocol} == "6" ]]; then
cmd="ping6"
g_addr="2001:4860:4860::8888"
else
cmd="ping"
g_addr="8.8.8.8"
fi
local ip_def_gateway=$(ip -${protocol} route | grep default | cut -d ' ' -f 3)
if [[ -n ${ip_def_gateway} ]]; then
echo -n "::: Pinging default IPv${protocol} gateway: "
if ! ping_gateway="$(${cmd} -q -W 3 -c 3 -n ${ip_def_gateway} -I ${PIHOLE_INTERFACE} | tail -n 3)"; then
echo "Gateway did not respond."
return 1
else
echo "Gateway responded."
log_write "${ping_gateway}"
fi
echo -n "::: Pinging Internet via IPv${protocol}: "
if ! ping_inet="$(${cmd} -q -W 3 -c 3 -n ${g_addr} -I ${PIHOLE_INTERFACE} | tail -n 3)"; then
echo "Query did not respond."
return 1
else
echo "Query responded."
log_write "${ping_inet}"
fi
else
log_echo " No gateway detected."
fi
return 0
}
port_check() {
local lsof_value
lsof_value=$(lsof -i ${1}:${2} -FcL | tr '\n' ' ') \
&& lsof_parse "${lsof_value}" "${3}" \
|| log_echo "Failure: IPv${1} Port not in use"
}
daemon_check() {
# Check for daemon ${1} on port ${2}
header_write "Daemon Process Information"
echo "::: Checking ${2} port for ${1} listener."
if [[ ${IPV6_READY} ]]; then
port_check 6 "${2}" "${1}"
fi
lsof_value=$(lsof -i 4:${2} -FcL | tr '\n' ' ') \
port_check 4 "${2}" "${1}"
}
testResolver() {
local protocol="${1}"
header_write "Resolver Functions Check (IPv${protocol})"
local IP="${2}"
local g_addr
local l_addr
local url
local testurl
local localdig
local piholedig
local remotedig
if [[ ${protocol} == "6" ]]; then
g_addr="2001:4860:4860::8888"
l_addr="::1"
r_type="AAAA"
else
g_addr="8.8.8.8"
l_addr="127.0.0.1"
r_type="A"
fi
# Find a blocked url that has not been whitelisted.
url=$(shuf -n 1 "${GRAVITYFILE}" | awk -F ' ' '{ print $2 }')
testurl="${url:-doubleclick.com}"
log_write "Resolution of ${testurl} from Pi-hole (${l_addr}):"
if localdig=$(dig -"${protocol}" "${testurl}" @${l_addr} +short "${r_type}"); then
log_write "${localdig}"
else
log_write "Failed to resolve ${testurl} on Pi-hole (${l_addr})"
fi
log_write ""
log_write "Resolution of ${testurl} from Pi-hole (${IP}):"
if piholedig=$(dig -"${protocol}" "${testurl}" @"${IP}" +short "${r_type}"); then
log_write "${piholedig}"
else
log_write "Failed to resolve ${testurl} on Pi-hole (${IP})"
fi
log_write ""
log_write "Resolution of ${testurl} from ${g_addr}:"
if remotedig=$(dig -"${protocol}" "${testurl}" @${g_addr} +short "${r_type}"); then
log_write "${remotedig:-NXDOMAIN}"
else
log_write "Failed to resolve ${testurl} on upstream server ${g_addr}"
fi
log_write ""
}
testChaos(){
# Check Pi-hole specific records
log_write "Pi-hole dnsmasq specific records lookups"
log_write "Cache Size:"
log_write $(dig +short chaos txt cachesize.bind)
log_write "Upstream Servers:"
log_write $(dig +short chaos txt servers.bind)
log_write ""
}
checkProcesses() {
header_write "Processes Check"
echo "::: Logging status of lighttpd, dnsmasq and pihole-FTL..."
PROCESSES=( lighttpd dnsmasq pihole-FTL )
for i in "${PROCESSES[@]}"; do
log_write "Status for ${i} daemon:"
log_write $(systemctl is-active "${i}")
done
log_write ""
}
debugLighttpd() {
echo "::: Checking for necessary lighttpd files."
files_check "${LIGHTTPDFILE}"
files_check "${LIGHTTPDERRFILE}"
echo ":::"
}
countdown() {
local tuvix
tuvix=${TIMEOUT}
printf "::: Logging will automatically teminate in %s seconds\n" "${TIMEOUT}"
while [ $tuvix -ge 1 ]
do
printf ":::\t%s seconds left. " "${tuvix}"
if [[ -z "${WEBCALL}" ]]; then
printf "\r"
else
printf "\n"
fi
sleep 5
tuvix=$(( tuvix - 5 ))
done
}
# Continuously append the pihole.log file to the pihole_debug.log file
dumpPiHoleLog() {
trap '{ echo -e "\n::: Finishing debug write from interrupt... Quitting!" ; exit 1; }' INT
echo "::: "
echo "::: --= User Action Required =--"
echo -e "::: Try loading a site that you are having trouble with now from a client web browser.. \n:::\t(Press CTRL+C to finish logging.)"
header_write "pihole.log"
if [ -e "${PIHOLELOG}" ]; then
# Dummy process to use for flagging down tail to terminate
countdown &
tail -n0 -f --pid=$! "${PIHOLELOG}" >&4
else
log_write "No pihole.log file found!"
printf ":::\tNo pihole.log file found!\n"
fi
}
# Anything to be done after capturing of pihole.log terminates
finalWork() {
local tricorder
echo "::: Finshed debugging!"
# Ensure the file exists, create if not, clear if exists.
truncate --size=0 "${DEBUG_LOG}"
chmod 644 ${DEBUG_LOG}
chown "$USER":pihole ${DEBUG_LOG}
# copy working temp file to final log location
cat /proc/$$/fd/3 >> "${DEBUG_LOG}"
# Straight dump of tailing the logs, can sanitize later if needed.
cat /proc/$$/fd/4 >> "${DEBUG_LOG}"
echo "::: The debug log can be uploaded to tricorder.pi-hole.net for sharing with developers only."
if [[ "${AUTOMATED}" ]]; then
echo "::: Debug script running in automated mode, uploading log to tricorder..."
tricorder=$(cat /var/log/pihole_debug.log | nc tricorder.pi-hole.net 9999)
else
read -r -p "::: Would you like to upload the log? [y/N] " response
case ${response} in
[yY][eE][sS]|[yY])
tricorder=$(cat /var/log/pihole_debug.log | nc tricorder.pi-hole.net 9999)
;;
*)
echo "::: Log will NOT be uploaded to tricorder."
;;
esac
fi
# Check if tricorder.pi-hole.net is reachable and provide token.
if [ -n "${tricorder}" ]; then
echo "::: ---=== Your debug token is : ${tricorder} Please make a note of it. ===---"
echo "::: Contact the Pi-hole team with your token for assistance."
echo "::: Thank you."
else
echo "::: There was an error uploading your debug log."
echo "::: Please try again or contact the Pi-hole team for assistance."
fi
echo "::: A local copy of the Debug log can be found at : /var/log/pihole_debug.log"
}
### END FUNCTIONS ###
# Create temporary file for log
TEMPLOG=$(mktemp /tmp/pihole_temp.XXXXXX)
# Open handle 3 for templog
exec 3>"$TEMPLOG"
# Delete templog, but allow for addressing via file handle.
rm "$TEMPLOG"
# Create temporary file for logdump using file handle 4
DUMPLOG=$(mktemp /tmp/pihole_temp.XXXXXX)
exec 4>"$DUMPLOG"
rm "$DUMPLOG"
# Gather version of required packages / repositories
version_check || echo "REQUIRED FILES MISSING"
# Check for newer setupVars storage file
source_file "/etc/pihole/setupVars.conf"
# Gather information about the running distribution
distro_check || echo "Distro Check soft fail"
# Gather processor type
processor_check || echo "Processor Check soft fail"
ip_check 6 ${IPV6_ADDRESS}
ip_check 4 ${IPV4_ADDRESS}
daemon_check lighttpd http
daemon_check dnsmasq domain
daemon_check pihole-FTL 4711
checkProcesses
# Check local/IP/Google for IPv4 Resolution
testResolver 4 "${IPV4_ADDRESS%/*}"
# If IPv6 enabled, check resolution
if [[ "${IPV6_ADDRESS}" ]]; then
testResolver 6 "${IPV6_ADDRESS%/*}"
fi
# Poll dnsmasq Pi-hole specific queries
testChaos
debugLighttpd
files_check "${DNSMASQFILE}"
dir_check "${DNSMASQCONFDIR}"
files_check "${WHITELISTFILE}"
files_check "${BLACKLISTFILE}"
files_check "${ADLISTFILE}"
header_write "Analyzing gravity.list"
gravity_length=$(grep -c ^ "${GRAVITYFILE}") \
&& log_write "${GRAVITYFILE} is ${gravity_length} lines long." \
|| log_echo "Warning: No gravity.list file found!"
header_write "Analyzing pihole.log"
pihole_length=$(grep -c ^ "${PIHOLELOG}") \
&& log_write "${PIHOLELOG} is ${pihole_length} lines long." \
|| log_echo "Warning: No pihole.log file found!"
pihole_size=$(du -h "${PIHOLELOG}" | awk '{ print $1 }') \
&& log_write "${PIHOLELOG} is ${pihole_size}." \
|| log_echo "Warning: No pihole.log file found!"
trap finalWork EXIT
### Method calls for additional logging ###
dumpPiHoleLog

View File

@@ -0,0 +1,24 @@
#!/usr/bin/env bash
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Flushes Pi-hole's log file
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
echo -n "::: Flushing /var/log/pihole.log ..."
# Test if logrotate is available on this system
if command -v /usr/sbin/logrotate &> /dev/null; then
# Flush twice to move all data out of sight of FTL
/usr/sbin/logrotate --force /etc/pihole/logrotate
/usr/sbin/logrotate --force /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
fi
fi
echo "... done!"

74
advanced/Scripts/setupLCD.sh Executable file
View File

@@ -0,0 +1,74 @@
#!/usr/bin/env bash
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Automatically configures the Pi to use the 2.8 LCD screen to display stats on it (also works over ssh)
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
############ FUNCTIONS ###########
# Borrowed from adafruit-pitft-helper < borrowed from raspi-config
# https://github.com/adafruit/Adafruit-PiTFT-Helper/blob/master/adafruit-pitft-helper#L324-L334
getInitSys() {
if command -v systemctl > /dev/null && systemctl | grep -q '\-\.mount'; then
SYSTEMD=1
elif [ -f /etc/init.d/cron ] && [ ! -h /etc/init.d/cron ]; then
SYSTEMD=0
else
echo "Unrecognised init system"
return 1
fi
}
# Borrowed from adafruit-pitft-helper:
# https://github.com/adafruit/Adafruit-PiTFT-Helper/blob/master/adafruit-pitft-helper#L274-L285
autoLoginPiToConsole() {
if [ -e /etc/init.d/lightdm ]; then
if [ ${SYSTEMD} -eq 1 ]; then
systemctl set-default multi-user.target
ln -fs /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
else
update-rc.d lightdm disable 2
sed /etc/inittab -i -e "s/1:2345:respawn:\/sbin\/getty --noclear 38400 tty1/1:2345:respawn:\/bin\/login -f pi tty1 <\/dev\/tty1 >\/dev\/tty1 2>&1/"
fi
fi
}
######### SCRIPT ###########
# Set pi to log in automatically
getInitSys
autoLoginPiToConsole
# Set chronomter to run automatically when pi logs in
echo /usr/local/bin/chronometer.sh >> /home/pi/.bashrc
# OR
#$SUDO echo /usr/local/bin/chronometer.sh >> /etc/profile
# Set up the LCD screen based on Adafruits instuctions:
# https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/easy-install
curl -SLs https://apt.adafruit.com/add-pin | bash
apt-get -y install raspberrypi-bootloader
apt-get -y install adafruit-pitft-helper
adafruit-pitft-helper -t 28r
# Download the cmdline.txt file that prevents the screen from going blank after a period of time
mv /boot/cmdline.txt /boot/cmdline.orig
curl -o /boot/cmdline.txt https://raw.githubusercontent.com/pi-hole/pi-hole/master/advanced/cmdline.txt
# Back up the original file and download the new one
mv /etc/default/console-setup /etc/default/console-setup.orig
curl -o /etc/default/console-setup https://raw.githubusercontent.com/pi-hole/pi-hole/master/advanced/console-setup
# Instantly apply the font change to the LCD screen
setupcon
reboot
# Start showing the stats on the screen by running the command on another tty:
# http://unix.stackexchange.com/questions/170063/start-a-process-on-a-different-tty
#setsid sh -c 'exec /usr/local/bin/chronometer.sh <> /dev/tty1 >&0 2>&1'

222
advanced/Scripts/update.sh Executable file
View File

@@ -0,0 +1,222 @@
#!/usr/bin/env bash
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Check Pi-hole core and admin pages versions and determine what
# upgrade (if any) is required. Automatically updates and reinstalls
# application if update is detected.
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
# Variables
readonly ADMIN_INTERFACE_GIT_URL="https://github.com/pi-hole/AdminLTE.git"
readonly ADMIN_INTERFACE_DIR="/var/www/html/admin"
readonly PI_HOLE_GIT_URL="https://github.com/pi-hole/pi-hole.git"
readonly PI_HOLE_FILES_DIR="/etc/.pihole"
PH_TEST=true
source ${PI_HOLE_FILES_DIR}/automated\ install/basic-install.sh
# is_repo() sourced from basic-install.sh
# make_repo() sourced from basic-install.sh
# update_repo() source from basic-install.sh
# getGitFiles() sourced from basic-install.sh
GitCheckUpdateAvail() {
local directory="${1}"
curdir=$PWD
cd "${directory}"
# Fetch latest changes in this repo
git fetch --quiet origin
# @ alone is a shortcut for HEAD. Older versions of git
# need @{0}
LOCAL="$(git rev-parse @{0})"
# The suffix @{upstream} to a branchname
# (short form <branchname>@{u}) refers
# to the branch that the branch specified
# by branchname is set to build on top of#
# (configured with branch.<name>.remote and
# branch.<name>.merge). A missing branchname
# defaults to the current one.
REMOTE="$(git rev-parse @{upstream})"
if [[ ${#LOCAL} == 0 ]]; then
echo "::: Error: Local revision could not be obtained, ask Pi-hole support."
echo "::: Additional debugging output:"
git status
exit
fi
if [[ ${#REMOTE} == 0 ]]; then
echo "::: Error: Remote revision could not be obtained, ask Pi-hole support."
echo "::: Additional debugging output:"
git status
exit
fi
# Change back to original directory
cd "${curdir}"
if [[ "${LOCAL}" != "${REMOTE}" ]]; then
# Local branch is behind remote branch -> Update
return 0
else
# Local branch is up-to-date or in a situation
# where this updater cannot be used (like on a
# branch that exists only locally)
return 1
fi
}
FTLcheckUpdate() {
local FTLversion=$(/usr/bin/pihole-FTL tag)
local FTLlatesttag=$(curl -sI https://github.com/pi-hole/FTL/releases/latest | grep 'Location' | awk -F '/' '{print $NF}' | tr -d '\r\n')
if [[ "${FTLversion}" != "${FTLlatesttag}" ]]; then
return 0
else
return 1
fi
}
main() {
local pihole_version_current
local web_version_current
source "${setupVars}"
#This is unlikely
if ! is_repo "${PI_HOLE_FILES_DIR}" ; then
echo "::: Critical Error: Core Pi-hole repo is missing from system!"
echo "::: Please re-run install script from https://github.com/pi-hole/pi-hole"
exit 1;
fi
echo "::: Checking for updates..."
if GitCheckUpdateAvail "${PI_HOLE_FILES_DIR}" ; then
core_update=true
echo "::: Pi-hole Core: update available"
else
core_update=false
echo "::: Pi-hole Core: up to date"
fi
if FTLcheckUpdate ; then
FTL_update=true
echo "::: FTL: update available"
else
FTL_update=false
echo "::: FTL: up to date"
fi
if ${FTL_update}; then
echo ":::"
echo "::: FTL out of date"
FTLdetect
echo ":::"
fi
if [[ ${INSTALL_WEB} == true ]]; then
if ! is_repo "${ADMIN_INTERFACE_DIR}" ; then
echo "::: Critical Error: Web Admin repo is missing from system!"
echo "::: Please re-run install script from https://github.com/pi-hole/pi-hole"
exit 1;
fi
if GitCheckUpdateAvail "${ADMIN_INTERFACE_DIR}" ; then
web_update=true
echo "::: Web Interface: update available"
else
web_update=false
echo "::: Web Interface: up to date"
fi
# Logic
# If Core up to date AND web up to date:
# Do nothing
# If Core up to date AND web NOT up to date:
# Pull web repo
# If Core NOT up to date AND web up to date:
# pull pihole repo, run install --unattended -- reconfigure
# if Core NOT up to date AND web NOT up to date:
# pull pihole repo run install --unattended
if ! ${core_update} && ! ${web_update} ; then
if ! ${FTL_update} ; then
echo ":::"
echo "::: Everything is up to date!"
exit 0
fi
elif ! ${core_update} && ${web_update} ; then
echo ":::"
echo "::: Pi-hole Web Admin files out of date"
getGitFiles "${ADMIN_INTERFACE_DIR}" "${ADMIN_INTERFACE_GIT_URL}"
elif ${core_update} && ! ${web_update} ; then
echo ":::"
echo "::: Pi-hole core files out of date"
getGitFiles "${PI_HOLE_FILES_DIR}" "${PI_HOLE_GIT_URL}"
${PI_HOLE_FILES_DIR}/automated\ install/basic-install.sh --reconfigure --unattended || echo "Unable to complete update, contact Pi-hole" && exit 1
elif ${core_update} && ${web_update} ; then
echo ":::"
echo "::: Updating Pi-hole core and web admin files"
getGitFiles "${PI_HOLE_FILES_DIR}" "${PI_HOLE_GIT_URL}"
${PI_HOLE_FILES_DIR}/automated\ install/basic-install.sh --unattended || echo "Unable to complete update, contact Pi-hole" && exit 1
else
echo "*** Update script has malfunctioned, fallthrough reached. Please contact support"
exit 1
fi
else # Web Admin not installed, so only verify if core is up to date
if ! ${core_update}; then
if ! ${FTL_update} ; then
echo ":::"
echo "::: Everything is up to date!"
exit 0
fi
else
echo ":::"
echo "::: Pi-hole core files out of date"
getGitFiles "${PI_HOLE_FILES_DIR}" "${PI_HOLE_GIT_URL}"
${PI_HOLE_FILES_DIR}/automated\ install/basic-install.sh --reconfigure --unattended || echo "Unable to complete update, contact Pi-hole" && exit 1
fi
fi
if [[ "${web_update}" == true ]]; then
web_version_current="$(/usr/local/bin/pihole version --admin --current)"
echo ":::"
echo "::: Web Admin version is now at ${web_version_current}"
echo "::: If you had made any changes in '/var/www/html/admin/', they have been stashed using 'git stash'"
fi
if [[ "${core_update}" == true ]]; then
pihole_version_current="$(/usr/local/bin/pihole version --pihole --current)"
echo ":::"
echo "::: Pi-hole version is now at ${pihole_version_current}"
echo "::: If you had made any changes in '/etc/.pihole/', they have been stashed using 'git stash'"
fi
if [[ ${FTL_update} == true ]]; then
FTL_version_current="$(/usr/bin/pihole-FTL tag)"
echo ":::"
echo "::: FTL version is now at ${FTL_version_current}"
start_service pihole-FTL
enable_service pihole-FTL
fi
echo ""
exit 0
}
main

137
advanced/Scripts/version.sh Executable file
View File

@@ -0,0 +1,137 @@
#!/usr/bin/env bash
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# shows version numbers
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
# Variables
DEFAULT="-1"
PHGITDIR="/etc/.pihole/"
WEBGITDIR="/var/www/html/admin/"
getLocalVersion() {
# Get the tagged version of the local repository
local directory="${1}"
local version
cd "${directory}" || { echo "${DEFAULT}"; return 1; }
version=$(git describe --tags --always || \
echo "${DEFAULT}")
if [[ "${version}" =~ ^v ]]; then
echo "${version}"
elif [[ "${version}" == "${DEFAULT}" ]]; then
echo "ERROR"
return 1
else
echo "Untagged"
fi
return 0
}
getLocalHash() {
# Get the short hash of the local repository
local directory="${1}"
local hash
cd "${directory}" || { echo "${DEFAULT}"; return 1; }
hash=$(git rev-parse --short HEAD || \
echo "${DEFAULT}")
if [[ "${hash}" == "${DEFAULT}" ]]; then
echo "ERROR"
return 1
else
echo "${hash}"
fi
return 0
}
getRemoteVersion(){
# Get the version from the remote origin
local daemon="${1}"
local version
version=$(curl --silent --fail https://api.github.com/repos/pi-hole/${daemon}/releases/latest | \
awk -F: '$1 ~/tag_name/ { print $2 }' | \
tr -cd '[[:alnum:]]._-')
if [[ "${version}" =~ ^v ]]; then
echo "${version}"
else
echo "ERROR"
return 1
fi
return 0
}
#PHHASHLATEST=$(curl -s https://api.github.com/repos/pi-hole/pi-hole/commits/master | \
# grep sha | \
# head -n1 | \
# awk -F ' ' '{ print $2 }' | \
# tr -cd '[[:alnum:]]._-')
#WEBHASHLATEST=$(curl -s https://api.github.com/repos/pi-hole/AdminLTE/commits/master | \
# grep sha | \
# head -n1 | \
# awk -F ' ' '{ print $2 }' | \
# tr -cd '[[:alnum:]]._-')
normalOutput() {
echo "::: Pi-hole version is $(getLocalVersion "${PHGITDIR}") (Latest version is $(getRemoteVersion pi-hole))"
if [ -d "${WEBGITDIR}" ]; then
echo "::: Web-Admin version is $(getLocalVersion "${WEBGITDIR}") (Latest version is $(getRemoteVersion AdminLTE))"
fi
}
webOutput() {
if [ -d "${WEBGITDIR}" ]; then
case "${1}" in
"-l" | "--latest" ) echo $(getRemoteVersion AdminLTE);;
"-c" | "--current" ) echo $(getLocalVersion "${WEBGITDIR}");;
"-h" | "--hash" ) echo $(getLocalHash "${WEBGITDIR}");;
* ) echo "::: Invalid Option!"; exit 1;
esac
else
echo "::: Web interface not installed!"; exit 1;
fi
}
coreOutput() {
case "${1}" in
"-l" | "--latest" ) echo $(getRemoteVersion pi-hole);;
"-c" | "--current" ) echo $(getLocalVersion "${PHGITDIR}");;
"-h" | "--hash" ) echo $(getLocalHash "${PHGITDIR}");;
* ) echo "::: Invalid Option!"; exit 1;
esac
}
helpFunc() {
cat << EOM
:::
::: Show Pi-hole/Web Admin versions
:::
::: Usage: pihole -v [ -a | -p ] [ -l | -c ]
:::
::: Options:
::: -a, --admin Show both current and latest versions of web admin
::: -p, --pihole Show both current and latest versions of Pi-hole core files
::: -l, --latest (Only after -a | -p) Return only latest version
::: -c, --current (Only after -a | -p) Return only current version
::: -h, --help Show this help dialog
:::
EOM
exit 0
}
if [[ $# = 0 ]]; then
normalOutput
fi
case "${1}" in
"-a" | "--admin" ) shift; webOutput "$@";;
"-p" | "--pihole" ) shift; coreOutput "$@" ;;
"-h" | "--help" ) helpFunc;;
esac

483
advanced/Scripts/webpage.sh Executable file
View File

@@ -0,0 +1,483 @@
#!/usr/bin/env bash
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Web interface settings
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
readonly setupVars="/etc/pihole/setupVars.conf"
readonly dnsmasqconfig="/etc/dnsmasq.d/01-pihole.conf"
readonly dhcpconfig="/etc/dnsmasq.d/02-pihole-dhcp.conf"
# 03 -> wildcards
readonly dhcpstaticconfig="/etc/dnsmasq.d/04-pihole-static-dhcp.conf"
helpFunc() {
cat << EOM
::: Set admin options for the web interface of pihole
:::
::: Usage: pihole -a [options]
:::
::: Options:
::: -p, password Set web interface password, an empty input will remove any previously set password
::: -c, celsius Set Celsius temperature unit
::: -f, fahrenheit Set Fahrenheit temperature unit
::: -k, kelvin Set Kelvin temperature unit
::: -h, --help Show this help dialog
::: -i, interface Setup interface listening behavior of dnsmasq
::: pihole -a -i local : Listen on all interfaces, but allow only queries from
::: devices that are at most one hop away (local devices)
::: pihole -a -i single : Listen only on one interface (see PIHOLE_INTERFACE)
::: pihole -a -i all : Listen on all interfaces, permit all origins
EOM
exit 0
}
add_setting() {
echo "${1}=${2}" >> "${setupVars}"
}
delete_setting() {
sed -i "/${1}/d" "${setupVars}"
}
change_setting() {
delete_setting "${1}"
add_setting "${1}" "${2}"
}
add_dnsmasq_setting() {
if [[ "${2}" != "" ]]; then
echo "${1}=${2}" >> "${dnsmasqconfig}"
else
echo "${1}" >> "${dnsmasqconfig}"
fi
}
delete_dnsmasq_setting() {
sed -i "/${1}/d" "${dnsmasqconfig}"
}
SetTemperatureUnit(){
change_setting "TEMPERATUREUNIT" "${unit}"
}
SetWebPassword(){
if [ "${SUDO_USER}" == "www-data" ]; then
echo "Security measure: user www-data is not allowed to change webUI password!"
echo "Exiting"
exit 1
fi
if [ "${SUDO_USER}" == "lighttpd" ]; then
echo "Security measure: user lighttpd is not allowed to change webUI password!"
echo "Exiting"
exit 1
fi
read -s -p "Enter New Password (Blank for no password): " PASSWORD
echo ""
if [ "${PASSWORD}" == "" ]; then
change_setting "WEBPASSWORD" ""
echo "Password Removed"
exit 0
fi
read -s -p "Confirm Password: " CONFIRM
echo ""
if [ "${PASSWORD}" == "${CONFIRM}" ] ; then
# Compute password hash twice to avoid rainbow table vulnerability
hash=$(echo -n ${PASSWORD} | sha256sum | sed 's/\s.*$//')
hash=$(echo -n ${hash} | sha256sum | sed 's/\s.*$//')
# Save hash to file
change_setting "WEBPASSWORD" "${hash}"
echo "New password set"
else
echo "Passwords don't match. Your password has not been changed"
exit 1
fi
}
ProcessDNSSettings() {
source "${setupVars}"
delete_dnsmasq_setting "server"
COUNTER=1
while [[ 1 ]]; do
var=PIHOLE_DNS_${COUNTER}
if [ -z "${!var}" ]; then
break;
fi
add_dnsmasq_setting "server" "${!var}"
let COUNTER=COUNTER+1
done
delete_dnsmasq_setting "domain-needed"
if [[ "${DNS_FQDN_REQUIRED}" == true ]]; then
add_dnsmasq_setting "domain-needed"
fi
delete_dnsmasq_setting "bogus-priv"
if [[ "${DNS_BOGUS_PRIV}" == true ]]; then
add_dnsmasq_setting "bogus-priv"
fi
delete_dnsmasq_setting "dnssec"
delete_dnsmasq_setting "trust-anchor="
if [[ "${DNSSEC}" == true ]]; then
echo "dnssec
trust-anchor=.,19036,8,2,49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
" >> "${dnsmasqconfig}"
fi
delete_dnsmasq_setting "host-record"
if [ ! -z "${HOSTRECORD}" ]; then
add_dnsmasq_setting "host-record" "${HOSTRECORD}"
fi
# Setup interface listening behavior of dnsmasq
delete_dnsmasq_setting "interface"
delete_dnsmasq_setting "local-service"
if [[ "${DNSMASQ_LISTENING}" == "all" ]]; then
# Listen on all interfaces, permit all origins
add_dnsmasq_setting "except-interface" "nonexisting"
elif [[ "${DNSMASQ_LISTENING}" == "local" ]]; then
# Listen only on all interfaces, but only local subnets
add_dnsmasq_setting "local-service"
else
# Listen only on one interface
add_dnsmasq_setting "interface" "${PIHOLE_INTERFACE}"
fi
}
SetDNSServers(){
# Save setting to file
delete_setting "PIHOLE_DNS"
IFS=',' read -r -a array <<< "${args[2]}"
for index in "${!array[@]}"
do
add_setting "PIHOLE_DNS_$((index+1))" "${array[index]}"
done
if [[ "${args[3]}" == "domain-needed" ]]; then
change_setting "DNS_FQDN_REQUIRED" "true"
else
change_setting "DNS_FQDN_REQUIRED" "false"
fi
if [[ "${args[4]}" == "bogus-priv" ]]; then
change_setting "DNS_BOGUS_PRIV" "true"
else
change_setting "DNS_BOGUS_PRIV" "false"
fi
if [[ "${args[5]}" == "dnssec" ]]; then
change_setting "DNSSEC" "true"
else
change_setting "DNSSEC" "false"
fi
ProcessDNSSettings
# Restart dnsmasq to load new configuration
RestartDNS
}
SetExcludeDomains(){
change_setting "API_EXCLUDE_DOMAINS" "${args[2]}"
}
SetExcludeClients(){
change_setting "API_EXCLUDE_CLIENTS" "${args[2]}"
}
Reboot(){
nohup bash -c "sleep 5; reboot" &> /dev/null </dev/null &
}
RestartDNS(){
if [ -x "$(command -v systemctl)" ]; then
systemctl restart dnsmasq &> /dev/null
else
service dnsmasq restart &> /dev/null
fi
}
SetQueryLogOptions(){
change_setting "API_QUERY_LOG_SHOW" "${args[2]}"
}
ProcessDHCPSettings() {
source "${setupVars}"
if [[ "${DHCP_ACTIVE}" == "true" ]]; then
interface=$(grep 'PIHOLE_INTERFACE=' /etc/pihole/setupVars.conf | sed "s/.*=//")
# Use eth0 as fallback interface
if [ -z ${interface} ]; then
interface="eth0"
fi
if [[ "${PIHOLE_DOMAIN}" == "" ]]; then
PIHOLE_DOMAIN="local"
change_setting "PIHOLE_DOMAIN" "${PIHOLE_DOMAIN}"
fi
if [[ "${DHCP_LEASETIME}" == "0" ]]; then
leasetime="infinite"
elif [[ "${DHCP_LEASETIME}" == "" ]]; then
leasetime="24h"
change_setting "DHCP_LEASETIME" "${leasetime}"
else
leasetime="${DHCP_LEASETIME}h"
fi
# Write settings to file
echo "###############################################################################
# DHCP SERVER CONFIG FILE AUTOMATICALLY POPULATED BY PI-HOLE WEB INTERFACE. #
# ANY CHANGES MADE TO THIS FILE WILL BE LOST ON CHANGE #
###############################################################################
dhcp-authoritative
dhcp-range=${DHCP_START},${DHCP_END},${leasetime}
dhcp-option=option:router,${DHCP_ROUTER}
dhcp-leasefile=/etc/pihole/dhcp.leases
#quiet-dhcp
" > "${dhcpconfig}"
if [[ "${PIHOLE_DOMAIN}" != "none" ]]; then
echo "domain=${PIHOLE_DOMAIN}" >> "${dhcpconfig}"
fi
if [[ "${DHCP_IPv6}" == "true" ]]; then
echo "#quiet-dhcp6
#enable-ra
dhcp-option=option6:dns-server,[::]
dhcp-range=::100,::1ff,constructor:${interface},ra-names,slaac,${leasetime}
ra-param=*,0,0
" >> "${dhcpconfig}"
fi
else
rm "${dhcpconfig}" &> /dev/null
fi
}
EnableDHCP(){
change_setting "DHCP_ACTIVE" "true"
change_setting "DHCP_START" "${args[2]}"
change_setting "DHCP_END" "${args[3]}"
change_setting "DHCP_ROUTER" "${args[4]}"
change_setting "DHCP_LEASETIME" "${args[5]}"
change_setting "PIHOLE_DOMAIN" "${args[6]}"
change_setting "DHCP_IPv6" "${args[7]}"
# Remove possible old setting from file
delete_dnsmasq_setting "dhcp-"
delete_dnsmasq_setting "quiet-dhcp"
ProcessDHCPSettings
RestartDNS
}
DisableDHCP(){
change_setting "DHCP_ACTIVE" "false"
# Remove possible old setting from file
delete_dnsmasq_setting "dhcp-"
delete_dnsmasq_setting "quiet-dhcp"
ProcessDHCPSettings
RestartDNS
}
SetWebUILayout(){
change_setting "WEBUIBOXEDLAYOUT" "${args[2]}"
}
CustomizeAdLists() {
list="/etc/pihole/adlists.list"
if [[ "${args[2]}" == "enable" ]] ; then
sed -i "\\@${args[3]}@s/^#http/http/g" "${list}"
elif [[ "${args[2]}" == "disable" ]] ; then
sed -i "\\@${args[3]}@s/^http/#http/g" "${list}"
elif [[ "${args[2]}" == "add" ]] ; then
echo "${args[3]}" >> ${list}
elif [[ "${args[2]}" == "del" ]] ; then
var=$(echo "${args[3]}" | sed 's/\//\\\//g')
sed -i "/${var}/Id" "${list}"
else
echo "Not permitted"
return 1
fi
}
SetPrivacyMode(){
if [[ "${args[2]}" == "true" ]] ; then
change_setting "API_PRIVACY_MODE" "true"
else
change_setting "API_PRIVACY_MODE" "false"
fi
}
ResolutionSettings() {
typ="${args[2]}"
state="${args[3]}"
if [[ "${typ}" == "forward" ]]; then
change_setting "API_GET_UPSTREAM_DNS_HOSTNAME" "${state}"
elif [[ "${typ}" == "clients" ]]; then
change_setting "API_GET_CLIENT_HOSTNAME" "${state}"
fi
}
AddDHCPStaticAddress() {
mac="${args[2]}"
ip="${args[3]}"
host="${args[4]}"
if [[ "${ip}" == "noip" ]]; then
# Static host name
echo "dhcp-host=${mac},${host}" >> "${dhcpstaticconfig}"
elif [[ "${host}" == "nohost" ]]; then
# Static IP
echo "dhcp-host=${mac},${ip}" >> "${dhcpstaticconfig}"
else
# Full info given
echo "dhcp-host=${mac},${ip},${host}" >> "${dhcpstaticconfig}"
fi
}
RemoveDHCPStaticAddress() {
mac="${args[2]}"
sed -i "/dhcp-host=${mac}.*/d" "${dhcpstaticconfig}"
}
SetHostRecord(){
if [ -n "${args[3]}" ]; then
change_setting "HOSTRECORD" "${args[2]},${args[3]}"
echo "Setting host record for ${args[2]} -> ${args[3]}"
else
change_setting "HOSTRECORD" ""
echo "Removing host record"
fi
ProcessDNSSettings
# Restart dnsmasq to load new configuration
RestartDNS
}
SetListeningMode(){
source "${setupVars}"
if [[ "${args[2]}" == "all" ]] ; then
echo "Listening on all interfaces, permiting all origins, hope you have a firewall!"
change_setting "DNSMASQ_LISTENING" "all"
elif [[ "${args[2]}" == "local" ]] ; then
echo "Listening on all interfaces, permitting only origins that are at most one hop away (local devices)"
change_setting "DNSMASQ_LISTENING" "local"
else
echo "Listening only on interface ${PIHOLE_INTERFACE}"
change_setting "DNSMASQ_LISTENING" "single"
fi
# Don't restart DNS server yet because other settings
# will be applied afterwards if "-web" is set
if [[ "${args[3]}" != "-web" ]]; then
ProcessDNSSettings
# Restart dnsmasq to load new configuration
RestartDNS
fi
}
Teleporter()
{
local datetimestamp=$(date "+%Y-%m-%d_%H-%M-%S")
php /var/www/html/admin/scripts/pi-hole/php/teleporter.php > "pi-hole-teleporter_${datetimestamp}.zip"
}
main() {
args=("$@")
case "${args[1]}" in
"-p" | "password" ) SetWebPassword;;
"-c" | "celsius" ) unit="C"; SetTemperatureUnit;;
"-f" | "fahrenheit" ) unit="F"; SetTemperatureUnit;;
"-k" | "kelvin" ) unit="K"; SetTemperatureUnit;;
"setdns" ) SetDNSServers;;
"setexcludedomains" ) SetExcludeDomains;;
"setexcludeclients" ) SetExcludeClients;;
"reboot" ) Reboot;;
"restartdns" ) RestartDNS;;
"setquerylog" ) SetQueryLogOptions;;
"enabledhcp" ) EnableDHCP;;
"disabledhcp" ) DisableDHCP;;
"layout" ) SetWebUILayout;;
"-h" | "--help" ) helpFunc;;
"privacymode" ) SetPrivacyMode;;
"resolve" ) ResolutionSettings;;
"addstaticdhcp" ) AddDHCPStaticAddress;;
"removestaticdhcp" ) RemoveDHCPStaticAddress;;
"hostrecord" ) SetHostRecord;;
"-i" | "interface" ) SetListeningMode;;
"-t" | "teleporter" ) Teleporter;;
"adlist" ) CustomizeAdLists;;
* ) helpFunc;;
esac
shift
if [[ $# = 0 ]]; then
helpFunc
fi
}

View File

@@ -1,13 +0,0 @@
#!/bin/bash
# For each argument passed to this script
for var in "$@"
do
echo "Whitelisting $var..."
# Use sed to search for the domain in /etc/pihole/gravity.list and remove it using an in-place edit
sed -i "/$var/d" /etc/pihole/gravity.list
# Also add the domain to the whitelist.txt in /etc/pihole
echo "$var" >> /etc/pihole/whitelist.txt
done
echo "** $# domain(s) whitelisted."
# Force dnsmasq to reload /etc/pihole/gravity.list
kill -HUP $(pidof dnsmasq)

View File

@@ -0,0 +1,11 @@
_pihole() {
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="admin blacklist chronometer debug disable enable flush help logging query reconfigure restartdns setupLCD status tail uninstall updateGravity updatePihole version whitelist checkout"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
}
complete -F _pihole pihole

136
advanced/blockingpage.css Normal file
View File

@@ -0,0 +1,136 @@
/* CSS Reset */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
body { line-height: 1; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }
table { border-collapse: collapse; border-spacing: 0; }
html { height: 100%; overflow-x: hidden; }
/* General Style */
a { color: rgba(0,60,120,0.95); text-decoration: none; } /* 1E3C5A */
a:hover { color: rgba(210,120,0,0.95); transition-duration: .2s; } /* 255, 128, 0 */
divs a { border-bottom: 1px dashed rgba(30,60,90,0.3); }
b { font-weight: bold; }
i { font-style: italic; }
footer, pre, td { font-family: monospace; padding-left: 15px; }
/*body, header { background: #E1E1E1; }*/
body {
background-image: -webkit-linear-gradient(top, rgba(240,240,240,0.95), rgba(190,190,190,0.95));
background-image: linear-gradient(to bottom, rgba(240,240,240,0.95), rgba(190,190,190,0.95));
background-attachment: fixed;
color: rgba(64,64,64,0.95);
font: 14px, sans-serif;
line-height: 1em;
}
header {
min-width: 320px;
width: 100%;
text-shadow: 0 1px rgba(255,255,255,0.6);
display: table;
table-layout: fixed;
border: 1px solid rgba(0,0,0,0.25);
border-top-color: rgba(255,255,255,0.85);
border-style: solid none;
background-image: -webkit-linear-gradient(top, rgba(240,240,240,0.95), rgba(220,220,220,0.95));
background-image: linear-gradient(to bottom, rgba(240,240,240,0.95), rgba(220,220,220,0.95));
box-shadow: 0 0 1px 1px rgba(0,0,0,0.04);
}
header h1, header div {
display: table-cell;
color: inherit;
font-weight: bold;
vertical-align: middle;
white-space: nowrap;
overflow: hidden;
box-sizing: border-box;
}
header h1 {
font-size: 22px;
font-weight: bold;
width: 100%;
padding: 8px 0;
text-indent: 32px;
background: url("http://pi.hole/admin/img/logo.svg") left no-repeat;
background-size: 30px 22px;
}
header h1 a, h1 a:hover { color: inherit; }
header .alt { width: 85px; font-size: 0.8em; padding-right: 4px; text-align: right; line-height: 1.25em; }
.active { color: green; }
.inactive { color: red; }
main {
display: block;
width: 80%;
padding: 10px;
font-size: 1em;
background-color: rgba(255,255,255,0.85);
margin: 8px auto;
box-sizing: border-box;
border: 1px solid rgba(0,0,0,0.25);
box-shadow: 4px 4px rgba(0,0,0,0.1);
line-height: 1.2em;
border-radius: 8px;
}
h2 { /* Rgba is shared with .transparent th */
font: 1.15em sans-serif;
background-color: rgba(255,0,0,0.4);
text-shadow: none;
line-height: 1.1em;
padding-bottom: 1px;
margin-top: 8px;
margin-bottom: 4px;
background: -webkit-linear-gradient(left, rgba(0,0,0,0.25), transparent 80%) no-repeat;
background: linear-gradient(to right, rgba(0,0,0,0.25), transparent 80%) no-repeat;
background-size: 100% 1px;
background-position: 0 17px;
}
h2:first-child { margin-top: 0; }
h2 ~ *:not(h2) { margin-left: 4px; }
li { padding: 2px 0; }
li::before { content: "\00BB\00a0"; }
li a { position: relative; top: 1px; } /* Center bullet-point arrows */
/* Button Style */
.buttons a, button, input, .transparent th a { /* Swapped rgba is shared with input[type='url'] */
display: inline-block;
color: rgba(32,32,32,0.9);
font-weight: bold;
text-align: center;
cursor: pointer;
text-shadow: 0 1px rgba(255,255,255,0.2);
line-height: 0.86em;
font-size: 1em;
padding: 4px 8px;
background: #FAFAFA;
background-image: -webkit-linear-gradient(top, rgba(255,255,255,0.05), rgba(0,0,0,0.05));
background-image: linear-gradient(to bottom, rgba(255,255,255,0.05), rgba(0,0,0,0.05));
border: 1px solid rgba(0,0,0,0.25);
border-radius: 4px;
box-shadow: 0 1px 0 rgba(0,0,0,0.04);
}
.buttons { white-space: nowrap; width: 100%; display: table; }
.buttons33 { white-space: nowrap; width: 33.333%; display: table; text-align: center; margin-left: 33.333% }
.mini a { width: 50%; }
a.safe { background-color: rgba(0,220,0,0.5); }
button.safe { background-color: rgba(0,220,0,0.5); }
a.warn { background-color: rgba(220,0,0,0.5); }
.blocked a, .mini a { display: table-cell; }
.blocked a.safe50 { width: 50%; background-color: rgba(0,220,0,0.5); }
.blocked a.safe33 { width: 33.333%; background-color: rgba(0,220,0,0.5); }
/* Types of text */
.msg { white-space: pre; overflow: auto; -webkit-overflow-scrolling: touch; display: block; line-height: 1.2em; font-weight: bold; font-size: 1.15em; margin: 4px 8px 8px 8px; white-space: pre-line; }
footer { font-size: 0.8em; text-align: center; width: 87%; margin: 4px auto; }

1
advanced/cmdline.txt Normal file
View File

@@ -0,0 +1 @@
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait fbcon=map:10 fbcon=font:VGA8x8 consoleblank=0

17
advanced/console-setup Normal file
View File

@@ -0,0 +1,17 @@
# CONFIGURATION FILE FOR SETUPCON
# Consult the console-setup(5) manual page.
ACTIVE_CONSOLES="/dev/tty[1-6]"
CHARMAP="UTF-8"
# For best results with the Adafruit 2.8 LCD and Pi-hole's chronometer
CODESET="guess"
FONTFACE="Terminus"
FONTSIZE="10x20"
VIDEOMODE=
# The following is an example how to use a braille font
# FONT='lat9w-08.psf.gz brl-8x8.psf'

View File

@@ -1,12 +0,0 @@
addn-hosts=/etc/pihole/gravity.list
domain-needed
bogus-priv
no-resolv
server=8.8.8.8
server=8.8.4.4
interface=eth0
listen-address=127.0.0.1
cache-size=10000
log-queries
log-facility=/var/log/pihole.log
local-ttl=300

View File

@@ -0,0 +1,648 @@
# Configuration file for dnsmasq.
#
# Format is one option per line, legal options are the same
# as the long options legal on the command line. See
# "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details.
# Listen on this specific port instead of the standard DNS port
# (53). Setting this to zero completely disables DNS function,
# leaving only DHCP and/or TFTP.
#port=5353
# The following two options make you a better netizen, since they
# tell dnsmasq to filter out queries which the public DNS cannot
# answer, and which load the servers (especially the root servers)
# unnecessarily. If you have a dial-on-demand link they also stop
# these requests from bringing up the link unnecessarily.
# Never forward plain names (without a dot or domain part)
#domain-needed
# Never forward addresses in the non-routed address spaces.
#bogus-priv
# Uncomment these to enable DNSSEC validation and caching:
# (Requires dnsmasq to be built with DNSSEC option.)
#conf-file=%%PREFIX%%/share/dnsmasq/trust-anchors.conf
#dnssec
# Replies which are not DNSSEC signed may be legitimate, because the domain
# is unsigned, or may be forgeries. Setting this option tells dnsmasq to
# check that an unsigned reply is OK, by finding a secure proof that a DS
# record somewhere between the root and the domain does not exist.
# The cost of setting this is that even queries in unsigned domains will need
# one or more extra DNS queries to verify.
#dnssec-check-unsigned
# Uncomment this to filter useless windows-originated DNS requests
# which can trigger dial-on-demand links needlessly.
# Note that (amongst other things) this blocks all SRV requests,
# so don't use it if you use eg Kerberos, SIP, XMMP or Google-talk.
# This option only affects forwarding, SRV records originating for
# dnsmasq (via srv-host= lines) are not suppressed by it.
#filterwin2k
# Change this line if you want dns to get its upstream servers from
# somewhere other that /etc/resolv.conf
#resolv-file=
# By default, dnsmasq will send queries to any of the upstream
# servers it knows about and tries to favour servers to are known
# to be up. Uncommenting this forces dnsmasq to try each query
# with each server strictly in the order they appear in
# /etc/resolv.conf
#strict-order
# If you don't want dnsmasq to read /etc/resolv.conf or any other
# file, getting its servers from this file instead (see below), then
# uncomment this.
#no-resolv
# If you don't want dnsmasq to poll /etc/resolv.conf or other resolv
# files for changes and re-read them then uncomment this.
#no-poll
# Add other name servers here, with domain specs if they are for
# non-public domains.
#server=/localnet/192.168.0.1
# Example of routing PTR queries to nameservers: this will send all
# address->name queries for 192.168.3/24 to nameserver 10.1.2.3
#server=/3.168.192.in-addr.arpa/10.1.2.3
# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
#local=/localnet/
# Add domains which you want to force to an IP address here.
# The example below send any host in double-click.net to a local
# web-server.
#address=/double-click.net/127.0.0.1
# --address (and --server) work with IPv6 addresses too.
#address=/www.thekelleys.org.uk/fe80::20d:60ff:fe36:f83
# Add the IPs of all queries to yahoo.com, google.com, and their
# subdomains to the vpn and search ipsets:
#ipset=/yahoo.com/google.com/vpn,search
# You can control how dnsmasq talks to a server: this forces
# queries to 10.1.2.3 to be routed via eth1
# server=10.1.2.3@eth1
# and this sets the source (ie local) address used to talk to
# 10.1.2.3 to 192.168.1.1 port 55 (there must be a interface with that
# IP on the machine, obviously).
# server=10.1.2.3@192.168.1.1#55
# If you want dnsmasq to change uid and gid to something other
# than the default, edit the following lines.
#user=
#group=
# If you want dnsmasq to listen for DHCP and DNS requests only on
# specified interfaces (and the loopback) give the name of the
# interface (eg eth0) here.
# Repeat the line for more than one interface.
#interface=
# Or you can specify which interface _not_ to listen on
#except-interface=
# Or which to listen on by address (remember to include 127.0.0.1 if
# you use this.)
#listen-address=
# If you want dnsmasq to provide only DNS service on an interface,
# configure it as shown above, and then use the following line to
# disable DHCP and TFTP on it.
#no-dhcp-interface=
# On systems which support it, dnsmasq binds the wildcard address,
# even when it is listening on only some interfaces. It then discards
# requests that it shouldn't reply to. This has the advantage of
# working even when interfaces come and go and change address. If you
# want dnsmasq to really bind only the interfaces it is listening on,
# uncomment this option. About the only time you may need this is when
# running another nameserver on the same machine.
#bind-interfaces
# If you don't want dnsmasq to read /etc/hosts, uncomment the
# following line.
#no-hosts
# or if you want it to read another file, as well as /etc/hosts, use
# this.
#addn-hosts=/etc/banner_add_hosts
# Set this (and domain: see below) if you want to have a domain
# automatically added to simple names in a hosts-file.
#expand-hosts
# Set the domain for dnsmasq. this is optional, but if it is set, it
# does the following things.
# 1) Allows DHCP hosts to have fully qualified domain names, as long
# as the domain part matches this setting.
# 2) Sets the "domain" DHCP option thereby potentially setting the
# domain of all systems configured by DHCP
# 3) Provides the domain part for "expand-hosts"
#domain=thekelleys.org.uk
# Set a different domain for a particular subnet
#domain=wireless.thekelleys.org.uk,192.168.2.0/24
# Same idea, but range rather then subnet
#domain=reserved.thekelleys.org.uk,192.68.3.100,192.168.3.200
# Uncomment this to enable the integrated DHCP server, you need
# to supply the range of addresses available for lease and optionally
# a lease time. If you have more than one network, you will need to
# repeat this for each network on which you want to supply DHCP
# service.
#dhcp-range=192.168.0.50,192.168.0.150,12h
# This is an example of a DHCP range where the netmask is given. This
# is needed for networks we reach the dnsmasq DHCP server via a relay
# agent. If you don't know what a DHCP relay agent is, you probably
# don't need to worry about this.
#dhcp-range=192.168.0.50,192.168.0.150,255.255.255.0,12h
# This is an example of a DHCP range which sets a tag, so that
# some DHCP options may be set only for this network.
#dhcp-range=set:red,192.168.0.50,192.168.0.150
# Use this DHCP range only when the tag "green" is set.
#dhcp-range=tag:green,192.168.0.50,192.168.0.150,12h
# Specify a subnet which can't be used for dynamic address allocation,
# is available for hosts with matching --dhcp-host lines. Note that
# dhcp-host declarations will be ignored unless there is a dhcp-range
# of some type for the subnet in question.
# In this case the netmask is implied (it comes from the network
# configuration on the machine running dnsmasq) it is possible to give
# an explicit netmask instead.
#dhcp-range=192.168.0.0,static
# Enable DHCPv6. Note that the prefix-length does not need to be specified
# and defaults to 64 if missing/
#dhcp-range=1234::2, 1234::500, 64, 12h
# Do Router Advertisements, BUT NOT DHCP for this subnet.
#dhcp-range=1234::, ra-only
# Do Router Advertisements, BUT NOT DHCP for this subnet, also try and
# add names to the DNS for the IPv6 address of SLAAC-configured dual-stack
# hosts. Use the DHCPv4 lease to derive the name, network segment and
# MAC address and assume that the host will also have an
# IPv6 address calculated using the SLAAC alogrithm.
#dhcp-range=1234::, ra-names
# Do Router Advertisements, BUT NOT DHCP for this subnet.
# Set the lifetime to 46 hours. (Note: minimum lifetime is 2 hours.)
#dhcp-range=1234::, ra-only, 48h
# Do DHCP and Router Advertisements for this subnet. Set the A bit in the RA
# so that clients can use SLAAC addresses as well as DHCP ones.
#dhcp-range=1234::2, 1234::500, slaac
# Do Router Advertisements and stateless DHCP for this subnet. Clients will
# not get addresses from DHCP, but they will get other configuration information.
# They will use SLAAC for addresses.
#dhcp-range=1234::, ra-stateless
# Do stateless DHCP, SLAAC, and generate DNS names for SLAAC addresses
# from DHCPv4 leases.
#dhcp-range=1234::, ra-stateless, ra-names
# Do router advertisements for all subnets where we're doing DHCPv6
# Unless overriden by ra-stateless, ra-names, et al, the router
# advertisements will have the M and O bits set, so that the clients
# get addresses and configuration from DHCPv6, and the A bit reset, so the
# clients don't use SLAAC addresses.
#enable-ra
# Supply parameters for specified hosts using DHCP. There are lots
# of valid alternatives, so we will give examples of each. Note that
# IP addresses DO NOT have to be in the range given above, they just
# need to be on the same network. The order of the parameters in these
# do not matter, it's permissible to give name, address and MAC in any
# order.
# Always allocate the host with Ethernet address 11:22:33:44:55:66
# The IP address 192.168.0.60
#dhcp-host=11:22:33:44:55:66,192.168.0.60
# Always set the name of the host with hardware address
# 11:22:33:44:55:66 to be "fred"
#dhcp-host=11:22:33:44:55:66,fred
# Always give the host with Ethernet address 11:22:33:44:55:66
# the name fred and IP address 192.168.0.60 and lease time 45 minutes
#dhcp-host=11:22:33:44:55:66,fred,192.168.0.60,45m
# Give a host with Ethernet address 11:22:33:44:55:66 or
# 12:34:56:78:90:12 the IP address 192.168.0.60. Dnsmasq will assume
# that these two Ethernet interfaces will never be in use at the same
# time, and give the IP address to the second, even if it is already
# in use by the first. Useful for laptops with wired and wireless
# addresses.
#dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.60
# Give the machine which says its name is "bert" IP address
# 192.168.0.70 and an infinite lease
#dhcp-host=bert,192.168.0.70,infinite
# Always give the host with client identifier 01:02:02:04
# the IP address 192.168.0.60
#dhcp-host=id:01:02:02:04,192.168.0.60
# Always give the host with client identifier "marjorie"
# the IP address 192.168.0.60
#dhcp-host=id:marjorie,192.168.0.60
# Enable the address given for "judge" in /etc/hosts
# to be given to a machine presenting the name "judge" when
# it asks for a DHCP lease.
#dhcp-host=judge
# Never offer DHCP service to a machine whose Ethernet
# address is 11:22:33:44:55:66
#dhcp-host=11:22:33:44:55:66,ignore
# Ignore any client-id presented by the machine with Ethernet
# address 11:22:33:44:55:66. This is useful to prevent a machine
# being treated differently when running under different OS's or
# between PXE boot and OS boot.
#dhcp-host=11:22:33:44:55:66,id:*
# Send extra options which are tagged as "red" to
# the machine with Ethernet address 11:22:33:44:55:66
#dhcp-host=11:22:33:44:55:66,set:red
# Send extra options which are tagged as "red" to
# any machine with Ethernet address starting 11:22:33:
#dhcp-host=11:22:33:*:*:*,set:red
# Give a fixed IPv6 address and name to client with
# DUID 00:01:00:01:16:d2:83:fc:92:d4:19:e2:d8:b2
# Note the MAC addresses CANNOT be used to identify DHCPv6 clients.
# Note also the they [] around the IPv6 address are obilgatory.
#dhcp-host=id:00:01:00:01:16:d2:83:fc:92:d4:19:e2:d8:b2, fred, [1234::5]
# Ignore any clients which are not specified in dhcp-host lines
# or /etc/ethers. Equivalent to ISC "deny unknown-clients".
# This relies on the special "known" tag which is set when
# a host is matched.
#dhcp-ignore=tag:!known
# Send extra options which are tagged as "red" to any machine whose
# DHCP vendorclass string includes the substring "Linux"
#dhcp-vendorclass=set:red,Linux
# Send extra options which are tagged as "red" to any machine one
# of whose DHCP userclass strings includes the substring "accounts"
#dhcp-userclass=set:red,accounts
# Send extra options which are tagged as "red" to any machine whose
# MAC address matches the pattern.
#dhcp-mac=set:red,00:60:8C:*:*:*
# If this line is uncommented, dnsmasq will read /etc/ethers and act
# on the ethernet-address/IP pairs found there just as if they had
# been given as --dhcp-host options. Useful if you keep
# MAC-address/host mappings there for other purposes.
#read-ethers
# Send options to hosts which ask for a DHCP lease.
# See RFC 2132 for details of available options.
# Common options can be given to dnsmasq by name:
# run "dnsmasq --help dhcp" to get a list.
# Note that all the common settings, such as netmask and
# broadcast address, DNS server and default route, are given
# sane defaults by dnsmasq. You very likely will not need
# any dhcp-options. If you use Windows clients and Samba, there
# are some options which are recommended, they are detailed at the
# end of this section.
# Override the default route supplied by dnsmasq, which assumes the
# router is the same machine as the one running dnsmasq.
#dhcp-option=3,1.2.3.4
# Do the same thing, but using the option name
#dhcp-option=option:router,1.2.3.4
# Override the default route supplied by dnsmasq and send no default
# route at all. Note that this only works for the options sent by
# default (1, 3, 6, 12, 28) the same line will send a zero-length option
# for all other option numbers.
#dhcp-option=3
# Set the NTP time server addresses to 192.168.0.4 and 10.10.0.5
#dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5
# Send DHCPv6 option. Note [] around IPv6 addresses.
#dhcp-option=option6:dns-server,[1234::77],[1234::88]
# Send DHCPv6 option for namservers as the machine running
# dnsmasq and another.
#dhcp-option=option6:dns-server,[::],[1234::88]
# Ask client to poll for option changes every six hours. (RFC4242)
#dhcp-option=option6:information-refresh-time,6h
# Set the NTP time server address to be the same machine as
# is running dnsmasq
#dhcp-option=42,0.0.0.0
# Set the NIS domain name to "welly"
#dhcp-option=40,welly
# Set the default time-to-live to 50
#dhcp-option=23,50
# Set the "all subnets are local" flag
#dhcp-option=27,1
# Send the etherboot magic flag and then etherboot options (a string).
#dhcp-option=128,e4:45:74:68:00:00
#dhcp-option=129,NIC=eepro100
# Specify an option which will only be sent to the "red" network
# (see dhcp-range for the declaration of the "red" network)
# Note that the tag: part must precede the option: part.
#dhcp-option = tag:red, option:ntp-server, 192.168.1.1
# The following DHCP options set up dnsmasq in the same way as is specified
# for the ISC dhcpcd in
# http://www.samba.org/samba/ftp/docs/textdocs/DHCP-Server-Configuration.txt
# adapted for a typical dnsmasq installation where the host running
# dnsmasq is also the host running samba.
# you may want to uncomment some or all of them if you use
# Windows clients and Samba.
#dhcp-option=19,0 # option ip-forwarding off
#dhcp-option=44,0.0.0.0 # set netbios-over-TCP/IP nameserver(s) aka WINS server(s)
#dhcp-option=45,0.0.0.0 # netbios datagram distribution server
#dhcp-option=46,8 # netbios node type
# Send an empty WPAD option. This may be REQUIRED to get windows 7 to behave.
#dhcp-option=252,"\n"
# Send RFC-3397 DNS domain search DHCP option. WARNING: Your DHCP client
# probably doesn't support this......
#dhcp-option=option:domain-search,eng.apple.com,marketing.apple.com
# Send RFC-3442 classless static routes (note the netmask encoding)
#dhcp-option=121,192.168.1.0/24,1.2.3.4,10.0.0.0/8,5.6.7.8
# Send vendor-class specific options encapsulated in DHCP option 43.
# The meaning of the options is defined by the vendor-class so
# options are sent only when the client supplied vendor class
# matches the class given here. (A substring match is OK, so "MSFT"
# matches "MSFT" and "MSFT 5.0"). This example sets the
# mtftp address to 0.0.0.0 for PXEClients.
#dhcp-option=vendor:PXEClient,1,0.0.0.0
# Send microsoft-specific option to tell windows to release the DHCP lease
# when it shuts down. Note the "i" flag, to tell dnsmasq to send the
# value as a four-byte integer - that's what microsoft wants. See
# http://technet2.microsoft.com/WindowsServer/en/library/a70f1bb7-d2d4-49f0-96d6-4b7414ecfaae1033.mspx?mfr=true
#dhcp-option=vendor:MSFT,2,1i
# Send the Encapsulated-vendor-class ID needed by some configurations of
# Etherboot to allow is to recognise the DHCP server.
#dhcp-option=vendor:Etherboot,60,"Etherboot"
# Send options to PXELinux. Note that we need to send the options even
# though they don't appear in the parameter request list, so we need
# to use dhcp-option-force here.
# See http://syslinux.zytor.com/pxe.php#special for details.
# Magic number - needed before anything else is recognised
#dhcp-option-force=208,f1:00:74:7e
# Configuration file name
#dhcp-option-force=209,configs/common
# Path prefix
#dhcp-option-force=210,/tftpboot/pxelinux/files/
# Reboot time. (Note 'i' to send 32-bit value)
#dhcp-option-force=211,30i
# Set the boot filename for netboot/PXE. You will only need
# this is you want to boot machines over the network and you will need
# a TFTP server; either dnsmasq's built in TFTP server or an
# external one. (See below for how to enable the TFTP server.)
#dhcp-boot=pxelinux.0
# The same as above, but use custom tftp-server instead machine running dnsmasq
#dhcp-boot=pxelinux,server.name,192.168.1.100
# Boot for Etherboot gPXE. The idea is to send two different
# filenames, the first loads gPXE, and the second tells gPXE what to
# load. The dhcp-match sets the gpxe tag for requests from gPXE.
#dhcp-match=set:gpxe,175 # gPXE sends a 175 option.
#dhcp-boot=tag:!gpxe,undionly.kpxe
#dhcp-boot=mybootimage
# Encapsulated options for Etherboot gPXE. All the options are
# encapsulated within option 175
#dhcp-option=encap:175, 1, 5b # priority code
#dhcp-option=encap:175, 176, 1b # no-proxydhcp
#dhcp-option=encap:175, 177, string # bus-id
#dhcp-option=encap:175, 189, 1b # BIOS drive code
#dhcp-option=encap:175, 190, user # iSCSI username
#dhcp-option=encap:175, 191, pass # iSCSI password
# Test for the architecture of a netboot client. PXE clients are
# supposed to send their architecture as option 93. (See RFC 4578)
#dhcp-match=peecees, option:client-arch, 0 #x86-32
#dhcp-match=itanics, option:client-arch, 2 #IA64
#dhcp-match=hammers, option:client-arch, 6 #x86-64
#dhcp-match=mactels, option:client-arch, 7 #EFI x86-64
# Do real PXE, rather than just booting a single file, this is an
# alternative to dhcp-boot.
#pxe-prompt="What system shall I netboot?"
# or with timeout before first available action is taken:
#pxe-prompt="Press F8 for menu.", 60
# Available boot services. for PXE.
#pxe-service=x86PC, "Boot from local disk"
# Loads <tftp-root>/pxelinux.0 from dnsmasq TFTP server.
#pxe-service=x86PC, "Install Linux", pxelinux
# Loads <tftp-root>/pxelinux.0 from TFTP server at 1.2.3.4.
# Beware this fails on old PXE ROMS.
#pxe-service=x86PC, "Install Linux", pxelinux, 1.2.3.4
# Use bootserver on network, found my multicast or broadcast.
#pxe-service=x86PC, "Install windows from RIS server", 1
# Use bootserver at a known IP address.
#pxe-service=x86PC, "Install windows from RIS server", 1, 1.2.3.4
# If you have multicast-FTP available,
# information for that can be passed in a similar way using options 1
# to 5. See page 19 of
# http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf
# Enable dnsmasq's built-in TFTP server
#enable-tftp
# Set the root directory for files available via FTP.
#tftp-root=/var/ftpd
# Make the TFTP server more secure: with this set, only files owned by
# the user dnsmasq is running as will be send over the net.
#tftp-secure
# This option stops dnsmasq from negotiating a larger blocksize for TFTP
# transfers. It will slow things down, but may rescue some broken TFTP
# clients.
#tftp-no-blocksize
# Set the boot file name only when the "red" tag is set.
#dhcp-boot=tag:red,pxelinux.red-net
# An example of dhcp-boot with an external TFTP server: the name and IP
# address of the server are given after the filename.
# Can fail with old PXE ROMS. Overridden by --pxe-service.
#dhcp-boot=/var/ftpd/pxelinux.0,boothost,192.168.0.3
# If there are multiple external tftp servers having a same name
# (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
# load balance the tftp load among a set of servers.
#dhcp-boot=/var/ftpd/pxelinux.0,boothost,tftp_server_name
# Set the limit on DHCP leases, the default is 150
#dhcp-lease-max=150
# The DHCP server needs somewhere on disk to keep its lease database.
# This defaults to a sane location, but if you want to change it, use
# the line below.
#dhcp-leasefile=/var/lib/misc/dnsmasq.leases
# Set the DHCP server to authoritative mode. In this mode it will barge in
# and take over the lease for any client which broadcasts on the network,
# whether it has a record of the lease or not. This avoids long timeouts
# when a machine wakes up on a new network. DO NOT enable this if there's
# the slightest chance that you might end up accidentally configuring a DHCP
# server for your campus/company accidentally. The ISC server uses
# the same option, and this URL provides more information:
# http://www.isc.org/files/auth.html
#dhcp-authoritative
# Run an executable when a DHCP lease is created or destroyed.
# The arguments sent to the script are "add" or "del",
# then the MAC address, the IP address and finally the hostname
# if there is one.
#dhcp-script=/bin/echo
# Set the cachesize here.
#cache-size=150
# If you want to disable negative caching, uncomment this.
#no-negcache
# Normally responses which come from /etc/hosts and the DHCP lease
# file have Time-To-Live set as zero, which conventionally means
# do not cache further. If you are happy to trade lower load on the
# server for potentially stale date, you can set a time-to-live (in
# seconds) here.
#local-ttl=
# If you want dnsmasq to detect attempts by Verisign to send queries
# to unregistered .com and .net hosts to its sitefinder service and
# have dnsmasq instead return the correct NXDOMAIN response, uncomment
# this line. You can add similar lines to do the same for other
# registries which have implemented wildcard A records.
#bogus-nxdomain=64.94.110.11
# If you want to fix up DNS results from upstream servers, use the
# alias option. This only works for IPv4.
# This alias makes a result of 1.2.3.4 appear as 5.6.7.8
#alias=1.2.3.4,5.6.7.8
# and this maps 1.2.3.x to 5.6.7.x
#alias=1.2.3.0,5.6.7.0,255.255.255.0
# and this maps 192.168.0.10->192.168.0.40 to 10.0.0.10->10.0.0.40
#alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0
# Change these lines if you want dnsmasq to serve MX records.
# Return an MX record named "maildomain.com" with target
# servermachine.com and preference 50
#mx-host=maildomain.com,servermachine.com,50
# Set the default target for MX records created using the localmx option.
#mx-target=servermachine.com
# Return an MX record pointing to the mx-target for all local
# machines.
#localmx
# Return an MX record pointing to itself for all local machines.
#selfmx
# Change the following lines if you want dnsmasq to serve SRV
# records. These are useful if you want to serve ldap requests for
# Active Directory and other windows-originated DNS requests.
# See RFC 2782.
# You may add multiple srv-host lines.
# The fields are <name>,<target>,<port>,<priority>,<weight>
# If the domain part if missing from the name (so that is just has the
# service and protocol sections) then the domain given by the domain=
# config option is used. (Note that expand-hosts does not need to be
# set for this to work.)
# A SRV record sending LDAP for the example.com domain to
# ldapserver.example.com port 389
#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389
# A SRV record sending LDAP for the example.com domain to
# ldapserver.example.com port 389 (using domain=)
#domain=example.com
#srv-host=_ldap._tcp,ldapserver.example.com,389
# Two SRV records for LDAP, each with different priorities
#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,1
#srv-host=_ldap._tcp.example.com,ldapserver.example.com,389,2
# A SRV record indicating that there is no LDAP server for the domain
# example.com
#srv-host=_ldap._tcp.example.com
# The following line shows how to make dnsmasq serve an arbitrary PTR
# record. This is useful for DNS-SD. (Note that the
# domain-name expansion done for SRV records _does_not
# occur for PTR records.)
#ptr-record=_http._tcp.dns-sd-services,"New Employee Page._http._tcp.dns-sd-services"
# Change the following lines to enable dnsmasq to serve TXT records.
# These are used for things like SPF and zeroconf. (Note that the
# domain-name expansion done for SRV records _does_not
# occur for TXT records.)
#Example SPF.
#txt-record=example.com,"v=spf1 a -all"
#Example zeroconf
#txt-record=_http._tcp.example.com,name=value,paper=A4
# Provide an alias for a "local" DNS name. Note that this _only_ works
# for targets which are names from DHCP or /etc/hosts. Give host
# "bert" another name, bertrand
#cname=bertand,bert
# For debugging purposes, log each DNS query as it passes through
# dnsmasq.
#log-queries
# Log lots of extra information about DHCP transactions.
#log-dhcp
# Include another lot of configuration options.
#conf-file=/etc/dnsmasq.more.conf
#conf-dir=/etc/dnsmasq.d
# Include all the files in a directory except those ending in .bak
#conf-dir=/etc/dnsmasq.d,.bak
# Include all files in a directory which end in .conf
#conf-dir=/etc/dnsmasq.d/*.conf

View File

@@ -1,4 +0,0 @@
<html>
<body>
</body>
</html>

1
advanced/index.js Normal file
View File

@@ -0,0 +1 @@
var x = "Pi-hole: A black hole for Internet advertisements."

224
advanced/index.php Normal file
View File

@@ -0,0 +1,224 @@
<?php
/* Detailed Pi-hole Block Page: Show "Website Blocked" if user browses to site, but not to image/file requests based on the work of WaLLy3K for DietPi & Pi-Hole */
function validIP($address){
if (preg_match('/[.:0]/', $address) && !preg_match('/[1-9a-f]/', $address)) {
// Test if address contains either `:` or `0` but not 1-9 or a-f
return false;
}
return !filter_var($address, FILTER_VALIDATE_IP) === false;
}
$uri = escapeshellcmd($_SERVER['REQUEST_URI']);
$serverName = escapeshellcmd($_SERVER['SERVER_NAME']);
// If the server name is 'pi.hole', it's likely a user trying to get to the admin panel.
// Let's be nice and redirect them.
if ($serverName === 'pi.hole')
{
header('HTTP/1.1 301 Moved Permanently');
header("Location: /admin/");
}
// Retrieve server URI extension (EG: jpg, exe, php)
ini_set('pcre.recursion_limit',100);
$uriExt = pathinfo($uri, PATHINFO_EXTENSION);
// Define which URL extensions get rendered as "Website Blocked"
$webExt = array('asp', 'htm', 'html', 'php', 'rss', 'xml');
// Get IPv4 and IPv6 addresses from setupVars.conf (if available)
$setupVars = parse_ini_file("/etc/pihole/setupVars.conf");
$ipv4 = isset($setupVars["IPV4_ADDRESS"]) ? explode("/", $setupVars["IPV4_ADDRESS"])[0] : $_SERVER['SERVER_ADDR'];
$ipv6 = isset($setupVars["IPV6_ADDRESS"]) ? explode("/", $setupVars["IPV6_ADDRESS"])[0] : $_SERVER['SERVER_ADDR'];
$AUTHORIZED_HOSTNAMES = array(
$ipv4,
$ipv6,
str_replace(array("[","]"), array("",""), $_SERVER["SERVER_ADDR"]),
"pi.hole",
"localhost");
// Allow user set virtual hostnames
$virtual_host = getenv('VIRTUAL_HOST');
if (!empty($virtual_host))
array_push($AUTHORIZED_HOSTNAMES, $virtual_host);
// Immediately quit since we didn't block this page (the IP address or pi.hole is explicitly requested)
if(validIP($serverName) || in_array($serverName,$AUTHORIZED_HOSTNAMES))
{
http_response_code(404);
die();
}
if(in_array($uriExt, $webExt) || empty($uriExt))
{
// Requested resource has an extension listed in $webExt
// or no extension (index access to some folder incl. the root dir)
$showPage = true;
}
else
{
// Something else
$showPage = false;
}
// Handle incoming URI types
if (!$showPage)
{
?>
<html>
<head>
<script>window.close();</script></head>
<body>
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7">
</body>
</html>
<?php
die();
}
// Get Pi-hole version
$piHoleVersion = exec('cd /etc/.pihole/ && git describe --tags --abbrev=0');
// Don't show the URI if it is the root directory
if($uri == "/")
{
$uri = "";
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'/>
<title>Website Blocked</title>
<link rel='stylesheet' href='http://pi.hole/pihole/blockingpage.css'/>
<link rel='shortcut icon' href='http://pi.hole/admin/img/favicon.png' type='image/png'/>
<meta name='viewport' content='width=device-width,initial-scale=1.0,maximum-scale=1.0, user-scalable=no'/>
<meta name='robots' content='noindex,nofollow'/>
</head>
<body id="body">
<header>
<h1><a href='/'>Website Blocked</a></h1>
</header>
<main>
<div>Access to the following site has been blocked:<br/>
<span class='pre msg'><?php echo $serverName.$uri; ?></span></div>
<div>If you have an ongoing use for this website, please ask the owner of the Pi-hole in your network to have it whitelisted.</div>
<input id="domain" type="hidden" value="<?php echo $serverName; ?>">
<input id="quiet" type="hidden" value="yes">
<button id="btnSearch" class="buttons blocked" type="button" style="visibility: hidden;"></button>
This page is blocked because it is explicitly contained within the following block list(s):
<pre id="output" style="width: 100%; height: 100%;" hidden="true"></pre><br/>
<div class='buttons blocked'>
<a class='safe33' href='javascript:history.back()'>Go back</a>
<a class='safe33' id="whitelisting">Whitelist this page</a>
<a class='safe33' href='javascript:window.close()'>Close window</a>
</div>
<div style="width: 98%; text-align: center; padding: 10px;" hidden="true" id="whitelistingform">
<p>Note that whitelisting domains which are blocked using the wildcard method won't work.</p>
<p>Password required!</p><br/>
<form>
<input name="list" type="hidden" value="white"><br/>
Domain:<br/>
<input name="domain" value="<?php echo $serverName ?>" disabled><br/><br/>
Password:<br/>
<input type="password" id="pw" name="pw"><br/><br/>
<button class="buttons33 safe" id="btnAdd" type="button">Whitelist</button>
</form><br/>
<pre id="whitelistingoutput" style="width: 100%; height: 100%; padding: 5px;" hidden="true"></pre><br/>
</div>
</main>
<footer>Generated <?php echo date('D g:i A, M d'); ?> by Pi-hole <?php echo $piHoleVersion; ?></footer>
<script src="http://pi.hole/admin/scripts/vendor/jquery.min.js"></script>
<script>
// Create event for when the output is appended to
(function($) {
var origAppend = $.fn.append;
$.fn.append = function () {
return origAppend.apply(this, arguments).trigger("append");
};
})(jQuery);
</script>
<script src="http://pi.hole/admin/scripts/pi-hole/js/queryads.js"></script>
<script>
function inIframe () {
try {
return window.self !== window.top;
} catch (e) {
return true;
}
}
// Try to detect if page is loaded within iframe
if(inIframe())
{
// Within iframe
// hide content of page
$('#body').hide();
// remove background
document.body.style.backgroundImage = "none";
}
else
{
// Query adlists
$( "#btnSearch" ).click();
}
$( "#whitelisting" ).on( "click", function(){ $( "#whitelistingform" ).removeAttr( "hidden" ); });
// Remove whitelist functionality if the domain was blocked because of a wildcard
$( "#output" ).bind("append", function(){
if($( "#output" ).contents()[0].data.indexOf("Wildcard blocking") !== -1)
{
$( "#whitelisting" ).hide();
$( "#whitelistingform" ).hide();
}
});
function add() {
var domain = $("#domain");
var pw = $("#pw");
if(domain.val().length === 0){
return;
}
$.ajax({
url: "admin/scripts/pi-hole/php/add.php",
method: "post",
data: {"domain":domain.val(), "list":"white", "pw":pw.val()},
success: function(response) {
$( "#whitelistingoutput" ).removeAttr( "hidden" );
if(response.indexOf("Pi-hole blocking") !== -1)
{
// Reload page after 5 seconds
setTimeout(function(){window.location.reload(1);}, 5000);
$( "#whitelistingoutput" ).html("---> Success <---<br/>You may have to flush your DNS cache");
}
else
{
$( "#whitelistingoutput" ).html("---> "+response+" <---");
}
},
error: function(jqXHR, exception) {
$( "#whitelistingoutput" ).removeAttr( "hidden" );
$( "#whitelistingoutput" ).html("---> Unknown Error <---");
}
});
}
// Handle enter button for adding domains
$(document).keypress(function(e) {
if(e.which === 13 && $("#pw").is(":focus")) {
add();
}
});
// Handle buttons
$("#btnAdd").on("click", function() {
add();
});
</script>
</body>
</html>

View File

@@ -1,38 +0,0 @@
server.modules = (
"mod_expire",
"mod_compress",
"mod_redirect",
"mod_rewrite"
)
server.document-root = "/var/www"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
index-file.names = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
# default listening port for IPv6 falls back to the IPv4 port
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
# Set access to 1 day for better query performance when the list gets so large
# http://jacobsalmela.com/raspberry-pi-block-ads-adtrap/#comment-2013820434
$HTTP["url"] =~ "^/pihole/" {
expire.url = ("" => "access plus 1 days")
}
# Rewrites all URLs to the /var/www/pihole/index.html
$HTTP["host"] =~ ".*" {
url.rewrite = (".*" => "pihole/index.html")
}

View File

@@ -0,0 +1,81 @@
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# lighttpd config for Pi-hole
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
###############################################################################
# FILE AUTOMATICALLY OVERWRITTEN BY PI-HOLE INSTALL/UPDATE PROCEDURE. #
# ANY CHANGES MADE TO THIS FILE AFTER INSTALL WILL BE LOST ON THE NEXT UPDATE #
# #
# CHANGES SHOULD BE MADE IN A SEPERATE CONFIG FILE: #
# /etc/lighttpd/external.conf #
###############################################################################
server.modules = (
"mod_access",
"mod_accesslog",
"mod_auth",
"mod_expire",
"mod_compress",
"mod_redirect",
"mod_setenv",
"mod_rewrite"
)
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.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
accesslog.filename = "/var/log/lighttpd/access.log"
accesslog.format = "%{%s}t|%V|%r|%s|%b"
index-file.names = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
# default listening port for IPv6 falls back to the IPv4 port
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
# If the URL starts with /admin, it is the Web interface
$HTTP["url"] =~ "^/admin/" {
# Create a response header for debugging using curl -I
setenv.add-response-header = (
"X-Pi-hole" => "The Pi-hole Web interface is working!",
"X-Frame-Options" => "DENY"
)
}
# Rewite js requests, must be out of $HTTP block due to bug #2526
url.rewrite = ( "^(?!/admin/).*\.js$" => "pihole/index.js" )
# If the URL does not start with /admin, then it is a query for an ad domain
$HTTP["url"] =~ "^(?!/admin)/.*" {
# Create a response header for debugging using curl -I
setenv.add-response-header = ( "X-Pi-hole" => "A black hole for Internet advertisements." )
}
# Entering just "pi.hole" into a browser redirects to "pi.hole/admin/"
$HTTP["host"] == "pi.hole" {
$HTTP["url"] == "/" {
url.redirect = ( "" => "/admin/" )
}
}
# Add user chosen options held in external file
include_shell "cat external.conf 2>/dev/null"

View File

@@ -0,0 +1,98 @@
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# lighttpd config for Pi-hole
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
###############################################################################
# FILE AUTOMATICALLY OVERWRITTEN BY PI-HOLE INSTALL/UPDATE PROCEDURE. #
# ANY CHANGES MADE TO THIS FILE AFTER INSTALL WILL BE LOST ON THE NEXT UPDATE #
# #
# CHANGES SHOULD BE MADE IN A SEPERATE CONFIG FILE: #
# /etc/lighttpd/external.conf #
###############################################################################
server.modules = (
"mod_access",
"mod_auth",
"mod_fastcgi",
"mod_accesslog",
"mod_expire",
"mod_compress",
"mod_redirect",
"mod_setenv",
"mod_rewrite"
)
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.pid-file = "/var/run/lighttpd.pid"
server.username = "lighttpd"
server.groupname = "lighttpd"
server.port = 80
accesslog.filename = "/var/log/lighttpd/access.log"
accesslog.format = "%{%s}t|%V|%r|%s|%b"
index-file.names = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
mimetype.assign = ( ".png" => "image/png",
".jpg" => "image/jpeg",
".jpeg" => "image/jpeg",
".html" => "text/html",
".css" => "text/css; charset=utf-8",
".js" => "application/javascript",
".json" => "application/json",
".txt" => "text/plain",
".svg" => "image/svg+xml" )
# default listening port for IPv6 falls back to the IPv4 port
#include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
#include_shell "/usr/share/lighttpd/create-mime.assign.pl"
#include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-cgi"
)
)
)
# If the URL starts with /admin, it is the Web interface
$HTTP["url"] =~ "^/admin/" {
# Create a response header for debugging using curl -I
setenv.add-response-header = ( "X-Pi-hole" => "The Pi-hole Web interface is working!" )
}
# Rewite js requests, must be out of $HTTP block due to bug #2526
url.rewrite = ( "^(?!/admin/).*\.js$" => "pihole/index.js" )
# If the URL does not start with /admin, then it is a query for an ad domain
$HTTP["url"] =~ "^(?!/admin)/.*" {
# Create a response header for debugging using curl -I
setenv.add-response-header = ( "X-Pi-hole" => "A black hole for Internet advertisements." )
}
# Entering just "pi.hole" into a browser redirects to "pi.hole/admin/"
$HTTP["host"] == "pi.hole" {
$HTTP["url"] == "/" {
url.redirect = ( "" => "/admin/" )
}
}
# Add user chosen options held in external file
include_shell "cat external.conf 2>/dev/null"

10
advanced/logrotate Normal file
View File

@@ -0,0 +1,10 @@
/var/log/pihole.log {
# su #
daily
copytruncate
rotate 5
compress
delaycompress
notifempty
nomail
}

View File

@@ -0,0 +1,80 @@
#!/bin/bash
### BEGIN INIT INFO
# Provides: pihole-FTL
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: pihole-FTL daemon
# Description: Enable service provided by pihole-FTL daemon
### END INIT INFO
FTLUSER=pihole
PIDFILE=/var/run/pihole-FTL.pid
get_pid() {
pidof "pihole-FTL"
}
is_running() {
ps "$(get_pid)" > /dev/null 2>&1
}
# Start the service
start() {
if is_running; then
echo "pihole-FTL is already running"
else
touch /var/log/pihole-FTL.log /run/pihole-FTL.pid /run/pihole-FTL.port
chown pihole:pihole /var/log/pihole-FTL.log /run/pihole-FTL.pid /run/pihole-FTL.port
chmod 0644 /var/log/pihole-FTL.log /run/pihole-FTL.pid /run/pihole-FTL.port
su -s /bin/sh -c "/usr/bin/pihole-FTL" "$FTLUSER"
echo
fi
}
# Stop the service
stop() {
if is_running; then
kill "$(get_pid)"
for i in {1..5}; do
if ! is_running; then
break
fi
echo -n "."
sleep 1
done
echo
if is_running; then
echo "Not stopped; may still be shutting down or shutdown may have failed, killing now"
kill -9 "$(get_pid)"
exit 1
else
echo "Stopped"
fi
else
echo "Not running"
fi
echo
}
### main logic ###
case "$1" in
stop)
stop
;;
status)
status pihole-FTL
;;
start|restart|reload|condrestart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status}"
exit 1
esac
exit 0

29
advanced/pihole.cron Normal file
View File

@@ -0,0 +1,29 @@
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Updates ad sources every week
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
#
#
#
# This file is under source-control of the Pi-hole installation and update
# scripts, any changes made to this file will be overwritten when the softare
# is updated or re-installed. Please make any changes to the appropriate crontab
# or other cron file snippets.
# Pi-hole: Update the ad sources once a week on Sunday at 01:59
# Download any updates from the adlists
59 1 * * 7 root PATH="$PATH:/usr/local/bin/" pihole updateGravity
# Pi-hole: Update Pi-hole! Uncomment to enable auto update
#30 2 * * 7 root PATH="$PATH:/usr/local/bin/" pihole updatePihole
# Pi-hole: Flush the log daily at 00:00 so it doesn't get out of control
# Stats will be viewable in the Web interface thanks to the cron job above
# The flush script will use logrotate if available
00 00 * * * root PATH="$PATH:/usr/local/bin/" pihole flush
@reboot root /usr/sbin/logrotate /etc/pihole/logrotate

9
advanced/pihole.sudo Normal file
View File

@@ -0,0 +1,9 @@
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Allows the WebUI to use Pi-hole commands
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
#

File diff suppressed because it is too large Load Diff

181
automated install/uninstall.sh Executable file
View File

@@ -0,0 +1,181 @@
#!/usr/bin/env bash
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Completely uninstalls Pi-hole
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
# Must be root to uninstall
if [[ ${EUID} -eq 0 ]]; then
echo "::: You are root."
else
echo "::: Sudo will be used for the uninstall."
# Check if it is actually installed
# If it isn't, exit because the unnstall cannot complete
if [ -x "$(command -v sudo)" ]; then
export SUDO="sudo"
else
echo "::: Please install sudo or run this as root."
exit 1
fi
fi
# Compatability
if [ -x "$(command -v rpm)" ]; then
# Fedora Family
if [ -x "$(command -v dnf)" ]; then
PKG_MANAGER="dnf"
else
PKG_MANAGER="yum"
fi
PKG_REMOVE="${PKG_MANAGER} remove -y"
PIHOLE_DEPS=( bind-utils bc dnsmasq lighttpd lighttpd-fastcgi php-common git curl unzip wget findutils )
package_check() {
rpm -qa | grep ^$1- > /dev/null
}
package_cleanup() {
${SUDO} ${PKG_MANAGER} -y autoremove
}
elif [ -x "$(command -v apt-get)" ]; then
# Debian Family
PKG_MANAGER="apt-get"
PKG_REMOVE="${PKG_MANAGER} -y remove --purge"
PIHOLE_DEPS=( dnsutils bc dnsmasq lighttpd php5-common git curl unzip wget )
package_check() {
dpkg-query -W -f='${Status}' "$1" 2>/dev/null | grep -c "ok installed"
}
package_cleanup() {
${SUDO} ${PKG_MANAGER} -y autoremove
${SUDO} ${PKG_MANAGER} -y autoclean
}
else
echo "OS distribution not supported"
exit
fi
spinner() {
local pid=$1
local delay=0.50
local spinstr='/-\|'
while [ "$(ps a | awk '{print $1}' | grep "${pid}")" ]; do
local temp=${spinstr#?}
printf " [%c] " "${spinstr}"
local spinstr=${temp}${spinstr%"$temp}"}
sleep ${delay}
printf "\b\b\b\b\b\b"
done
printf " \b\b\b\b"
}
removeAndPurge() {
# Purge dependencies
echo ":::"
for i in "${PIHOLE_DEPS[@]}"; do
package_check ${i} > /dev/null
if [ $? -eq 0 ]; then
while true; do
read -rp "::: Do you wish to remove ${i} from your system? [y/n]: " yn
case ${yn} in
[Yy]* ) printf ":::\tRemoving %s..." "${i}"; ${SUDO} ${PKG_REMOVE} "${i}" &> /dev/null & spinner $!; printf "done!\n"; break;;
[Nn]* ) printf ":::\tSkipping %s\n" "${i}"; break;;
* ) printf "::: You must answer yes or no!\n";;
esac
done
else
printf ":::\tPackage %s not installed... Not removing.\n" "${i}"
fi
done
# Remove dependency config files
echo "::: Removing dnsmasq config files..."
${SUDO} rm /etc/dnsmasq.conf /etc/dnsmasq.conf.orig /etc/dnsmasq.d/01-pihole.conf &> /dev/null
# Take care of any additional package cleaning
printf "::: Auto removing & cleaning remaining dependencies..."
package_cleanup &> /dev/null & spinner $!; printf "done!\n";
# Call removeNoPurge to remove PiHole specific files
removeNoPurge
}
removeNoPurge() {
echo ":::"
# Only web directories/files that are created by pihole should be removed.
echo "::: Removing the Pi-hole Web server files..."
${SUDO} rm -rf /var/www/html/admin &> /dev/null
${SUDO} rm -rf /var/www/html/pihole &> /dev/null
${SUDO} rm /var/www/html/index.lighttpd.orig &> /dev/null
# If the web directory is empty after removing these files, then the parent html folder can be removed.
if [ -d "/var/www/html" ]; then
if [[ ! "$(ls -A /var/www/html)" ]]; then
${SUDO} rm -rf /var/www/html &> /dev/null
fi
fi
# Attempt to preserve backwards compatibility with older versions
# to guarantee no additional changes were made to /etc/crontab after
# the installation of pihole, /etc/crontab.pihole should be permanently
# preserved.
if [[ -f /etc/crontab.orig ]]; then
echo "::: Initial Pi-hole cron detected. Restoring the default system cron..."
${SUDO} mv /etc/crontab /etc/crontab.pihole
${SUDO} mv /etc/crontab.orig /etc/crontab
${SUDO} service cron restart
fi
# Attempt to preserve backwards compatibility with older versions
if [[ -f /etc/cron.d/pihole ]];then
echo "::: Removing cron.d/pihole..."
${SUDO} rm /etc/cron.d/pihole &> /dev/null
fi
echo "::: Removing config files and scripts..."
package_check lighttpd > /dev/null
if [ $? -eq 1 ]; then
${SUDO} rm -rf /etc/lighttpd/ &> /dev/null
else
if [ -f /etc/lighttpd/lighttpd.conf.orig ]; then
${SUDO} mv /etc/lighttpd/lighttpd.conf.orig /etc/lighttpd/lighttpd.conf
fi
fi
${SUDO} rm /etc/dnsmasq.d/adList.conf &> /dev/null
${SUDO} rm /etc/dnsmasq.d/01-pihole.conf &> /dev/null
${SUDO} rm -rf /var/log/*pihole* &> /dev/null
${SUDO} rm -rf /etc/pihole/ &> /dev/null
${SUDO} rm -rf /etc/.pihole/ &> /dev/null
${SUDO} rm -rf /opt/pihole/ &> /dev/null
${SUDO} rm /usr/local/bin/pihole &> /dev/null
${SUDO} rm /etc/bash_completion.d/pihole &> /dev/null
${SUDO} rm /etc/sudoers.d/pihole &> /dev/null
# If the pihole user exists, then remove
if id "pihole" >/dev/null 2>&1; then
echo "::: Removing pihole user..."
${SUDO} userdel -r pihole
fi
echo ":::"
printf "::: Finished removing PiHole from your system. Sorry to see you go!\n"
printf "::: Reach out to us at https://github.com/pi-hole/pi-hole/issues if you need help\n"
printf "::: Reinstall by simpling running\n:::\n:::\tcurl -sSL https://install.pi-hole.net | bash\n:::\n::: at any time!\n:::\n"
printf "::: PLEASE RESET YOUR DNS ON YOUR ROUTER/CLIENTS TO RESTORE INTERNET CONNECTIVITY!\n"
}
######### SCRIPT ###########
echo "::: Preparing to remove packages, be sure that each may be safely removed depending on your operating system."
echo "::: (SAFE TO REMOVE ALL ON RASPBIAN)"
while true; do
read -rp "::: Do you wish to purge PiHole's dependencies from your OS? (You will be prompted for each package) [y/n]: " yn
case ${yn} in
[Yy]* ) removeAndPurge; break;;
[Nn]* ) removeNoPurge; break;;
esac
done

1
autotest Executable file
View File

@@ -0,0 +1 @@
py.test -v -f test/

View File

@@ -1,3 +1,14 @@
# Pi-hole: A black hole for Internet advertisements
# (c) 2015, 2016 by Jacob Salmela
# Network-wide ad blocking via your Raspberry Pi
# http://pi-hole.net
# Lighttpd config file for Pi-hole
#
# Pi-hole is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
server.modules = (
"mod_access",
"mod_alias",
@@ -27,6 +38,6 @@ include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
$HTTP["host"] =~ "ads.hulu.com|ads-v-darwin.hulu.com" {
$HTTP["host"] =~ "ads.hulu.com|ads-v-darwin.hulu.com|ads-e-darwin.hulu.com" {
url.redirect = ( ".*" => "http://192.168.1.101:8200/MediaItems/19.mov")
}

View File

@@ -1,6 +1,17 @@
# Pi-hole: A black hole for Internet advertisements
# (c) 2015, 2016 by Jacob Salmela
# Network-wide ad blocking via your Raspberry Pi
# http://pi-hole.net
# MiniDLNA config file for Pi-hole
#
# Pi-hole is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
media_dir=V,/var/lib/minidlna/videos/
port=8200
friendly_name=pihole
serial=12345678
model_number=1
inotify=yes
inotify=yes

View File

@@ -1,122 +1,432 @@
#!/bin/bash
# http://pi-hole.net
# Compiles a list of ad-serving domains by downloading them from multiple sources
#!/usr/bin/env bash
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Compiles a list of ad-serving domains by downloading them from multiple sources
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
# This script should only be run after you have a static IP address set on the Pi
piholeIP=$(hostname -I)
# Ad-list sources--one per line in single quotes
sources=('https://adaway.org/hosts.txt'
'http://adblock.gjtech.net/?format=unix-hosts'
'http://adblock.mahakala.is/'
'http://hosts-file.net/.%5Cad_servers.txt'
'http://www.malwaredomainlist.com/hostslist/hosts.txt'
'http://pgl.yoyo.org/adservers/serverlist.php?'
'http://someonewhocares.org/hosts/hosts'
'http://winhelp2002.mvps.org/hosts.txt')
# Run this script as root or under sudo
echo ":::"
helpFunc() {
cat << EOM
::: Pull in domains from adlists
:::
::: Usage: pihole -g
:::
::: Options:
::: -f, --force Force lists to be downloaded, even if they don't need updating.
::: -h, --help Show this help dialog
EOM
exit 0
}
PIHOLE_COMMAND="/usr/local/bin/pihole"
adListFile=/etc/pihole/adlists.list
adListDefault=/etc/pihole/adlists.default #being deprecated
adListRepoDefault=/etc/.pihole/adlists.default
whitelistScript="${PIHOLE_COMMAND} -w"
whitelistFile=/etc/pihole/whitelist.txt
blacklistFile=/etc/pihole/blacklist.txt
readonly wildcardlist="/etc/dnsmasq.d/03-pihole-wildcard.conf"
#Source the setupVars from install script for the IP
setupVars=/etc/pihole/setupVars.conf
if [[ -f ${setupVars} ]];then
. /etc/pihole/setupVars.conf
else
echo "::: WARNING: /etc/pihole/setupVars.conf missing. Possible installation failure."
echo "::: Please run 'pihole -r', and choose the 'reconfigure' option to reconfigure."
exit 1
fi
#Remove the /* from the end of the IPv4addr.
IPV4_ADDRESS=${IPV4_ADDRESS%/*}
IPV6_ADDRESS=${IPV6_ADDRESS}
# Variables for various stages of downloading and formatting the list
adList=/etc/pihole/gravity.list
origin=/etc/pihole
piholeDir=/etc/pihole
if [[ -f $piholeDir/pihole.conf ]];then
. $piholeDir/pihole.conf
fi
basename=pihole
piholeDir=/etc/${basename}
adList=${piholeDir}/gravity.list
localList=${piholeDir}/local.list
justDomainsExtension=domains
matter=pihole.0.matter.txt
andLight=pihole.1.andLight.txt
supernova=pihole.2.supernova.txt
eventHorizon=pihole.3.eventHorizon.txt
accretionDisc=pihole.4.accretionDisc.txt
eyeOfTheNeedle=pihole.5.wormhole.txt
blacklist=$piholeDir/blacklist.txt
latentBlacklist=$origin/latentBlacklist.txt
whitelist=$piholeDir/whitelist.txt
latentWhitelist=$origin/latentWhitelist.txt
matterAndLight=${basename}.0.matterandlight.txt
supernova=${basename}.1.supernova.txt
preEventHorizon=list.preEventHorizon
eventHorizon=${basename}.2.supernova.txt
accretionDisc=${basename}.3.accretionDisc.txt
echo "** Neutrino emissions detected..."
skipDownload=false
# Create the pihole resource directory if it doesn't exist. Future files will be stored here
if [[ -d $piholeDir ]];then
:
else
echo "** Creating pihole directory..."
sudo mkdir $piholeDir
# Warn users still using pihole.conf that it no longer has any effect (I imagine about 2 people use it)
if [[ -r ${piholeDir}/pihole.conf ]]; then
echo "::: pihole.conf file no longer supported. Over-rides in this file are ignored."
fi
# Loop through domain list. Download each one and remove commented lines (lines beginning with '# 'or '/') and blank lines
for ((i = 0; i < "${#sources[@]}"; i++))
do
# Get just the domain from the URL
domain=$(echo "${sources[$i]}" | cut -d'/' -f3)
# Save the file as list.#.domain
saveLocation=$origin/"list"."$i"."$domain"
# Use a case statement to download lists that need special cURL commands to complete properly
case "$domain" in
"adblock.mahakala.is") data=$(curl -s -A 'Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0' -e http://forum.xda-developers.com/ -z $saveLocation."$justDomainsExtension" "${sources[$i]}");;
"pgl.yoyo.org") data=$(curl -s -d mimetype=plaintext -d hostformat=hosts -z $saveLocation."$justDomainsExtension" "${sources[$i]}");;
###########################
# collapse - begin formation of pihole
gravity_collapse() {
*) data=$(curl -s -z $saveLocation."$justDomainsExtension" -A "Mozilla/10.0" "${sources[$i]}");;
esac
if [[ -n "$data" ]];then
echo "Getting $domain list..."
# Remove comments and print only the domain name
# Most of the lists downloaded are already in hosts file format but the spacing/formating is not contigious
# This helps with that and makes it easier to read
# It also helps with debugging so each stage of the script can be researched more in depth
echo "$data" | awk 'NF {if ($1 !~ "#") { if (NF>1) {print $2} else {print $1}}}' > $saveLocation."$justDomainsExtension"
#New Logic:
# Does /etc/pihole/adlists.list exist? If so leave it alone
# If not, cp /etc/.pihole/adlists.default /etc/pihole/adlists.list
# Read from adlists.list
#The following two blocks will sort out any missing adlists in the /etc/pihole directory, and remove legacy adlists.default
if [ -f ${adListDefault} ] && [ -f ${adListFile} ]; then
rm ${adListDefault}
fi
if [ ! -f ${adListFile} ]; then
cp ${adListRepoDefault} ${adListFile}
fi
echo "::: Neutrino emissions detected..."
echo ":::"
echo -n "::: Pulling source lists into range..."
sources=()
while IFS= read -r line || [[ -n "$line" ]]; do
#Do not read commented out or blank lines
if [[ ${line} = \#* ]] || [[ ! ${line} ]]; then
echo "" > /dev/null
else
sources+=(${line})
fi
done < ${adListFile}
echo " done!"
}
# patternCheck - check to see if curl downloaded any new files.
gravity_patternCheck() {
patternBuffer=$1
success=$2
error=$3
if [ $success = true ]; then
# check if download was successful but list has not been modified
if [ "${error}" == "304" ]; then
echo "::: No changes detected, transport skipped!"
# check if the patternbuffer is a non-zero length file
elif [[ -s "${patternBuffer}" ]]; then
# Some of the blocklists are copyright, they need to be downloaded
# and stored as is. They can be processed for content after they
# have been saved.
mv "${patternBuffer}" "${saveLocation}"
echo "::: List updated, transport successful!"
else
# Empty file -> use previously downloaded list
echo "::: Received empty file, using cached one (list not updated!)"
fi
else
echo "Skipping $domain list because it does not have any new entries..."
# check if cached list exists
if [[ -r "${saveLocation}" ]]; then
echo "::: List download failed, using cached list (list not updated!)"
else
echo "::: Download failed and no cached list available (list will not be considered)"
fi
fi
}
# transport - curl the specified url with any needed command extentions
gravity_transport() {
url=$1
cmd_ext=$2
agent=$3
# tmp file, so we don't have to store the (long!) lists in RAM
patternBuffer=$(mktemp)
heisenbergCompensator=""
if [[ -r ${saveLocation} ]]; then
# if domain has been saved, add file for date check to only download newer
heisenbergCompensator="-z ${saveLocation}"
fi
# Silently curl url
err=$(curl -s -L ${cmd_ext} ${heisenbergCompensator} -w %{http_code} -A "${agent}" ${url} -o ${patternBuffer})
echo " done"
# Analyze http response
echo -n "::: Status: "
case "$err" in
"200" ) echo "Success (OK)"; success=true;;
"304" ) echo "Not modified"; success=true;;
"403" ) echo "Forbidden"; success=false;;
"404" ) echo "Not found"; success=false;;
"408" ) echo "Time-out"; success=false;;
"451" ) echo "Unavailable For Legal Reasons"; success=false;;
"521" ) echo "Web Server Is Down (Cloudflare)"; success=false;;
"522" ) echo "Connection Timed Out (Cloudflare)"; success=false;;
"500" ) echo "Internal Server Error"; success=false;;
* ) echo "Status $err"; success=false;;
esac
# Process result
gravity_patternCheck "${patternBuffer}" ${success} "${err}"
# Delete temp file if it hasn't been moved
if [[ -f "${patternBuffer}" ]]; then
rm "${patternBuffer}"
fi
}
# spinup - main gravity function
gravity_spinup() {
echo ":::"
# Loop through domain list. Download each one and remove commented lines (lines beginning with '# 'or '/') and # blank lines
for ((i = 0; i < "${#sources[@]}"; i++)); do
url=${sources[$i]}
# Get just the domain from the URL
domain=$(echo "${url}" | cut -d'/' -f3)
# Save the file as list.#.domain
saveLocation=${piholeDir}/list.${i}.${domain}.${justDomainsExtension}
activeDomains[$i]=${saveLocation}
agent="Mozilla/10.0"
# Use a case statement to download lists that need special cURL commands
# to complete properly and reset the user agent when required
case "${domain}" in
"adblock.mahakala.is")
agent='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'
cmd_ext="-e http://forum.xda-developers.com/"
;;
"adaway.org")
agent='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'
;;
"pgl.yoyo.org")
cmd_ext="-d mimetype=plaintext -d hostformat=hosts"
;;
# Default is a simple request
*) cmd_ext=""
esac
if [[ "${skipDownload}" == false ]]; then
echo -n "::: Getting $domain list..."
gravity_transport "$url" "$cmd_ext" "$agent"
fi
done
}
# Schwarzchild - aggregate domains to one list and add blacklisted domains
gravity_Schwarzchild() {
echo "::: "
# Find all active domains and compile them into one file and remove CRs
echo -n "::: Aggregating list of domains..."
truncate -s 0 ${piholeDir}/${matterAndLight}
for i in "${activeDomains[@]}"; do
# Only assimilate list if it is available (download might have faild permanently)
if [[ -r "${i}" ]]; then
cat "${i}" | tr -d '\r' >> ${piholeDir}/${matterAndLight}
fi
done
echo " done!"
}
gravity_Blacklist() {
# Append blacklist entries to eventHorizon if they exist
if [[ -f "${blacklistFile}" ]]; then
numBlacklisted=$(wc -l < "${blacklistFile}")
plural=; [[ "$numBlacklisted" != "1" ]] && plural=s
echo -n "::: Blacklisting $numBlacklisted domain${plural}..."
cat ${blacklistFile} >> ${piholeDir}/${eventHorizon}
echo " done!"
else
echo "::: Nothing to blacklist!"
fi
}
gravity_Wildcard() {
# Return number of wildcards in output - don't actually handle wildcards
if [[ -f "${wildcardlist}" ]]; then
numWildcards=$(grep -c ^ "${wildcardlist}")
if [[ -n "${IPV4_ADDRESS}" && -n "${IPV6_ADDRESS}" ]];then
let numWildcards/=2
fi
plural=; [[ "$numWildcards" != "1" ]] && plural=s
echo "::: Wildcard blocked domain${plural}: $numWildcards"
else
echo "::: No wildcards used!"
fi
}
gravity_Whitelist() {
#${piholeDir}/${eventHorizon})
echo ":::"
# Prevent our sources from being pulled into the hole
plural=; [[ "${sources[@]}" != "1" ]] && plural=s
echo -n "::: Adding adlist source${plural} to the whitelist..."
urls=()
for url in "${sources[@]}"; do
tmp=$(echo "${url}" | awk -F '/' '{print $3}')
urls=("${urls[@]}" ${tmp})
done
echo " done!"
# Ensure adlist domains are in whitelist.txt
${whitelistScript} -nr -q "${urls[@]}" > /dev/null
# Check whitelist.txt exists.
if [[ -f "${whitelistFile}" ]]; then
# Remove anything in whitelist.txt from the Event Horizon
numWhitelisted=$(wc -l < "${whitelistFile}")
plural=; [[ "$numWhitelisted" != "1" ]] && plural=s
echo -n "::: Whitelisting $numWhitelisted domain${plural}..."
#print everything from preEventHorizon into eventHorizon EXCEPT domains in whitelist.txt
grep -F -x -v -f ${whitelistFile} ${piholeDir}/${preEventHorizon} > ${piholeDir}/${eventHorizon}
echo " done!"
else
echo "::: Nothing to whitelist!"
fi
}
gravity_unique() {
# Sort and remove duplicates
echo -n "::: Removing duplicate domains...."
sort -u ${piholeDir}/${supernova} > ${piholeDir}/${preEventHorizon}
echo " done!"
numberOf=$(wc -l < ${piholeDir}/${preEventHorizon})
echo "::: $numberOf unique domains trapped in the event horizon."
}
gravity_hostFormat() {
# Format domain list as "192.168.x.x domain.com"
echo -n "::: Formatting domains into a HOSTS file..."
if [[ -f /etc/hostname ]]; then
hostname=$(</etc/hostname)
elif [ -x "$(command -v hostname)" ]; then
hostname=$(hostname -f)
else
echo "::: Error: Unable to determine fully qualified domain name of host"
fi
# Check vars from setupVars.conf to see if we're using IPv4, IPv6, Or both.
if [[ -n "${IPV4_ADDRESS}" && -n "${IPV6_ADDRESS}" ]];then
echo -e "${IPV4_ADDRESS} ${hostname}\n${IPV6_ADDRESS} ${hostname}\n${IPV4_ADDRESS} pi.hole\n${IPV6_ADDRESS} pi.hole" > ${localList}
# Both IPv4 and IPv6
cat ${piholeDir}/${eventHorizon} | awk -v ipv4addr="$IPV4_ADDRESS" -v ipv6addr="$IPV6_ADDRESS" '{sub(/\r$/,""); print ipv4addr" "$0"\n"ipv6addr" "$0}' >> ${piholeDir}/${accretionDisc}
elif [[ -n "${IPV4_ADDRESS}" && -z "${IPV6_ADDRESS}" ]];then
echo -e "${IPV4_ADDRESS} ${hostname}\n${IPV4_ADDRESS} pi.hole" > ${localList}
# Only IPv4
cat ${piholeDir}/${eventHorizon} | awk -v ipv4addr="$IPV4_ADDRESS" '{sub(/\r$/,""); print ipv4addr" "$0}' >> ${piholeDir}/${accretionDisc}
elif [[ -z "${IPV4_ADDRESS}" && -n "${IPV6_ADDRESS}" ]];then
echo -e "${IPV6_ADDRESS} ${hostname}\n${IPV6_ADDRESS} pi.hole" > ${localList}
# Only IPv6
cat ${piholeDir}/${eventHorizon} | awk -v ipv6addr="$IPV6_ADDRESS" '{sub(/\r$/,""); print ipv6addr" "$0}' >> ${piholeDir}/${accretionDisc}
elif [[ -z "${IPV4_ADDRESS}" && -z "${IPV6_ADDRESS}" ]];then
echo "::: No IP Values found! Please run 'pihole -r' and choose reconfigure to restore values"
exit 1
fi
# Copy the file over as /etc/pihole/gravity.list so dnsmasq can use it
cp ${piholeDir}/${accretionDisc} ${adList}
echo " done!"
}
# blackbody - remove any remnant files from script processes
gravity_blackbody() {
# Loop through list files
for file in ${piholeDir}/*.${justDomainsExtension}; do
# If list is in active array then leave it (noop) else rm the list
if [[ " ${activeDomains[@]} " =~ ${file} ]]; then
:
else
rm -f "${file}"
fi
done
}
gravity_advanced() {
# Remove comments and print only the domain name
# Most of the lists downloaded are already in hosts file format but the spacing/formating is not contigious
# This helps with that and makes it easier to read
# It also helps with debugging so each stage of the script can be researched more in depth
echo -n "::: Formatting list of domains to remove comments...."
#awk '($1 !~ /^#/) { if (NF>1) {print $2} else {print $1}}' ${piholeDir}/${matterAndLight} | sed -nr -e 's/\.{2,}/./g' -e '/\./p' > ${piholeDir}/${supernova}
#Above line does not correctly grab domains where comment is on the same line (e.g 'addomain.com #comment')
#Awk -F splits on given IFS, we grab the right hand side (chops trailing #coments and /'s to grab the domain only.
#Last awk command takes non-commented lines and if they have 2 fields, take the left field (the domain) and leave
#+ the right (IP address), otherwise grab the single field.
cat ${piholeDir}/${matterAndLight} | \
awk -F '#' '{print $1}' | \
awk -F '/' '{print $1}' | \
awk '($1 !~ /^#/) { if (NF>1) {print $2} else {print $1}}' | \
sed -nr -e 's/\.{2,}/./g' -e '/\./p' > ${piholeDir}/${supernova}
echo " done!"
numberOf=$(wc -l < ${piholeDir}/${supernova})
echo "::: ${numberOf} domains being pulled in by gravity..."
gravity_unique
}
gravity_reload() {
#Clear no longer needed files...
echo ":::"
echo -n "::: Cleaning up un-needed files..."
rm ${piholeDir}/pihole.*.txt
echo " done!"
# Reload hosts file
echo ":::"
echo -n "::: Refresh lists in dnsmasq..."
#ensure /etc/dnsmasq.d/01-pihole.conf is pointing at the correct list!
#First escape forward slashes in the path:
adList=${adList//\//\\\/}
#Now replace the line in dnsmasq file
# sed -i "s/^addn-hosts.*/addn-hosts=$adList/" /etc/dnsmasq.d/01-pihole.conf
"${PIHOLE_COMMAND}" restartdns
echo " done!"
}
for var in "$@"; do
case "${var}" in
"-f" | "--force" ) forceGrav=true;;
"-h" | "--help" ) helpFunc;;
"-sd" | "--skip-download" ) skipDownload=true;;
esac
done
# Find all files with the .domains extension and compile them into one file and remove CRs
echo "** Aggregating list of domains..."
find $origin/ -type f -name "*.$justDomainsExtension" -exec cat {} \; | tr -d '\r' > $origin/$matter
# Append blacklist entries if they exist
if [[ -f $blacklist ]];then
numberOf=$(cat $blacklist | sed '/^\s*$/d' | wc -l)
echo "** Blacklisting $numberOf domain(s)..."
cat $blacklist >> $origin/$matter
else
:
if [[ "${forceGrav}" == true ]]; then
echo -n "::: Deleting exising list cache..."
rm /etc/pihole/list.*
echo " done!"
fi
function gravity_advanced()
###########################
{
numberOf=$(cat $origin/$andLight | sed '/^\s*$/d' | wc -l)
echo "** $numberOf domains being pulled in by gravity..."
# Remove carriage returns and preceding whitespace
cat $origin/$andLight | sed $'s/\r$//' | sed '/^\s*$/d' > $origin/$supernova
# Sort and remove duplicates
cat $origin/$supernova | sort | uniq > $origin/$eventHorizon
numberOf=$(cat $origin/$eventHorizon | sed '/^\s*$/d' | wc -l)
echo "** $numberOf unique domains trapped in the event horizon."
# Format domain list as "192.168.x.x domain.com"
echo "** Formatting domains into a HOSTS file..."
cat $origin/$eventHorizon | awk '{sub(/\r$/,""); print "'"$piholeIP"'" $0}' > $origin/$accretionDisc
# Copy the file over as /etc/pihole/gravity.list so dnsmasq can use it
sudo cp $origin/$accretionDisc $adList
kill -HUP $(pidof dnsmasq)
}
# Whitelist (if applicable) then remove duplicates and format for dnsmasq
if [[ -f $whitelist ]];then
# Remove whitelist entries
numberOf=$(cat $whitelist | sed '/^\s*$/d' | wc -l)
echo "** Whitelisting $numberOf domain(s)..."
# Append a "$" to the end of each line so it can be parsed out with grep -w
echo -n "^$" > $latentWhitelist
awk -F '[# \t]' 'NF>0&&$1!="" {print $1"$"}' $whitelist > $latentWhitelist
cat $origin/$matter | grep -vwf $latentWhitelist > $origin/$andLight
gravity_advanced
gravity_collapse
gravity_spinup
if [[ "${skipDownload}" == false ]]; then
gravity_Schwarzchild
gravity_advanced
else
cat $origin/$matter > $origin/$andLight
gravity_advanced
echo "::: Using cached Event Horizon list..."
numberOf=$(wc -l < ${piholeDir}/${preEventHorizon})
echo "::: $numberOf unique domains trapped in the event horizon."
fi
gravity_Whitelist
gravity_Blacklist
gravity_Wildcard
gravity_hostFormat
gravity_blackbody
gravity_reload
"${PIHOLE_COMMAND}" status

354
pihole Executable file
View File

@@ -0,0 +1,354 @@
#!/bin/bash
# Pi-hole: A black hole for Internet advertisements
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
# Network-wide ad blocking via your own hardware.
#
# Controller for all pihole scripts and functions.
#
# This file is copyright under the latest version of the EUPL.
# Please see LICENSE file for your rights under this license.
readonly PI_HOLE_SCRIPT_DIR="/opt/pihole"
readonly wildcardlist="/etc/dnsmasq.d/03-pihole-wildcard.conf"
# Must be root to use this tool
if [[ ! $EUID -eq 0 ]];then
if [ -x "$(command -v sudo)" ];then
exec sudo bash "$0" "$@"
exit $?
else
echo "::: sudo is needed to run pihole commands. Please run this script as root or install sudo."
exit 1
fi
fi
webpageFunc() {
source /opt/pihole/webpage.sh
main "$@"
exit 0
}
whitelistFunc() {
"${PI_HOLE_SCRIPT_DIR}"/list.sh "$@"
exit 0
}
blacklistFunc() {
"${PI_HOLE_SCRIPT_DIR}"/list.sh "$@"
exit 0
}
wildcardFunc() {
"${PI_HOLE_SCRIPT_DIR}"/list.sh "$@"
exit 0
}
debugFunc() {
local automated
local web
# Pull off the `debug` leaving passed call augmentation flags in $1
shift
if [[ "$@" == *"-a"* ]]; then
automated="true"
fi
if [[ "$@" == *"-w"* ]]; then
web="true"
fi
AUTOMATED=${automated:-} WEBCALL=${web:-} "${PI_HOLE_SCRIPT_DIR}"/piholeDebug.sh
exit 0
}
flushFunc() {
"${PI_HOLE_SCRIPT_DIR}"/piholeLogFlush.sh
exit 0
}
updatePiholeFunc() {
"${PI_HOLE_SCRIPT_DIR}"/update.sh
exit 0
}
reconfigurePiholeFunc() {
/etc/.pihole/automated\ install/basic-install.sh --reconfigure
exit 0;
}
updateGravityFunc() {
"${PI_HOLE_SCRIPT_DIR}"/gravity.sh "$@"
exit 0
}
scanList(){
domain="${1}"
list="${2}"
method="${3}"
if [[ ${method} == "-exact" ]] ; then
grep -i -E "(^|\s)${domain}($|\s)" "${list}"
else
grep -i "${domain}" "${list}"
fi
}
processWildcards() {
IFS="." read -r -a array <<< "${1}"
for (( i=${#array[@]}-1; i>=0; i-- )); do
ar=""
for (( j=${#array[@]}-1; j>${#array[@]}-i-2; j-- )); do
if [[ $j == $((${#array[@]}-1)) ]]; then
ar="${array[$j]}"
else
ar="${array[$j]}.${ar}"
fi
done
echo "${ar}"
done
}
queryFunc() {
domain="${2}"
method="${3}"
lists=( /etc/pihole/list.* /etc/pihole/blacklist.txt)
for list in ${lists[@]}; do
if [ -e "${list}" ]; then
result=$(scanList ${domain} ${list} ${method})
# Remove empty lines before couting number of results
count=$(sed '/^\s*$/d' <<< "$result" | wc -l)
echo "::: ${list} (${count} results)"
if [[ ${count} > 0 ]]; then
echo "${result}"
fi
echo ""
else
echo "::: ${list} does not exist"
echo ""
fi
done
# Scan for possible wildcard matches
if [ -e "${wildcardlist}" ]; then
local wildcards=($(processWildcards "${domain}"))
for domain in ${wildcards[@]}; do
result=$(scanList "\/${domain}\/" ${wildcardlist})
# Remove empty lines before couting number of results
count=$(sed '/^\s*$/d' <<< "$result" | wc -l)
if [[ ${count} > 0 ]]; then
echo "::: Wildcard blocking ${domain} (${count} results)"
echo "${result}"
echo ""
fi
done
fi
exit 0
}
chronometerFunc() {
shift
"${PI_HOLE_SCRIPT_DIR}"/chronometer.sh "$@"
exit 0
}
uninstallFunc() {
"${PI_HOLE_SCRIPT_DIR}"/uninstall.sh
exit 0
}
versionFunc() {
shift
"${PI_HOLE_SCRIPT_DIR}"/version.sh "$@"
exit 0
}
restartDNS() {
dnsmasqPid=$(pidof dnsmasq)
if [[ ${dnsmasqPid} ]]; then
# service already running - reload config
if [ -x "$(command -v systemctl)" ]; then
systemctl restart dnsmasq
else
service dnsmasq restart
fi
else
# service not running, start it up
if [ -x "$(command -v systemctl)" ]; then
systemctl start dnsmasq
else
service dnsmasq start
fi
fi
}
piholeEnable() {
if [[ "${1}" == "0" ]] ; then
#Disable Pihole
sed -i 's/^addn-hosts=\/etc\/pihole\/gravity.list/#addn-hosts=\/etc\/pihole\/gravity.list/' /etc/dnsmasq.d/01-pihole.conf
echo "::: Blocking has been disabled!"
if [[ $# > 1 ]] ; then
if [[ ${2} == *"s"* ]] ; then
tt=${2%"s"}
echo "::: Blocking will be re-enabled in ${tt} seconds"
nohup bash -c "sleep ${tt}; pihole enable" </dev/null &>/dev/null &
elif [[ ${2} == *"m"* ]] ; then
tt=${2%"m"}
echo "::: Blocking will be re-enabled in ${tt} minutes"
tt=$((${tt}*60))
nohup bash -c "sleep ${tt}; pihole enable" </dev/null &>/dev/null &
else
echo "::: Unknown format for delayed reactivation of the blocking!"
echo "::: Example:"
echo "::: pihole disable 5s - will disable blocking for 5 seconds"
echo "::: pihole disable 7m - will disable blocking for 7 minutes"
echo "::: Blocking will not automatically be re-enabled!"
fi
fi
else
#Enable pihole
echo "::: Blocking has been enabled!"
sed -i 's/^#addn-hosts/addn-hosts/' /etc/dnsmasq.d/01-pihole.conf
fi
restartDNS
}
piholeLogging() {
shift
if [[ "${1}" == "off" ]] ; then
#Disable Logging
sed -i 's/^log-queries/#log-queries/' /etc/dnsmasq.d/01-pihole.conf
sed -i 's/^QUERY_LOGGING=true/QUERY_LOGGING=false/' /etc/pihole/setupVars.conf
pihole -f
echo "::: Logging has been disabled!"
elif [[ "${1}" == "on" ]] ; then
#Enable logging
sed -i 's/^#log-queries/log-queries/' /etc/dnsmasq.d/01-pihole.conf
sed -i 's/^QUERY_LOGGING=false/QUERY_LOGGING=true/' /etc/pihole/setupVars.conf
echo "::: Logging has been enabled!"
else
echo "::: Invalid option passed, please pass 'on' or 'off'"
exit 1
fi
restartDNS
}
piholeStatus() {
if [[ $(netstat -plnt | grep -c ':53 ') > 0 ]]; then
if [[ "${1}" != "web" ]] ; then
echo "::: DNS service is running"
fi
else
if [[ "${1}" == "web" ]] ; then
echo "-1";
else
echo "::: DNS service is NOT running"
fi
return
fi
if [[ $(grep -i "^#addn-hosts=/" /etc/dnsmasq.d/01-pihole.conf) ]] ; then
#list is commented out
if [[ "${1}" == "web" ]] ; then
echo 0;
else
echo "::: Pi-hole blocking is Disabled";
fi
elif [[ $(grep -i "^addn-hosts=/" /etc/dnsmasq.d/01-pihole.conf) ]] ; then
#list set
if [[ "${1}" == "web" ]] ; then
echo 1;
else
echo "::: Pi-hole blocking is Enabled";
fi
else
#addn-host not found
if [[ "${1}" == "web" ]] ; then
echo 99
else
echo "::: No hosts file linked to dnsmasq, adding it in enabled state"
fi
#add addn-host= to dnsmasq
echo "addn-hosts=/etc/pihole/gravity.list" >> /etc/dnsmasq.d/01-pihole.conf
restartDNS
fi
}
tailFunc() {
echo "Press Ctrl-C to exit"
tail -F /var/log/pihole.log
exit 0
}
piholeCheckoutFunc() {
source "${PI_HOLE_SCRIPT_DIR}"/piholeCheckout.sh
shift
checkout "$@"
}
helpFunc() {
cat << EOM
::: Control all Pi-hole specific functions
:::
::: Usage: pihole [options]
::: Add -h after -w (whitelist), -b (blacklist), -c (chronometer), or -a (admin) for more information on usage
:::
::: Options:
::: -w, whitelist Whitelist domain(s)
::: -b, blacklist Blacklist domain(s) (exact match)
::: -wild, wildcard Blacklist whole domain(s) (wildcard)
::: -d, debug Start a debugging session
::: Automated debugging can be enabled with '-a'.
::: 'pihole -d -a'
::: -f, flush Flush the 'pihole.log' file
::: -t, tail Output the last lines of the 'pihole.log' file. Lines are appended as the file grows
::: -up, updatePihole Update Pi-hole components
::: -r, reconfigure Reconfigure or Repair Pi-hole
::: -g, updateGravity Update the list of ad-serving domains
::: -c, chronometer Calculates stats and displays to an LCD
::: -h, help Show this help dialog
::: -v, version Show installed versions of Pi-hole and Web-Admin
::: -q, query Query the adlists for a specific domain
::: 'pihole -q domain -exact' shows exact matches only
::: -l, logging Enable or Disable logging (pass 'on' or 'off')
::: -a, admin Admin webpage options
::: uninstall Uninstall Pi-hole from your system! :(
::: status Display if Pi-hole is Enabled or Disabled
::: enable Enable Pi-hole DNS Blocking
::: disable Disable Pi-hole DNS Blocking
::: Blocking can also be disabled only temporarily, e.g.,
::: 'pihole disable 5m' - will disable blocking for 5 minutes
::: restartdns Restart dnsmasq
::: checkout Check out different branches
EOM
exit 0
}
if [[ $# = 0 ]]; then
helpFunc
fi
# Handle redirecting to specific functions based on arguments
case "${1}" in
"-w" | "whitelist" ) whitelistFunc "$@";;
"-b" | "blacklist" ) blacklistFunc "$@";;
"-wild" | "wildcard" ) wildcardFunc "$@";;
"-d" | "debug" ) debugFunc "$@";;
"-f" | "flush" ) flushFunc;;
"-up" | "updatePihole" ) updatePiholeFunc;;
"-r" | "reconfigure" ) reconfigurePiholeFunc;;
"-g" | "updateGravity" ) updateGravityFunc "$@";;
"-c" | "chronometer" ) chronometerFunc "$@";;
"-h" | "help" ) helpFunc;;
"-v" | "version" ) versionFunc "$@";;
"-q" | "query" ) queryFunc "$@";;
"-l" | "logging" ) piholeLogging "$@";;
"uninstall" ) uninstallFunc;;
"enable" ) piholeEnable 1;;
"disable" ) piholeEnable 0 $2;;
"status" ) piholeStatus "$2";;
"restartdns" ) restartDNS;;
"-a" | "admin" ) webpageFunc "$@";;
"-t" | "tail" ) tailFunc;;
"checkout" ) piholeCheckoutFunc "$@";;
* ) helpFunc;;
esac

5
requirements.txt Normal file
View File

@@ -0,0 +1,5 @@
docker-compose
pytest
pytest-xdist
pytest-cov
testinfra

0
test/__init__.py Normal file
View File

16
test/centos.Dockerfile Normal file
View File

@@ -0,0 +1,16 @@
FROM centos:7
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
#sed '/# Start the installer/Q' /opt/pihole/basic-install.sh > /opt/pihole/stub_basic-install.sh && \

61
test/conftest.py Normal file
View File

@@ -0,0 +1,61 @@
import pytest
import testinfra
check_output = testinfra.get_backend(
"local://"
).get_module("Command").check_output
@pytest.fixture
def Pihole(Docker):
''' used to contain some script stubbing, now pretty much an alias.
Also provides bash as the default run function shell '''
def run_bash(self, command, *args, **kwargs):
cmd = self.get_command(command, *args)
if self.user is not None:
out = self.run_local(
"docker exec -u %s %s /bin/bash -c %s",
self.user, self.name, cmd)
else:
out = self.run_local(
"docker exec %s /bin/bash -c %s", self.name, cmd)
out.command = self.encode(cmd)
return out
funcType = type(Docker.run)
Docker.run = funcType(run_bash, Docker, testinfra.backend.docker.DockerBackend)
return Docker
@pytest.fixture
def Docker(request, args, image, cmd):
''' combine our fixtures into a docker run command and setup finalizer to cleanup '''
assert 'docker' in check_output('id'), "Are you in the docker group?"
docker_run = "docker run {} {} {}".format(args, image, cmd)
docker_id = check_output(docker_run)
def teardown():
check_output("docker rm -f %s", docker_id)
request.addfinalizer(teardown)
docker_container = testinfra.get_backend("docker://" + docker_id)
docker_container.id = docker_id
return docker_container
@pytest.fixture
def args(request):
''' -t became required when tput began being used '''
return '-t -d'
@pytest.fixture(params=['debian', 'centos'])
def tag(request):
''' consumed by image to make the test matrix '''
return request.param
@pytest.fixture()
def image(request, tag):
''' built by test_000_build_containers.py '''
return 'pytest_pihole:{}'.format(tag)
@pytest.fixture()
def cmd(request):
''' default to doing nothing by tailing null, but don't exit '''
return 'tail -f /dev/null'

16
test/debian.Dockerfile Normal file
View File

@@ -0,0 +1,16 @@
FROM buildpack-deps:jessie-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
#sed '/# Start the installer/Q' /opt/pihole/basic-install.sh > /opt/pihole/stub_basic-install.sh && \

View File

@@ -0,0 +1,18 @@
''' This file starts with 000 to make it run first '''
import pytest
import testinfra
run_local = testinfra.get_backend(
"local://"
).get_module("Command").run
@pytest.mark.parametrize("image,tag", [
( 'test/debian.Dockerfile', 'pytest_pihole:debian' ),
( 'test/centos.Dockerfile', 'pytest_pihole:centos' ),
])
def test_build_pihole_image(image, tag):
build_cmd = run_local('docker build -f {} -t {} .'.format(image, tag))
if build_cmd.rc != 0:
print build_cmd.stdout
print build_cmd.stderr
assert build_cmd.rc == 0

View File

@@ -0,0 +1,430 @@
import pytest
from textwrap import dedent
SETUPVARS = {
'PIHOLE_INTERFACE' : 'eth99',
'IPV4_ADDRESS' : '1.1.1.1',
'IPV6_ADDRESS' : 'FE80::240:D0FF:FE48:4672',
'PIHOLE_DNS_1' : '4.2.2.1',
'PIHOLE_DNS_2' : '4.2.2.2'
}
def test_setupVars_are_sourced_to_global_scope(Pihole):
''' currently update_dialogs sources setupVars with a dot,
then various other functions use the variables.
This confirms the sourced variables are in scope between functions '''
setup_var_file = 'cat <<EOF> /etc/pihole/setupVars.conf\n'
for k,v in SETUPVARS.iteritems():
setup_var_file += "{}={}\n".format(k, v)
setup_var_file += "EOF\n"
Pihole.run(setup_var_file)
script = dedent('''\
set -e
printSetupVars() {
# Currently debug test function only
echo "Outputting sourced variables"
echo "PIHOLE_INTERFACE=${PIHOLE_INTERFACE}"
echo "IPV4_ADDRESS=${IPV4_ADDRESS}"
echo "IPV6_ADDRESS=${IPV6_ADDRESS}"
echo "PIHOLE_DNS_1=${PIHOLE_DNS_1}"
echo "PIHOLE_DNS_2=${PIHOLE_DNS_2}"
}
update_dialogs() {
. /etc/pihole/setupVars.conf
}
update_dialogs
printSetupVars
''')
output = run_script(Pihole, script).stdout
for k,v in SETUPVARS.iteritems():
assert "{}={}".format(k, v) in output
def test_setupVars_saved_to_file(Pihole):
''' confirm saved settings are written to a file for future updates to re-use '''
set_setup_vars = '\n' # dedent works better with this and padding matching script below
for k,v in SETUPVARS.iteritems():
set_setup_vars += " {}={}\n".format(k, v)
Pihole.run(set_setup_vars).stdout
script = dedent('''\
set -e
echo start
TERM=xterm
source /opt/pihole/basic-install.sh
{}
finalExports
cat /etc/pihole/setupVars.conf
'''.format(set_setup_vars))
output = run_script(Pihole, script).stdout
for k,v in SETUPVARS.iteritems():
assert "{}={}".format(k, v) in output
def test_configureFirewall_firewalld_running_no_errors(Pihole):
''' confirms firewalld rules are applied when firewallD is running '''
# firewallD returns 'running' as status
mock_command('firewall-cmd', {'*':('running', 0)}, Pihole)
# Whiptail dialog returns Ok for user prompt
mock_command('whiptail', {'*':('', 0)}, Pihole)
configureFirewall = Pihole.run('''
source /opt/pihole/basic-install.sh
configureFirewall
''')
expected_stdout = 'Configuring FirewallD for httpd and dnsmasq.'
assert expected_stdout in configureFirewall.stdout
firewall_calls = Pihole.run('cat /var/log/firewall-cmd').stdout
assert 'firewall-cmd --state' in firewall_calls
assert 'firewall-cmd --permanent --add-service=http --add-service=dns' in firewall_calls
assert 'firewall-cmd --reload' in firewall_calls
def test_configureFirewall_firewalld_disabled_no_errors(Pihole):
''' confirms firewalld rules are not applied when firewallD is not running '''
# firewallD returns non-running status
mock_command('firewall-cmd', {'*':('not running', '1')}, Pihole)
configureFirewall = Pihole.run('''
source /opt/pihole/basic-install.sh
configureFirewall
''')
expected_stdout = 'No active firewall detected.. skipping firewall configuration.'
assert expected_stdout in configureFirewall.stdout
def test_configureFirewall_firewalld_enabled_declined_no_errors(Pihole):
''' confirms firewalld rules are not applied when firewallD is running, user declines ruleset '''
# firewallD returns running status
mock_command('firewall-cmd', {'*':('running', 0)}, Pihole)
# Whiptail dialog returns Cancel for user prompt
mock_command('whiptail', {'*':('', 1)}, Pihole)
configureFirewall = Pihole.run('''
source /opt/pihole/basic-install.sh
configureFirewall
''')
expected_stdout = 'Not installing firewall rulesets.'
assert expected_stdout in configureFirewall.stdout
def test_configureFirewall_no_firewall(Pihole):
''' confirms firewall skipped no daemon is running '''
configureFirewall = Pihole.run('''
source /opt/pihole/basic-install.sh
configureFirewall
''')
expected_stdout = 'No active firewall detected'
assert expected_stdout in configureFirewall.stdout
def test_configureFirewall_IPTables_enabled_declined_no_errors(Pihole):
''' confirms IPTables rules are not applied when IPTables is running, user declines ruleset '''
# iptables command exists
mock_command('iptables', {'*':('', '0')}, Pihole)
# modinfo returns always true (ip_tables module check)
mock_command('modinfo', {'*':('', '0')}, Pihole)
# Whiptail dialog returns Cancel for user prompt
mock_command('whiptail', {'*':('', '1')}, Pihole)
configureFirewall = Pihole.run('''
source /opt/pihole/basic-install.sh
configureFirewall
''')
expected_stdout = 'Not installing firewall rulesets.'
assert expected_stdout in configureFirewall.stdout
def test_configureFirewall_IPTables_enabled_rules_exist_no_errors(Pihole):
''' confirms IPTables rules are not applied when IPTables is running and rules exist '''
# iptables command exists and returns 0 on calls (should return 0 on iptables -C)
mock_command('iptables', {'-S':('-P INPUT DENY', '0')}, Pihole)
# modinfo returns always true (ip_tables module check)
mock_command('modinfo', {'*':('', '0')}, Pihole)
# Whiptail dialog returns Cancel for user prompt
mock_command('whiptail', {'*':('', '0')}, Pihole)
configureFirewall = Pihole.run('''
source /opt/pihole/basic-install.sh
configureFirewall
''')
expected_stdout = 'Installing new IPTables firewall rulesets'
assert expected_stdout in configureFirewall.stdout
firewall_calls = Pihole.run('cat /var/log/iptables').stdout
assert 'iptables -I INPUT 1 -p tcp -m tcp --dport 80 -j ACCEPT' not in firewall_calls
assert 'iptables -I INPUT 1 -p tcp -m tcp --dport 53 -j ACCEPT' not in firewall_calls
assert 'iptables -I INPUT 1 -p udp -m udp --dport 53 -j ACCEPT' not in firewall_calls
def test_configureFirewall_IPTables_enabled_not_exist_no_errors(Pihole):
''' confirms IPTables rules are applied when IPTables is running and rules do not exist '''
# iptables command and returns 0 on calls (should return 1 on iptables -C)
mock_command('iptables', {'-S':('-P INPUT DENY', '0'), '-C':('', 1), '-I':('', 0)}, Pihole)
# modinfo returns always true (ip_tables module check)
mock_command('modinfo', {'*':('', '0')}, Pihole)
# Whiptail dialog returns Cancel for user prompt
mock_command('whiptail', {'*':('', '0')}, Pihole)
configureFirewall = Pihole.run('''
source /opt/pihole/basic-install.sh
configureFirewall
''')
expected_stdout = 'Installing new IPTables firewall rulesets'
assert expected_stdout in configureFirewall.stdout
firewall_calls = Pihole.run('cat /var/log/iptables').stdout
assert 'iptables -I INPUT 1 -p tcp -m tcp --dport 80 -j ACCEPT' in firewall_calls
assert 'iptables -I INPUT 1 -p tcp -m tcp --dport 53 -j ACCEPT' in firewall_calls
assert 'iptables -I INPUT 1 -p udp -m udp --dport 53 -j ACCEPT' in firewall_calls
def test_installPiholeWeb_fresh_install_no_errors(Pihole):
''' confirms all web page assets from Core repo are installed on a fresh build '''
installWeb = Pihole.run('''
source /opt/pihole/basic-install.sh
installPiholeWeb
''')
assert 'Installing pihole custom index page...' in installWeb.stdout
assert 'No default index.lighttpd.html file found... not backing up' in installWeb.stdout
web_directory = Pihole.run('ls -r /var/www/html/pihole').stdout
assert 'index.php' in web_directory
assert 'index.js' in web_directory
assert 'blockingpage.css' in web_directory
def test_installPiholeWeb_empty_directory_no_errors(Pihole):
''' confirms all web page assets from Core repo are installed in an emtpy directory '''
installWeb = Pihole.run('''
source /opt/pihole/basic-install.sh
mkdir -p /var/www/html/pihole
installPiholeWeb
''')
assert 'Installing pihole custom index page...' in installWeb.stdout
assert 'No default index.lighttpd.html file found... not backing up' not in installWeb.stdout
assert 'index.php missing, replacing...' in installWeb.stdout
assert 'index.js missing, replacing...' in installWeb.stdout
assert 'blockingpage.css missing, replacing...' in installWeb.stdout
web_directory = Pihole.run('ls -r /var/www/html/pihole').stdout
assert 'index.php' in web_directory
assert 'index.js' in web_directory
assert 'blockingpage.css' in web_directory
def test_installPiholeWeb_index_php_no_errors(Pihole):
''' confirms all web page assets from Core repo are installed when necessary '''
installWeb = Pihole.run('''
source /opt/pihole/basic-install.sh
mkdir -p /var/www/html/pihole
touch /var/www/html/pihole/index.php
installPiholeWeb
''')
assert 'Installing pihole custom index page...' in installWeb.stdout
assert 'No default index.lighttpd.html file found... not backing up' not in installWeb.stdout
assert 'Existing index.php detected, not overwriting' in installWeb.stdout
assert 'index.js missing, replacing...' in installWeb.stdout
assert 'blockingpage.css missing, replacing...' in installWeb.stdout
web_directory = Pihole.run('ls -r /var/www/html/pihole').stdout
assert 'index.php' in web_directory
assert 'index.js' in web_directory
assert 'blockingpage.css' in web_directory
def test_installPiholeWeb_index_js_no_errors(Pihole):
''' confirms all web page assets from Core repo are installed when necessary '''
installWeb = Pihole.run('''
source /opt/pihole/basic-install.sh
mkdir -p /var/www/html/pihole
touch /var/www/html/pihole/index.js
installPiholeWeb
''')
assert 'Installing pihole custom index page...' in installWeb.stdout
assert 'No default index.lighttpd.html file found... not backing up' not in installWeb.stdout
assert 'index.php missing, replacing...' in installWeb.stdout
assert 'Existing index.js detected, not overwriting' in installWeb.stdout
assert 'blockingpage.css missing, replacing...' in installWeb.stdout
web_directory = Pihole.run('ls -r /var/www/html/pihole').stdout
assert 'index.php' in web_directory
assert 'index.js' in web_directory
assert 'blockingpage.css' in web_directory
def test_installPiholeWeb_blockingpage_css_no_errors(Pihole):
''' confirms all web page assets from Core repo are installed when necessary '''
installWeb = Pihole.run('''
source /opt/pihole/basic-install.sh
mkdir -p /var/www/html/pihole
touch /var/www/html/pihole/blockingpage.css
installPiholeWeb
''')
assert 'Installing pihole custom index page...' in installWeb.stdout
assert 'No default index.lighttpd.html file found... not backing up' not in installWeb.stdout
assert 'index.php missing, replacing...' in installWeb.stdout
assert 'index.js missing, replacing...' in installWeb.stdout
assert 'Existing blockingpage.css detected, not overwriting' in installWeb.stdout
web_directory = Pihole.run('ls -r /var/www/html/pihole').stdout
assert 'index.php' in web_directory
assert 'index.js' in web_directory
assert 'blockingpage.css' in web_directory
def test_installPiholeWeb_already_populated_no_errors(Pihole):
''' confirms all web page assets from Core repo are installed when necessary '''
installWeb = Pihole.run('''
source /opt/pihole/basic-install.sh
mkdir -p /var/www/html/pihole
touch /var/www/html/pihole/index.php
touch /var/www/html/pihole/index.js
touch /var/www/html/pihole/blockingpage.css
installPiholeWeb
''')
assert 'Installing pihole custom index page...' in installWeb.stdout
assert 'No default index.lighttpd.html file found... not backing up' not in installWeb.stdout
assert 'Existing index.php detected, not overwriting' in installWeb.stdout
assert 'index.php missing, replacing...' not in installWeb.stdout
assert 'Existing index.js detected, not overwriting' in installWeb.stdout
assert 'index.js missing, replacing...' not in installWeb.stdout
assert 'Existing blockingpage.css detected, not overwriting' in installWeb.stdout
assert 'blockingpage.css missing, replacing... ' not in installWeb.stdout
web_directory = Pihole.run('ls -r /var/www/html/pihole').stdout
assert 'index.php' in web_directory
assert 'index.js' in web_directory
assert 'blockingpage.css' in web_directory
def test_update_package_cache_success_no_errors(Pihole):
''' confirms package cache was updated without any errors'''
updateCache = Pihole.run('''
source /opt/pihole/basic-install.sh
distro_check
update_package_cache
''')
assert 'Updating local cache of available packages...' in updateCache.stdout
assert 'ERROR' not in updateCache.stdout
assert 'done!' in updateCache.stdout
def test_update_package_cache_failure_no_errors(Pihole):
''' confirms package cache was not updated'''
mock_command('apt-get', {'update':('', '1')}, Pihole)
updateCache = Pihole.run('''
source /opt/pihole/basic-install.sh
distro_check
update_package_cache
''')
assert 'Updating local cache of available packages...' in updateCache.stdout
assert 'ERROR' in updateCache.stdout
assert 'done!' not in updateCache.stdout
def test_FTL_detect_aarch64_no_errors(Pihole):
''' confirms only aarch64 package is downloaded for FTL engine '''
# mock uname to return aarch64 platform
mock_command('uname', {'-m':('aarch64', '0')}, Pihole)
# mock ldd to respond with aarch64 shared library
mock_command('ldd', {'/bin/ls':('/lib/ld-linux-aarch64.so.1', '0')}, Pihole)
detectPlatform = Pihole.run('''
source /opt/pihole/basic-install.sh
FTLdetect
''')
expected_stdout = 'Detected ARM-aarch64 architecture'
assert expected_stdout in detectPlatform.stdout
def test_FTL_detect_armv6l_no_errors(Pihole):
''' confirms only armv6l package is downloaded for FTL engine '''
# mock uname to return armv6l platform
mock_command('uname', {'-m':('armv6l', '0')}, Pihole)
# mock ldd to respond with aarch64 shared library
mock_command('ldd', {'/bin/ls':('/lib/ld-linux-armhf.so.3', '0')}, Pihole)
detectPlatform = Pihole.run('''
source /opt/pihole/basic-install.sh
FTLdetect
''')
expected_stdout = 'Detected ARM-hf architecture (armv6 or lower)'
assert expected_stdout in detectPlatform.stdout
def test_FTL_detect_armv7l_no_errors(Pihole):
''' confirms only armv7l package is downloaded for FTL engine '''
# mock uname to return armv7l platform
mock_command('uname', {'-m':('armv7l', '0')}, Pihole)
# mock ldd to respond with aarch64 shared library
mock_command('ldd', {'/bin/ls':('/lib/ld-linux-armhf.so.3', '0')}, Pihole)
detectPlatform = Pihole.run('''
source /opt/pihole/basic-install.sh
FTLdetect
''')
expected_stdout = 'Detected ARM-hf architecture (armv7+)'
assert expected_stdout in detectPlatform.stdout
def test_FTL_detect_x86_64_no_errors(Pihole):
''' confirms only x86_64 package is downloaded for FTL engine '''
detectPlatform = Pihole.run('''
source /opt/pihole/basic-install.sh
FTLdetect
''')
expected_stdout = 'Detected x86_64 architecture'
assert expected_stdout in detectPlatform.stdout
def test_FTL_detect_unknown_no_errors(Pihole):
''' confirms only generic package is downloaded for FTL engine '''
# mock uname to return generic platform
mock_command('uname', {'-m':('mips', '0')}, Pihole)
detectPlatform = Pihole.run('''
source /opt/pihole/basic-install.sh
FTLdetect
''')
expected_stdout = 'Not able to detect architecture (unknown: mips)'
assert expected_stdout in detectPlatform.stdout
def test_FTL_download_aarch64_no_errors(Pihole):
''' confirms only aarch64 package is downloaded for FTL engine '''
# mock uname to return generic platform
download_binary = Pihole.run('''
source /opt/pihole/basic-install.sh
FTLinstall pihole-FTL-aarch64-linux-gnu
''')
expected_stdout = 'done'
assert expected_stdout in download_binary.stdout
assert 'failed' not in download_binary.stdout
def test_FTL_download_unknown_fails_no_errors(Pihole):
''' confirms unknown binary is not downloaded for FTL engine '''
# mock uname to return generic platform
download_binary = Pihole.run('''
source /opt/pihole/basic-install.sh
FTLinstall pihole-FTL-mips
''')
expected_stdout = 'failed'
assert expected_stdout in download_binary.stdout
assert 'done' not in download_binary.stdout
def test_FTL_binary_installed_and_responsive_no_errors(Pihole):
''' confirms FTL binary is copied and functional in installed location '''
installed_binary = Pihole.run('''
source /opt/pihole/basic-install.sh
FTLdetect
pihole-FTL version
''')
expected_stdout = 'v'
assert expected_stdout in installed_binary.stdout
# def test_FTL_support_files_installed(Pihole):
# ''' confirms FTL support files are installed '''
# support_files = Pihole.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
# Helper functions
def mock_command(script, args, container):
''' Allows for setup of commands we don't really want to have to run for real in unit tests '''
full_script_path = '/usr/local/bin/{}'.format(script)
mock_script = dedent('''\
#!/bin/bash -e
echo "\$0 \$@" >> /var/log/{script}
case "\$1" in'''.format(script=script))
for k, v in args.iteritems():
case = dedent('''
{arg})
echo {res}
exit {retcode}
;;'''.format(arg=k, res=v[0], retcode=v[1]))
mock_script += case
mock_script += dedent('''
esac''')
container.run('''
cat <<EOF> {script}\n{content}\nEOF
chmod +x {script}
rm -f /var/log/{scriptlog}'''.format(script=full_script_path, content=mock_script, scriptlog=script))
def run_script(Pihole, script):
result = Pihole.run(script)
assert result.rc == 0
return result

13
test/test_shellcheck.py Normal file
View File

@@ -0,0 +1,13 @@
import pytest
import testinfra
run_local = testinfra.get_backend(
"local://"
).get_module("Command").run
def test_scripts_pass_shellcheck():
''' Make sure shellcheck does not find anything wrong with our shell scripts '''
shellcheck = "find . -type f \( -name 'update.sh' -o -name 'piholeDebug.sh' \) | while read file; do shellcheck \"$file\"; done;"
results = run_local(shellcheck)
print results.stdout
assert '' == results.stdout