From e47aa239bb83ec1767383163f406dc07eb089560 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sat, 16 May 2020 21:13:33 +0200 Subject: [PATCH] :fire: Remove Pi-hole add-on --- .hassio-addons.yml | 4 --- README.md | 27 +--------------- pi-hole/CHANGELOG.md | 20 ------------ pi-hole/README.md | 61 ------------------------------------ pi-hole/config.json | 72 ------------------------------------------- pi-hole/icon.png | Bin 4165 -> 0 bytes pi-hole/logo.png | Bin 7168 -> 0 bytes 7 files changed, 1 insertion(+), 183 deletions(-) delete mode 100644 pi-hole/CHANGELOG.md delete mode 100644 pi-hole/README.md delete mode 100644 pi-hole/config.json delete mode 100644 pi-hole/icon.png delete mode 100644 pi-hole/logo.png diff --git a/.hassio-addons.yml b/.hassio-addons.yml index 82caa515..84b7427f 100644 --- a/.hassio-addons.yml +++ b/.hassio-addons.yml @@ -117,10 +117,6 @@ addons: repository: hassio-addons/addon-phpmyadmin target: phpmyadmin image: hassioaddons/phpmyadmin-{arch} - pi-hole: - repository: hassio-addons/addon-pi-hole - target: pi-hole - image: hassioaddons/pi-hole-{arch} plex: repository: hassio-addons/addon-plex target: plex diff --git a/README.md b/README.md index 3914a348..294fd00c 100644 --- a/README.md +++ b/README.md @@ -402,20 +402,6 @@ Flow-based programming for the Internet of Things [:books: Node-RED add-on documentation][addon-doc-node-red] -### ✓ [Pi-hole (DEPRECATED!)][addon-pi-hole] - -![Latest Version][pi-hole-version-shield] -![Supports armhf Architecture][pi-hole-armhf-shield] -![Supports armv7 Architecture][pi-hole-armv7-shield] -![Supports aarch64 Architecture][pi-hole-aarch64-shield] -![Supports amd64 Architecture][pi-hole-amd64-shield] -![Supports i386 Architecture][pi-hole-i386-shield] -![Docker Pulls][pi-hole-pulls-shield] - -The Pi-hole add-on is deprecated, use the AdGuard Home add-on instead. - -[:books: Pi-hole (DEPRECATED!) add-on documentation][addon-doc-pi-hole] - ### ✓ [Plex Media Server][addon-plex] ![Latest Version][plex-version-shield] @@ -719,7 +705,6 @@ on the correct GitHub repository matching the add-on. - [Open an issue for the add-on: Network UPS Tools][nut-issue] - [Open an issue for the add-on: Nginx Proxy Manager][nginxproxymanager-issue] - [Open an issue for the add-on: Node-RED][node-red-issue] -- [Open an issue for the add-on: Pi-hole (DEPRECATED!)][pi-hole-issue] - [Open an issue for the add-on: Plex Media Server][plex-issue] - [Open an issue for the add-on: Portainer][portainer-issue] - [Open an issue for the add-on: SQLite Web][sqlite-web-issue] @@ -1045,16 +1030,6 @@ SOFTWARE. [node-red-armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg [node-red-armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg [node-red-i386-shield]: https://img.shields.io/badge/i386-yes-green.svg -[addon-pi-hole]: https://github.com/hassio-addons/addon-pi-hole/tree/v4.1.2 -[addon-doc-pi-hole]: https://github.com/hassio-addons/addon-pi-hole/blob/v4.1.2/README.md -[pi-hole-issue]: https://github.com/hassio-addons/addon-pi-hole/issues -[pi-hole-version-shield]: https://img.shields.io/badge/version-v4.1.2-blue.svg -[pi-hole-pulls-shield]: https://img.shields.io/docker/pulls/hassioaddons/pi-hole-armhf.svg -[pi-hole-aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg -[pi-hole-amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg -[pi-hole-armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg -[pi-hole-armv7-shield]: https://img.shields.io/badge/armv7-yes-green.svg -[pi-hole-i386-shield]: https://img.shields.io/badge/i386-yes-green.svg [addon-plex]: https://github.com/hassio-addons/addon-plex/tree/v2.3.2 [addon-doc-plex]: https://github.com/hassio-addons/addon-plex/blob/v2.3.2/README.md [plex-issue]: https://github.com/hassio-addons/addon-plex/issues @@ -1251,4 +1226,4 @@ SOFTWARE. [maintenance-shield]: https://img.shields.io/maintenance/yes/2020.svg [project-stage-shield]: https://img.shields.io/badge/project%20stage-production%20ready-brightgreen.svg [reddit]: https://reddit.com/r/homeassistant -[semver]: http://semver.org/spec/v2.0.0.html \ No newline at end of file +[semver]: http://semver.org/spec/v2.0.0.html diff --git a/pi-hole/CHANGELOG.md b/pi-hole/CHANGELOG.md deleted file mode 100644 index f8062103..00000000 --- a/pi-hole/CHANGELOG.md +++ /dev/null @@ -1,20 +0,0 @@ -[Full Changelog][changelog] - -⚠️ This add-on is now deprecated and will not receive any maintenance beyond this point. - -Please consider moving to the [AdGuard Home](https://github.com/hassio-addons/addon-adguard-home) add-on. - -### :hammer: Changes - -- :arrow_up: Upgrades add-on base image to v7.0.5 -- :arrow_up: Upgrades gcc to 9.2.0-r4 -- :arrow_up: Upgrades musl-dev to 1.1.24-r2 -- :arrow_up: Upgrades php7 to 7.3.16-r0 -- :arrow_up: Upgrades Pi-hole AdminLTE to v4.3.3 -- :warning: Adds deprecation notices - -[changelog]: https://github.com/hassio-addons/addon-pi-hole/compare/v4.1.1...v4.1.2 - -Questions? Join our Discord server! https://discord.me/hassioaddons -Enjoying my add-ons? Consider supporting my work: -https://github.com/sponsors/frenck or https://patreon.com/frenck \ No newline at end of file diff --git a/pi-hole/README.md b/pi-hole/README.md deleted file mode 100644 index ded8ea2c..00000000 --- a/pi-hole/README.md +++ /dev/null @@ -1,61 +0,0 @@ -# Home Assistant Community Add-on: Pi-hole - -[![Release][release-shield]][release] ![Project Stage][project-stage-shield] ![Project Maintenance][maintenance-shield] - -[![Discord][discord-shield]][discord] [![Community Forum][forum-shield]][forum] - -[![Sponsor Frenck via GitHub Sponsors][github-sponsors-shield]][github-sponsors] - -[![Support Frenck on Patreon][patreon-shield]][patreon] - -Network-wide ad blocking - -## Deprecation warning - -**This add-on is in a deprecated state!** - -The Pi-hole add-on is now deprecated and will no longer be supported, maintained -and will not receive future updates or fixes. - -Pi-hole used to be a great solution to filter network traffic, but it has been -a challenge to keep/get it in a working state as an add-on. - -Meanwhile, the AdGuard team published an alternative: -[AdGuard Home](https://github.com/hassio-addons/addon-adguard-home). - -AdGuard Home as surpassed Pi-hole in terms of capabilities, features, -and stability, and Home Assistant provides a good integration with AdGuard. -Above all, the AdGuard Home team has been supportive in developing the add-on. - -For those reasons, it is no longer viable to keep maintaining the Pi-hole -add-on, which has been problematic at best. - -We strongly recommend migrating to the AdGuard Home add-on, which is available -in the add-on store. - -## About - -[Pi-hole][pi-hole] is an advertising-aware DNS- and web server, meant to be run -on a dedicated Raspberry Pi connected to your home network. Pi-hole lets you -block advertisements for every device that connects to your network without the -need for any client-side software. - -This add-on is a port of Pi-hole to be able to run on Home Assistant and -is based on Alpine Linux and is using Docker. - -[Click here for the full documentation][docs] - -[discord-shield]: https://img.shields.io/discord/478094546522079232.svg -[discord]: https://discord.me/hassioaddons -[docs]: https://github.com/hassio-addons/addon-pi-hole/blob/v4.1.2/README.md -[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg -[forum]: https://community.home-assistant.io/t/home-assistant-community-add-on-pi-hole/33817?u=frenck -[github-sponsors-shield]: https://frenck.dev/wp-content/uploads/2019/12/github_sponsor.png -[github-sponsors]: https://github.com/sponsors/frenck -[maintenance-shield]: https://img.shields.io/maintenance/yes/2020.svg -[patreon-shield]: https://frenck.dev/wp-content/uploads/2019/12/patreon.png -[patreon]: https://www.patreon.com/frenck -[pi-hole]: https://pi-hole.net/ -[project-stage-shield]: https://img.shields.io/badge/project%20stage-%20!%20DEPRECATED%20%20%20!-ff0000.svg -[release-shield]: https://img.shields.io/badge/version-v4.1.2-blue.svg -[release]: https://github.com/hassio-addons/addon-pi-hole/tree/v4.1.2 \ No newline at end of file diff --git a/pi-hole/config.json b/pi-hole/config.json deleted file mode 100644 index afa07b54..00000000 --- a/pi-hole/config.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "name": "Pi-hole (DEPRECATED!)", - "stage": "deprecated", - "version": "4.1.2", - "slug": "pi-hole", - "description": "The Pi-hole add-on is deprecated, use the AdGuard Home add-on instead.", - "url": "https://github.com/hassio-addons/addon-pi-hole", - "webui": "[PROTO:ssl]://[HOST]:[PORT:4865]", - "ingress": true, - "ingress_port": 61478, - "panel_icon": "mdi:pi-hole", - "startup": "system", - "arch": [ - "aarch64", - "amd64", - "armhf", - "armv7", - "i386" - ], - "ports": { - "53/udp": 53, - "80/tcp": null, - "4865/tcp": 4865 - }, - "ports_description": { - "53/udp": "DNS server port", - "80/tcp": "Web interface (Not required for Ingress)", - "4865/tcp": "API endpoint (For HA integration)" - }, - "boot": "auto", - "host_network": true, - "hassio_api": true, - "hassio_role": "default", - "auth_api": true, - "privileged": [ - "NET_ADMIN" - ], - "map": [ - "config", - "ssl" - ], - "options": { - "update_lists_on_start": false, - "ssl": true, - "certfile": "fullchain.pem", - "keyfile": "privkey.pem", - "interface": "", - "ipv6": true, - "ipv4_address": "", - "ipv6_address": "", - "hosts": [] - }, - "schema": { - "log_level": "list(trace|debug|info|notice|warning|error|fatal)?", - "update_lists_on_start": "bool", - "ssl": "bool", - "certfile": "str", - "keyfile": "str", - "interface": "str", - "ipv6": "bool", - "ipv4_address": "str", - "ipv6_address": "str", - "hosts": [ - { - "name": "str", - "ip": "match(((^\\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\\s*$)|(^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$)))" - } - ], - "leave_front_door_open": "bool?" - }, - "image": "hassioaddons/pi-hole-{arch}" -} \ No newline at end of file diff --git a/pi-hole/icon.png b/pi-hole/icon.png deleted file mode 100644 index 1a1b4d04d05509902a2d8369170b1b9b396acce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4165 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 JDnm-t{{SZEUXuU- diff --git a/pi-hole/logo.png b/pi-hole/logo.png deleted file mode 100644 index b63eee7fbbadb40f603cd061c12550100ad85a7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7168 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