A comprehensive ad-blocking solution that combines network-wide blocking with a custom browser extension to block ads everywhere.
"One for All" is an all-in-one ad-blocking tool designed to provide maximum protection against ads, trackers, and malicious domains. It integrates seamlessly with AdGuard Home to block ads at the DNS level while adding additional layers of protection through system-level and browser-level blocking.
- Network-Wide Blocking: Installs and configures AdGuard Home as a service to block ads at the DNS level.
- Hosts File Updates: Automatically updates the system's
hosts
file with ad-serving domains for additional blocking. - DNS Configuration: Configures DNS settings to use AdGuard DNS for enhanced privacy and ad blocking.
- Custom Browser Extension: Includes a lightweight browser extension to block ads directly in the browser.
- User-Friendly Setup: Provides a GUI wizard to simplify the installation and configuration process.
- Python 3.x installed on your system.
- Elevated privileges (run as Administrator on Windows or with
sudo
on Linux/macOS). - Git installed (optional, for cloning the repository).
- Clone this repository:
git clone https://github.com/<your-username>/one-for-all.git cd one-for-all
- Install required dependencies:
pip install requests
- Run the script:
On Windows, Linux/macOS:
python one_for_all.py sudo python3 one_for_all.py
- Follow the on-screen instructions provided by the GUI wizard.
Once installed:
Access AdGuard Home's web interface at http://localhost:3000 to configure additional settings. Use the custom browser extension by loading it as an unpacked extension in your browser.
This project uses the following third-party software:
AdGuard Home : A network-wide ad blocker and DNS server. Repository: https://github.com/AdguardTeam/AdGuardHome License: GNU General Public License v3.0 (GPLv3) EasyList : A popular ad-blocking filter list. Source: https://easylist.to/easylist/easylist.txt
Contributions are welcome! If you'd like to contribute to this project, please follow these steps:
Create a new branch (git checkout -b feature/YourFeatureName). Commit your changes (git commit -m "Add YourFeatureName"). Push to the branch (git push origin feature/YourFeatureName). Open a pull request. Please ensure your code adheres to the existing style and includes appropriate documentation.