## 🥇 Maza was Top 1 in Hacker News Comments: https://news.ycombinator.com/item?id=22717650 # Maza ad blocking - Like Pi-hole but local and using your operating system demo Simple, native and efficient local advertising blocker. Compatible with macOS and Linux.
maza logo
  • You don't have to install any browser extensions or applications, you just use the tools of your operating system.
  • You update the list of DNS to be blocked with a single command.
  • Opensource.
  • Just bash.
## 🏃‍Run ### 📡 Update database ``` bash maza update ``` ### 🔨 Start ``` bash sudo maza start ``` ### 🛠 Stop ``` bash sudo maza stop ``` ### ⚖️ Status ``` bash maza status ``` ## ⚙️ Install ### 👀 Requirements - **bash** 4.0 or higher - **curl** - Only macOS users, **gsed**: `brew install gnu-sed` Then you do this. ``` bash curl -o maza https://raw.githubusercontent.com/tanrax/maza-ad-blocking/master/maza && chmod +x maza && sudo mv maza /usr/local/bin ``` Optional but recommended, make a backup of your hosts file. ``` bash sudo cp /etc/hosts /etc/hosts.backup ``` ## 🔪 Uninstall ``` bash sudo rm /usr/local/bin/maza && sudo rm -r ~/.maza ``` ## DNSMASQ Unfortunately the hosts file does **not support sub-domains (wildcards)**, which is necessary to correctly filter all DNS. You will **need to install locally a server** for that purpose, Maza supports the **Dnsmasq** format. Here's an example for macOS. ### 1 Install ```bash brew install dnsmasq ``` ### 2 Configure Edit the file. ``` /usr/local/etc/dnsmasq.conf ``` Add the following lines. ``` conf-file=(your user path)/.maza/dnsmasq.conf ``` Start DNSMASQ. ```bash sudo brew services stop dnsmasq sudo brew services start dnsmasq ``` ### 3 Tell your OS to use your DNS server Delete the list of macOS DNS servers and add the 3 addresses. The first one will be your local server, and the other 2 belong to OpenDNS, which you can use any other. ```bash 127.0.0.1 208.67.222.222 208.67.220.220 ``` network macos Refresh your DNS cache ```bash sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder ``` ### Bonus: dnsmasq is in charge of solving all DNS Add in confiigure file: `/usr/local/etc/dnsmasq.conf` ``` no-resolv server=208.67.222.222 server=208.67.220.220 ``` ### Bonus: dnsmasq have test domains If you want all your `.localhost` domains, for example, point to localhost add in confiigure file: `/usr/local/etc/dnsmasq.conf` ``` address=/.localhost/127.0.0.1 ``` ## ⚠️ CAUTION - Only compatible with Linux and macOS operating systems. - Remember to make a backup copy of `/etc/hosts` in case of unforeseen circumstances, neither the project nor its author will be responsible for any possible repercussions derived from not carrying out this action.