From e2d02fc26698dfd4ed152824332fd15db36348ba Mon Sep 17 00:00:00 2001 From: HeliusMagnum <82977614+HeliusMagnum@users.noreply.github.com> Date: Thu, 12 Jun 2025 01:08:34 -0400 Subject: [PATCH 1/6] Update unbound.md to fix DNSSEC validation domain error Update DNSSEC validation domains in the guide to resolve the misconfiguration affecting fail01.dnssec.works (status: NOERROR) Fixes #1251 (Unbound negative test validation fails) Signed-off-by: HeliusMagnum <82977614+HeliusMagnum@users.noreply.github.com> --- docs/guides/dns/unbound.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/guides/dns/unbound.md b/docs/guides/dns/unbound.md index 5aa354830..9aea4c623 100644 --- a/docs/guides/dns/unbound.md +++ b/docs/guides/dns/unbound.md @@ -168,11 +168,11 @@ The first query may be quite slow, but subsequent queries, also to other domains You can test DNSSEC validation using ```bash -dig fail01.dnssec.works @127.0.0.1 -p 5335 -dig dnssec.works @127.0.0.1 -p 5335 +dig bogus.nlnetlabs.nl @127.0.0.1 -p 5335 +dig +ad cloudflare.com @127.0.0.1 -p 5335 ``` -The first command should give a status report of `SERVFAIL` and no IP address. The second should give `NOERROR` plus an IP address. +The first command should give a status report of `SERVFAIL` and no IP address. The second should give `NOERROR` plus an IP address in addition to a 'ad' in the 'flags:'. ### Configure Pi-hole From a965a1c0580f5d95237e7c27ff67a4e73fd8f126 Mon Sep 17 00:00:00 2001 From: HeliusMagnum <82977614+HeliusMagnum@users.noreply.github.com> Date: Thu, 12 Jun 2025 01:10:17 -0400 Subject: [PATCH 2/6] Update unbound.md fix formatting issue Signed-off-by: HeliusMagnum <82977614+HeliusMagnum@users.noreply.github.com> --- docs/guides/dns/unbound.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/dns/unbound.md b/docs/guides/dns/unbound.md index 9aea4c623..b1a5c2918 100644 --- a/docs/guides/dns/unbound.md +++ b/docs/guides/dns/unbound.md @@ -172,7 +172,7 @@ dig bogus.nlnetlabs.nl @127.0.0.1 -p 5335 dig +ad cloudflare.com @127.0.0.1 -p 5335 ``` -The first command should give a status report of `SERVFAIL` and no IP address. The second should give `NOERROR` plus an IP address in addition to a 'ad' in the 'flags:'. +The first command should give a status report of `SERVFAIL` and no IP address. The second should give `NOERROR` plus an IP address in addition to a `ad` in the `flags:` section. ### Configure Pi-hole From 419117c09d8a1975968e8f7b07dbc474b37a881d Mon Sep 17 00:00:00 2001 From: HeliusMagnum <82977614+HeliusMagnum@users.noreply.github.com> Date: Thu, 12 Jun 2025 01:15:05 -0400 Subject: [PATCH 3/6] Update unbound.md expand on the ad flag in the DNSSEC validation Signed-off-by: HeliusMagnum <82977614+HeliusMagnum@users.noreply.github.com> --- docs/guides/dns/unbound.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/dns/unbound.md b/docs/guides/dns/unbound.md index b1a5c2918..328a5b586 100644 --- a/docs/guides/dns/unbound.md +++ b/docs/guides/dns/unbound.md @@ -172,7 +172,7 @@ dig bogus.nlnetlabs.nl @127.0.0.1 -p 5335 dig +ad cloudflare.com @127.0.0.1 -p 5335 ``` -The first command should give a status report of `SERVFAIL` and no IP address. The second should give `NOERROR` plus an IP address in addition to a `ad` in the `flags:` section. +The first command should give a status report of `SERVFAIL` and no IP address. The second should give `NOERROR` plus an IP address in addition to a `ad` in the `flags:` section. The `ad` signifies (Authentic Data), indicating the DNS response has been authenticated and validated using DNSSEC. ### Configure Pi-hole From b5e9f122906f020d645a16480b514c2672dc65e9 Mon Sep 17 00:00:00 2001 From: HeliusMagnum <82977614+HeliusMagnum@users.noreply.github.com> Date: Mon, 14 Jul 2025 01:41:47 -0400 Subject: [PATCH 4/6] Revert "Merge branch 'pi-hole:master' into master" This reverts commit d121aad50f53e9d2da099e8a33315fb8031573bb, reversing changes made to 745d6c56347028372bfdae82c62edc8a645c0642. --- docs/docker/tips-and-tricks.md | 71 ---------------------------------- docs/guides/dns/unbound.md | 2 +- mkdocs.yml | 1 - 3 files changed, 1 insertion(+), 73 deletions(-) delete mode 100644 docs/docker/tips-and-tricks.md diff --git a/docs/docker/tips-and-tricks.md b/docs/docker/tips-and-tricks.md deleted file mode 100644 index c05613bc2..000000000 --- a/docs/docker/tips-and-tricks.md +++ /dev/null @@ -1,71 +0,0 @@ -## Disable systemd-resolved port 53 - -Modern releases of Ubuntu (17.10+) and Fedora (33+) include [`systemd-resolved`](http://manpages.ubuntu.com/manpages/bionic/man8/systemd-resolved.service.8.html) which is configured by default to implement a caching DNS stub resolver. This will prevent pi-hole from listening on port 53. - -The stub resolver should be disabled with: - -```bash -sudo sh -c 'mkdir -p /etc/systemd/resolved.conf.d && printf "[Resolve]\nDNSStubListener=no\n" | tee /etc/systemd/resolved.conf.d/no-stub.conf' -``` - -This will not change the nameserver settings, which point to the stub resolver thus preventing DNS resolution. Change the `/etc/resolv.conf` symlink to point to `/run/systemd/resolve/resolv.conf`, which is automatically updated to follow the ubuntu system's [`netplan`](https://netplan.io/) or fedora system's [`sysconfig`](https://docs.fedoraproject.org/en-US/fedora-coreos/sysconfig-network-configuration): - -```bash -sudo sh -c 'rm -f /etc/resolv.conf && ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf' -``` - -After making these changes, you should restart systemd-resolved using: - -```bash -systemctl restart systemd-resolved -``` - -Note that it is also possible to disable `systemd-resolved` entirely. However, this can cause problems with name resolution in VPNs ([see bug report](https://bugs.launchpad.net/network-manager/+bug/1624317)). -It also disables the functionality of netplan since systemd-resolved is used as the default renderer ([see `man netplan`](http://manpages.ubuntu.com/manpages/bionic/man5/netplan.5.html#description)). -If you choose to disable the service, you will need to manually set the nameservers, for example by creating a new `/etc/resolv.conf`. - -Users of older Ubuntu releases (circa 17.04) will need to disable `dnsmasq`. - -## Set Pi-hole as System DNS Server - -Once pi-hole is installed, you'll want to configure your clients to use it ([see here](https://discourse.pi-hole.net/t/how-do-i-configure-my-devices-to-use-pi-hole-as-their-dns-server/245)). If you used the symlink above, your docker host will either use whatever is served by DHCP, or whatever static setting you've configured. If you want to explicitly set your docker host's nameservers you can edit the netplan(s) found at `/etc/netplan`, then run `sudo netplan apply`. - - -!!! warning "**Important: Catch-22 situation**" - When Pi-hole is used as the host's DNS server and Pi-hole is down, the host will lack DNS resolution. This can lead to situation where you might be unable to spin-up the Pi-hole container. - -Example netplan: - -```yaml -network: - ethernets: - ens160: - dhcp4: true - dhcp4-overrides: - use-dns: false - nameservers: - addresses: [127.0.0.1] - version: 2 -``` - -For Fedora users, you can run the following commands to edit the sysconfig(s) found at `/etc/NetworkManager/system-connections` via nmcli. - -Example sysconfig nmcli commands: - -1. Add Connection: - - ```bash - nmcli connection add type ethernet ifname ens160 con-name ens160-night autoconnect yes - ``` - -2. Configure DNS: - - ```bash - nmcli connection modify ens160-night ipv4.method auto ipv4.ignore-auto-dns yes ipv4.dns "127.0.0.1" - ``` - -3. Activate Connection: - - ```bash - nmcli connection up ens160-night - ``` diff --git a/docs/guides/dns/unbound.md b/docs/guides/dns/unbound.md index a51222220..328a5b586 100644 --- a/docs/guides/dns/unbound.md +++ b/docs/guides/dns/unbound.md @@ -4,7 +4,7 @@ Pi-hole includes a caching and *forwarding* DNS server, now known as *FTL*DNS. After applying the blocking lists, it forwards requests made by the clients to configured upstream DNS server(s). However, as has been mentioned by several users in the past, this leads to some privacy concerns as it ultimately raises the question: *Whom can you trust?* Recently, more and more small (and not so small) DNS upstream providers have appeared on the market, advertising free and private DNS service, but how can you know that they keep their promises? Right, you can't. -Furthermore, from the point of an attacker, the DNS servers of larger providers are very worthwhile targets, as they only need to poison one DNS server, but millions of users might be affected. Instead of your bank's actual IP address, you could be sent to a phishing site hosted on some island. This scenario has [already happened](https://www.zdnet.com/article/dns-cache-poisoning-attacks-exploited-in-the-wild/) and it is likely to happen again... +Furthermore, from the point of an attacker, the DNS servers of larger providers are very worthwhile targets, as they only need to poison one DNS server, but millions of users might be affected. Instead of your bank's actual IP address, you could be sent to a phishing site hosted on some island. This scenario has [already happened](https://www.zdnet.com/article/dns-cache-poisoning-attacks-exploited-in-the-wild/) and it isn't unlikely to happen again... When you operate your own (tiny) recursive DNS server, then the likeliness of getting affected by such an attack is greatly reduced. diff --git a/mkdocs.yml b/mkdocs.yml index a289100fc..60a0af602 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -168,7 +168,6 @@ nav: - 'Upgrading from v5.x': docker/upgrading/v5-v6.md - 'Building': docker/build-image.md - 'DHCP': docker/DHCP.md - - 'Tips and Tricks': docker/tips-and-tricks.md - 'Contributing': - 'Contributing': guides/github/index.md - 'Developer Certificate of Origin (DCO)': guides/github/dco.md From 644021e9d0199e486a0093a5e86a3af5c9813eb1 Mon Sep 17 00:00:00 2001 From: HeliusMagnum <82977614+HeliusMagnum@users.noreply.github.com> Date: Mon, 14 Jul 2025 01:41:54 -0400 Subject: [PATCH 5/6] Revert "Merge branch 'master' into master" This reverts commit 745d6c56347028372bfdae82c62edc8a645c0642, reversing changes made to 0460891a5e44ef8f02dc102e4d7f7709b4a880b3. --- .editorconfig | 1 - .markdownlint.json | 3 +- package-lock.json | 143 +++++++++++++++++++++------------------------ package.json | 4 +- 4 files changed, 68 insertions(+), 83 deletions(-) diff --git a/.editorconfig b/.editorconfig index c5cd13007..41e907f68 100644 --- a/.editorconfig +++ b/.editorconfig @@ -17,7 +17,6 @@ tab_width = 2 [*.md] tab_width = 2 -trim_trailing_whitespace = false [*.json] indent_size = 2 diff --git a/.markdownlint.json b/.markdownlint.json index f9cad4ae0..7bcb686c3 100644 --- a/.markdownlint.json +++ b/.markdownlint.json @@ -36,6 +36,5 @@ "MD045": false, "MD046": { "style": "fenced" - }, - "MD059": false + } } diff --git a/package-lock.json b/package-lock.json index a21d6cbde..d89f0e0fb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,8 +9,8 @@ "version": "1.0.0", "license": "CC-BY-SA-4.0", "devDependencies": { - "linkinator": "^6.1.4", - "markdownlint-cli2": "0.18.1" + "linkinator": "^6.1.2", + "markdownlint-cli2": "0.17.2" } }, "node_modules/@isaacs/cliui": { @@ -307,9 +307,9 @@ } }, "node_modules/decode-named-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", - "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "dev": true, "license": "MIT", "dependencies": { @@ -553,18 +553,18 @@ } }, "node_modules/globby": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.1.0.tgz", - "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, "license": "MIT", "dependencies": { "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.3", - "ignore": "^7.0.3", - "path-type": "^6.0.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", "slash": "^5.1.0", - "unicorn-magic": "^0.3.0" + "unicorn-magic": "^0.1.0" }, "engines": { "node": ">=18" @@ -574,9 +574,9 @@ } }, "node_modules/htmlparser2": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-10.0.0.tgz", - "integrity": "sha512-TwAZM+zE5Tq3lrEHvOlvwgj1XLWQCtaaibSN11Q+gGBAS7Y1uZSWwXXRe4iF6OXnaq1riyQAPFOBtYc77Mxq0g==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -589,21 +589,8 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.2.1", - "entities": "^6.0.0" - } - }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, "node_modules/https-proxy-agent": { @@ -621,9 +608,9 @@ } }, "node_modules/ignore": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz", - "integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { @@ -778,9 +765,9 @@ "license": "MIT" }, "node_modules/katex": { - "version": "0.16.22", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.22.tgz", - "integrity": "sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==", + "version": "0.16.21", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.21.tgz", + "integrity": "sha512-XvqR7FgOHtWupfMiigNzmh+MgUVmDGU2kXZm899ZkPfcuoPuFxyHmXsgATDpFZDAXCI8tvinaVcDo8PIIJSo4A==", "dev": true, "funding": [ "https://opencollective.com/katex", @@ -805,9 +792,9 @@ } }, "node_modules/linkinator": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/linkinator/-/linkinator-6.1.4.tgz", - "integrity": "sha512-7DXjwFiJ6rqye8OawwWi/CyDdKdIb69HLCbPhRI6tGSNnGruWFw8qucNsoWFXybel/I960UujFHefjvprhhvYA==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/linkinator/-/linkinator-6.1.2.tgz", + "integrity": "sha512-PndSrQe21Hf4sn2vZldEzJmD0EUJbIsEy4jcZLcHd6IZfQ6rC6iv+Fwo666TWM9DcXjbCrHpxnVX6xaGrcJ/eA==", "dev": true, "license": "MIT", "dependencies": { @@ -815,7 +802,7 @@ "escape-html": "^1.0.3", "gaxios": "^6.0.0", "glob": "^10.3.10", - "htmlparser2": "^10.0.0", + "htmlparser2": "^9.0.0", "marked": "^13.0.0", "meow": "^13.0.0", "mime": "^4.0.0", @@ -855,40 +842,40 @@ } }, "node_modules/markdownlint": { - "version": "0.38.0", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.38.0.tgz", - "integrity": "sha512-xaSxkaU7wY/0852zGApM8LdlIfGCW8ETZ0Rr62IQtAnUMlMuifsg09vWJcNYeL4f0anvr8Vo4ZQar8jGpV0btQ==", + "version": "0.37.4", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.37.4.tgz", + "integrity": "sha512-u00joA/syf3VhWh6/ybVFkib5Zpj2e5KB/cfCei8fkSRuums6nyisTWGqjTWIOFoFwuXoTBQQiqlB4qFKp8ncQ==", "dev": true, "license": "MIT", "dependencies": { - "micromark": "4.0.2", - "micromark-core-commonmark": "2.0.3", - "micromark-extension-directive": "4.0.0", + "markdown-it": "14.1.0", + "micromark": "4.0.1", + "micromark-core-commonmark": "2.0.2", + "micromark-extension-directive": "3.0.2", "micromark-extension-gfm-autolink-literal": "2.1.0", "micromark-extension-gfm-footnote": "2.1.0", - "micromark-extension-gfm-table": "2.1.1", + "micromark-extension-gfm-table": "2.1.0", "micromark-extension-math": "3.1.0", - "micromark-util-types": "2.0.2" + "micromark-util-types": "2.0.1" }, "engines": { - "node": ">=20" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/markdownlint-cli2": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.18.1.tgz", - "integrity": "sha512-/4Osri9QFGCZOCTkfA8qJF+XGjKYERSHkXzxSyS1hd3ZERJGjvsUao2h4wdnvpHp6Tu2Jh/bPHM0FE9JJza6ng==", + "version": "0.17.2", + "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.17.2.tgz", + "integrity": "sha512-XH06ZOi8wCrtOSSj3p8y3yJzwgzYOSa7lglNyS3fP05JPRzRGyjauBb5UvlLUSCGysMmULS1moxdRHHudV+g/Q==", "dev": true, "license": "MIT", "dependencies": { - "globby": "14.1.0", + "globby": "14.0.2", "js-yaml": "4.1.0", "jsonc-parser": "3.3.1", - "markdown-it": "14.1.0", - "markdownlint": "0.38.0", + "markdownlint": "0.37.4", "markdownlint-cli2-formatter-default": "0.0.5", "micromatch": "4.0.8" }, @@ -896,7 +883,7 @@ "markdownlint-cli2": "markdownlint-cli2-bin.mjs" }, "engines": { - "node": ">=20" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/DavidAnson" @@ -959,9 +946,9 @@ } }, "node_modules/micromark": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", - "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz", + "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==", "dev": true, "funding": [ { @@ -995,9 +982,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", - "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz", + "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==", "dev": true, "funding": [ { @@ -1030,9 +1017,9 @@ } }, "node_modules/micromark-extension-directive": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-4.0.0.tgz", - "integrity": "sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", + "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", "dev": true, "license": "MIT", "dependencies": { @@ -1088,9 +1075,9 @@ } }, "node_modules/micromark-extension-gfm-table": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", - "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz", + "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", "dev": true, "license": "MIT", "dependencies": { @@ -1478,9 +1465,9 @@ "license": "MIT" }, "node_modules/micromark-util-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", - "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz", + "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==", "dev": true, "funding": [ { @@ -1633,13 +1620,13 @@ } }, "node_modules/path-type": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-6.0.0.tgz", - "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1925,9 +1912,9 @@ "license": "MIT" }, "node_modules/unicorn-magic": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", - "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index 728270bf5..637727c16 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "start": "npm run serve" }, "devDependencies": { - "linkinator": "^6.1.4", - "markdownlint-cli2": "0.18.1" + "linkinator": "^6.1.2", + "markdownlint-cli2": "0.17.2" } } From a402a1005204c1f42e6caee74656ce04e40eba6e Mon Sep 17 00:00:00 2001 From: HeliusMagnum <82977614+HeliusMagnum@users.noreply.github.com> Date: Mon, 14 Jul 2025 01:42:00 -0400 Subject: [PATCH 6/6] Revert "Merge branch 'master' into master" This reverts commit 0460891a5e44ef8f02dc102e4d7f7709b4a880b3, reversing changes made to 419117c09d8a1975968e8f7b07dbc474b37a881d. --- docs/ftldns/webserver.md | 40 ---------------------------------------- mkdocs.yml | 2 +- requirements.txt | 2 +- 3 files changed, 2 insertions(+), 42 deletions(-) delete mode 100644 docs/ftldns/webserver.md diff --git a/docs/ftldns/webserver.md b/docs/ftldns/webserver.md deleted file mode 100644 index 49e55256d..000000000 --- a/docs/ftldns/webserver.md +++ /dev/null @@ -1,40 +0,0 @@ -### FTL's Embedded Webserver and Lua Server Pages - -FTL comes with the embedded webserver [CivetWeb](https://github.com/civetweb/civetweb) supporting Lua server pages (LSP). This means you can write dynamic web content directly using Lua scripts, similar to how PHP is used in traditional web development. Lua offers several advantages over PHP in the embedded context: - -- **Lightweight and Fast:** Lua has a very small memory footprint and is designed for high performance, making it ideal for our purposes. -- **Easy Integration:** Lua is easy to embed and extend, allowing seamless integration with FTL. We can easily bundle any Lua libraries we need, and they can be used directly in the webserver. No extra tools or external dependencies are required. -- **Simplicity:** Lua's syntax is straightforward and easy to learn, reducing the complexity of writing and maintaining server-side scripts. -- **Security:** Running Lua scripts within the FTL webserver provides a controlled environment, minimizing potential security risks compared to running a full PHP interpreter. - ---- - -You can use the webserver to serve static files, dynamic content, or even custom HTTP responses (see the following examples). The webserver is configured through `pihole.toml` and can be accessed at `https://pi.hole/admin/`. Serving files outside of the webserver's home directory (`admin/`) is disabled by default for security reasons. It can be enabled by setting `webserver.serve_all` to `true`. - -### Example 1: Custom HTTP status code - -Create a file like - -``` plain -HTTP/1.1 204 No Content -Connection: close -Cache-Control: max-age=0, must-revalidate - -``` - -Two important things here: You need to save it using "MS-DOS formatting" (`\r\n` line endings) and there needs to be a single trailing line. - -### Example 2: Regular page but manual headers - -You could also use it for "regular" pages, e.g., - -``` plain -HTTP/1.0 200 OK -Content-Type: text/html - -
-= 1+1 ?>
- -``` - -which will print an empty page with "2" on it. diff --git a/mkdocs.yml b/mkdocs.yml index 60a0af602..e8084aab4 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -142,7 +142,6 @@ nav: - 'Blocking mode': ftldns/blockingmode.md - 'Privacy levels': ftldns/privacylevels.md - 'dnsmasq warnings': ftldns/dnsmasq_warn.md - - 'Webserver': ftldns/webserver.md - 'Advanced': - 'Install from source': ftldns/compile.md - 'Signals': 'ftldns/signals.md' @@ -247,6 +246,7 @@ plugins: - redirects: redirect_maps: 'ftldns/database.md': database/index.md + 'ftldns/regex/index.md': ftldns/regex/overview.md 'main/presentations.md': index.md 'main/prerequesites.md': main/prerequisites.md 'guides/unbound.md': guides/dns/unbound.md diff --git a/requirements.txt b/requirements.txt index f738d3ca9..9f7a99f3d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ mkdocs==1.6.1 mkdocs-git-revision-date-localized-plugin==1.4.7 -mkdocs-material==9.6.15 +mkdocs-material==9.6.14 mkdocs-redirects==1.2.2 markdown-include==0.8.1