What's new

AdGuardHome AdGuardHome New Release's 2023

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

SomeWhereOverTheRainBow

Part of the Furniture
Release v1.6.1

I just wanted to take the time to let all Adguardhome Users here know, I pushed an update to the AMAGHI so that the AdGuardHome installed will utilize some major memory optimization improvements. The new update now sets the GOMEMLIMIT GOGC values as apart of environment variables for runtime. Otherwise, AdGuardHome does not limit the amount of memory it grabs to update lists or perform tasks as a trade off to limiting the CPU cycles per trash collection that AdGuardHome uses. The tradeoff to the memory optimization improvement is that AdGuardHome will require to use more CPU when processing lists and performing tasks. I think this is a fair trade off to prevent AdGuardHome lists updates from causing a OOM situation on the router. For AdGuardHome users, it is still recommended to use a SWAP. The only improvement users will experience in this update is reduced memory consumption when processing lists (and performing other tasks on the adguardhome webui). I also added a way for the installer to always detect the correct Bind port adguardhome is using, whether the user changed it or not. The default install Webui bind port will remain the same; however, if @Viktor Jaep decides to change his to 3000 or 443, it will display the new bind port address in the installer run time properly to prevent user confusion down the road.

Special Thanks to @chongnt for helping test the memory improvements!


My tests include using my 3mil+ full blocklists in AGH.

1685044472946.png


First of all, before the memory optimizations I was not even able to load all these lists without being hit with ERRORS in the AdGuardHome WebUI.

Here is what CPU/memory usage graphs show.

1685044556372.png


1685044593023.png


Code:
admin@RT-AX88U_Pro-29B8:/tmp/home/root# grep Vm  /proc/`pidof AdGuardHome`/status
VmPeak:  1510796 kB
VmSize:  1510796 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:    392204 kB
VmRSS:    260272 kB
VmData:   848436 kB
VmStk:       132 kB
VmExe:      7408 kB
VmLib:         4 kB
VmPTE:      1692 kB
VmSwap:   557096 kB

Here are some links to old stats without the memory optimizations...

Memory after updating the lists..

Code:
admin@RT-AX88U_Pro-29B8:/tmp/home/root# grep Vm  /proc/`pidof AdGuardHome`/status
VmPeak:  1510796 kB
VmSize:  1510796 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:    392204 kB
VmRSS:    324868 kB
VmData:   848436 kB
VmStk:       132 kB
VmExe:      7408 kB
VmLib:         4 kB
VmPTE:      1692 kB
VmSwap:   492208 kB

A few minutes later...

Code:
grep Vm  /proc/`pidof AdGuardHome`/status
VmPeak:  1510796 kB
VmSize:  1510796 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:    392204 kB
VmRSS:    288012 kB
VmData:   848436 kB
VmStk:       132 kB
VmExe:      7408 kB
VmLib:         4 kB
VmPTE:      1692 kB
VmSwap:   528736 kB

As a side note, it is still recommended to use the default list over mine. My test were done on RT-AX88U-PRO and I had a fairly reasonable size swap configured. However, I do not recommend just anyone to load these lists. I did this with only AdGuardHome and Skynet running, No additional user scripts.
 
Last edited:
The default install Webui bind port will remain the same; however, if @Viktor Jaep decides to change his to 3000 or 443, it will display the new bind port address in the installer run time properly to prevent user confusion down the road.

You know I'm pretty crazy like that... I might even make it 3001! Don't get me started! LOL

Special Thanks to @chongnt for helping test the memory improvements!

Go @chongnt!! :)
 
Thanks for the update! One feature suggestion is to make the update a bit less interactive to allow just a straight update without having to go through the Q/A each time. Another suggestion is to add defaults to options on new installs like “Do you want to install to ENTWARE” should probably default to yes. Thanks again for all you are doing on this. Very happy I made the switch from Diversion.
 
“Do you want to install to ENTWARE” should probably default to yes.
The only reason why that question exists is incase users have a change of heart or still unsure they want to install.

Code:
Thanks for the update! One feature suggestion is to make the update a bit less interactive to allow just a straight update without having to go through the Q/A each time.

I get your thoughts here, but the main reason the questions are there is if you decide you want to switch from AdGuardHome branches during the process. Also, the update is for everything including the auxiliary files for running Adguardhome. There is a reason that there is not a simple skip the questions update process (e.g. you may change your mind on some of those questions).

You can skip alot of the process by doing this:

curl -L -s -k -O https://raw.githubusercontent.com/jumpsmm7/Asuswrt-Merlin-AdGuardHome-Installer/master/installer && sh installer master update

in the command line.

sh installer master update

will trigger a semi automatic update process.
 
Very happy I made the switch from Diversion.
I will not necessarily say Adguardhome is better than Diversion. In the feasible future @thelonelycoder will be bringing a rather significant change to diversion that will fundamentally improve its overall performance courteous of DNSMASQ continuous improvements.

Similarly, AdGuardHome is opensource code that goes through continuous improvements overtime. Anyone can offer suggestions to it, and there is a dedicated team for its continuous improvement. For users who are on the fence for using AdGuardHome here are some stuff to consider: - AdGuard Home is a network-wide ad and tracker blocking software. It functions as a DNS (Domain Name System) server, filtering and blocking unwanted content, such as ads, malware, and trackers, before they reach your devices. It can be installed on a home network to protect all devices connected to that network, including smartphones, tablets, computers, and IoT devices. It is also able to connect to upstream DNS servers via all flavors of encrypted DNS methods available.

Some reasons why AdGuard Home is considered a good product by many users include:

  1. Effective ad blocking: AdGuard Home has powerful ad blocking capabilities, helping to eliminate advertisements from websites and apps, providing a cleaner and faster browsing experience.
  2. Privacy protection: By blocking trackers and malicious domains, AdGuard Home helps protect your privacy by preventing data collection and tracking.
  3. Customizable filtering: It allows users to customize filtering rules, whitelist or blacklist specific domains, and create custom filter lists based on their preferences.
  4. Network-wide protection: Unlike browser extensions that provide ad blocking only for specific devices, AdGuard Home operates at the DNS level, providing network-wide ad blocking for all devices connected to the network.
  5. Open-source nature: AdGuard Home is open-source software, which means the source code is available to the public. This transparency allows security experts to review and contribute to the code, enhancing security and trust.
However, it's important to note that the effectiveness and suitability of any product may vary depending on individual needs and preferences. It's always a good idea to research and evaluate different solutions to determine if they align with your specific requirements. Additionally, consider factors such as ease of use, compatibility with your devices, and ongoing support and updates when evaluating the suitability of AdGuardHome or any similar product.

@thelonelycoder is doing a great job with providing this community with an adblocking solution that he continues to provide support for here in these forums. For the vast majority of users on this forum, it will do the job. If you are looking for extra bells and whistles such as the ones AdGuardHome provides, maybe that is more suited for you.
 
The only reason why that question exists is incase users have a change of heart or still unsure they want to install.

Code:
Thanks for the update! One feature suggestion is to make the update a bit less interactive to allow just a straight update without having to go through the Q/A each time.

I get your thoughts here, but the main reason the questions are there is if you decide you want to switch from AdGuardHome branches during the process. Also, the update is for everything including the auxiliary files for running Adguardhome. There is a reason that there is not a simple skip the questions update process (e.g. you may change your mind on some of those questions).

You can skip alot of the process by doing this:

curl -L -s -k -O https://raw.githubusercontent.com/jumpsmm7/Asuswrt-Merlin-AdGuardHome-Installer/master/installer && sh installer master update

in the command line.

sh installer master update

will trigger a semi automatic update process.

If I were looking to reconfigure AGH, I would do that outside the upgrade process. That said, how about a question at the beginning, "Would you like to reconfigure AGH? (y/n)" Default is no and then it can bypass a number of the questions. Another option is to add a new menu item that is for just updates without any reconfiguration.

Also, I didn't realize that the question "Would you like to install AGH to ENTWARE?" == "Do you want to install AGH?". I assumed there might be some alternative destinations if you said no. :-/ ... Perhaps renaming that to something simpler as "Do you want to install AGH?" ...
 
If I were looking to reconfigure AGH, I would do that outside the upgrade process. That said, how about a question at the beginning, "Would you like to reconfigure AGH? (y/n)" Default is no and then it can bypass a number of the questions. Another option is to add a new menu item that is for just updates without any reconfiguration.
That is why i made sh installer master update for quick updates. Though in your case, it may be sh /opt/etc/AdGuardHome/installer master update if you are not planning to curl a new installer each time. The whole point of not having a 100% automatic update process is for those who attempt to try to auto-update in the background and then the update fails. If you were to leverage a 100 percent auto update process and it fails, then you could possibly be out your internet service until you get a chance to fix it. Not to mention the headache you would (experience/create) trying to figure out and troubleshoot the failure.

Code:
 RT-AX88U_Pro-29B8:/tmp/home/root# sh /opt/etc/AdGuardHome/installer master update
 =>  Do you want to switch AdGuardHome builds? [y/n]: n
 Info:  continuing without changing builds.
 Info:  ADGUARDHOME_BUILD=Release
 Info:  No new release version available.
 Info:  ADGUARDHOME_VER=v0.107.29
 Info:  Downloading AdGuardHome.sh
 Info:  Downloading S99AdGuardHome
 Info:  rc.func.AdGuardHome is up to date. Skipping...
 Info:  init-start file already configured
 Info:  services-stop file already configured
 Info:  dnsmasq.postconf file already configured
 Info:  Configure service-event-end file
 Info:  Configuring AdGuardHome...
 =>  Do you want to redirect all DNS resolutions on your network through to AdGuardHome? [y/n]: y
 Info:  You can choose to keep any custom dnsfilter values by only redirect non-custom traffic or send all traffic through to AdGuardHome.
 =>  Do you want to redirect only NON-CUSTOM DNS resolutions on your network through to AdGuardHome? [y/n]: y
 Info:  DNSFilter is set to control DNS through to AdGuardHome, while leaving any Custom Rules and Values.
 Info:  Checking AdGuardHome configuration...
 =>  Do you want to skip reconfiguration options? [y/n]: y
 Info:  Skipping reconfiguration options.
 Info:  Starting AdGuardHome...
 Checking AdGuardHome...              dead.
 Checking AdGuardHome...              alive.
 Info:  Please wait while we perform one last check.
 Checking AdGuardHome...              alive.
 Info:  AdGuardHome setup is complete.
 Info:  Operation completed, returning to Main Menu. You can quit or continue.
=====================================================

is as close as you will get. I figure answering 4 questions in an update process is less of a headache than the potential for update failures resulting from a fully automated update process failing.

Also, I didn't realize that the question "Would you like to install AGH to ENTWARE?" == "Do you want to install AGH?". I assumed there might be some alternative destinations if you said no. :-/ ... Perhaps renaming that to something simpler as "Do you want to install AGH?" ...

It does in my mind when I am not presented with any other choices. The "ENTWARE" stays because it is a requirement to have in-order for this script to proceed properly. If someone answers yes to something they knowingly don't have, then the install will fail (nothing will properly work).

Alas, anyone who is saavy enough is able to write their own little automatic AdGuardHome update script. They just need to be mindful of the AdGuardHomes binary location. However, I will not be taking on such a task.
 
Last edited:
Not sure only me but with v1.6.1 my CPU usage went significantly higher.


Ekran görüntüsü 2023-06-07 142350.jpg


All usage belongs to AdGuard and spikes at the last is caused by a laptop that accessing 3 web sites at the same time. So it's not that much DNS request I guess. Before v1.6.1 my CPU load average was like 0.15 0.10 0.15, after v.1.6.1, Load average for 1 min is usually around 0.60.
 
Not sure only me but with v1.6.1 my CPU usage went significantly higher.


View attachment 50758

All usage belongs to AdGuard and spikes at the last is caused by a laptop that accessing 3 web sites at the same time. So it's not that much DNS request I guess. Before v1.6.1 my CPU load average was like 0.15 0.10 0.15, after v.1.6.1, Load average for 1 min is usually around 0.60.
It is a trade off for less RAM footprint. Read the initial post above.
I just wanted to take the time to let all Adguardhome Users here know, I pushed an update to the AMAGHI so that the AdGuardHome installed will utilize some major memory optimization improvements. The new update now sets the GOMEMLIMIT GOGC values as apart of environment variables for runtime. Otherwise, AdGuardHome does not limit the amount of memory it grabs to update lists or perform tasks as a trade off to limiting the CPU cycles per trash collection that AdGuardHome uses. The tradeoff to the memory optimization improvement is that AdGuardHome will require to use more CPU when processing lists and performing tasks. I think this is a fair trade off to prevent AdGuardHome lists updates from causing a OOM situation on the router. For AdGuardHome users, it is still recommended to use a SWAP. The only improvement users will experience in this update is reduced memory consumption when processing lists (and performing other tasks on the adguardhome webui). I also added a way for the installer to always detect the correct Bind port adguardhome is using, whether the user changed it or not. The default install Webui bind port will remain the same; however, if @Viktor Jaep decides to change his to 3000 or 443, it will display the new bind port address in the installer run time properly to prevent user confusion down the road.

It should also be noted that the CPU spikes could have been related to Adguardhome doing its Block List update. I notice your RAM usage dropped in the image above or is significantly lower, than typically seen with adguardhome once block list is fully loaded.. This indicates to me that your Spike in CPU usage may not have been related to your house holds browsing habits; instead, it is probably related to AdGuardHome performing its daily list update task; or, perhaps AdGuardHome got restarted for some reason which would have spiked the CPU to reload the block list. Hell, maybe you were viewing the Query log at the exact same time. (all of these tasks will spike the CPU usage for a negligible amount of time, whereas in the past it would have spiked the router memory usage). You should share your syslog entries from around the time your router CPU spiked.
 
Last edited:
AdGuard Home, deployed in docker container with docker-compose, with customized and updated lists.

 
AdGuard Home, deployed in docker container with docker-compose, with customized and updated lists.

That would be great if you were planning to run your own cloud based solution, or operate VM's.
 
asus routers, thanks to the merlin firmware, can only run docker containers. 😅

I have deployed on a NanoPi Neo3 board, the adguard in docker and it goes great, in the router, in LAN / DHCP Server, I have set in DNS 1 the ip of the NanoPi, so all devices that connect, go through the adguard.
 
asus routers, thanks to the merlin firmware, can only run docker containers. 😅

I have deployed on a NanoPi Neo3 board, the adguard in docker and it goes great, in the router, in LAN / DHCP Server, I have set in DNS 1 the ip of the NanoPi, so all devices that connect, go through the adguard.
So you run the docker container on the nanopi and point your asus router at it for handling your clients DNS requests. I do something similar with pihole but I don't use docker for my setup.
 
Hi I went to install this again following the instructions in the original thread but I keep getting this error (after I closed the session and ran the following command) I cannot continue with the installation. Obviously I've done something wrong but I am at a loss.
 

Attachments

  • 1.PNG
    1.PNG
    21.2 KB · Views: 223
Hi I went to install this again following the instructions in the original thread but I keep getting this error (after I closed the session and ran the following command) I cannot continue with the installation. Obviously I've done something wrong but I am at a loss.
Okay, go through the install process and show screen shots of your terminal session as you run the install script.
 
Okay, go through the install process and show screen shots of your terminal session as you run the install script.
It won't even let me install it and I dont see an uninstall option.
 

Attachments

  • 2.PNG
    2.PNG
    49.3 KB · Views: 187
  • 1.PNG
    1.PNG
    35.7 KB · Views: 170
  • 3.PNG
    3.PNG
    202.3 KB · Views: 186
It won't even let me install it and I dont see an uninstall option.
here is how to uninstall manually,

Manually remove lines mentioning AdGuardHome from these scripts with a terminal editor such as nano or vi:
Code:
/jffs/scripts/init-start
/jffs/scripts/dnsmasq.postconf
/jffs/scripts/services-stop
/jffs/scripts/service-event-end

To uninstall files and directories run the below straight in the ssh terminal command line:
Code:
rm -rf "/opt/etc/AdGuardHome" "/opt/etc/init.d/S99AdGuardHome" "/opt/etc/init.d/rc.func.AdGuardHome" "/opt/sbin/AdGuardHome" "/opt/bin/bcrypt-tool" "/jffs/addons/AdGuardHome.d" "/opt/var/log/AdGuardHome.log"

Finally reboot your router.

***** My eyes were deceiving me ******BTW, I am not sure if this script will work on firmware this old especially since this firmware was released on 8-May-2019, and the Adguardhome installer and auxiliary files were written long after that (january of 2022), the release of this firmware.

1686690953860.png


What this means is, this installer and its auxiliary files have not been tested against nuances or conflicts that might exist with firmware that old. ***** My eyes were deceiving me *****

Corrected by @Martinski , We hang on all his prepositions!
 
Last edited:
386.11 should be the latest Merlim f/w for my router.
No idea what terminal editor such as nano or vi is so I used WinSCP and edited those files you mentioned and removed the Adguard lines and rebooted Router.
I can now access page http://192.168.1.2:14711/
I will continue setup tommorow but do I enter the Adguard under DNS and remove my Cloudfare entries?
Thank you for the help
 

Attachments

  • 3.PNG
    3.PNG
    127.1 KB · Views: 174
  • 2.PNG
    2.PNG
    21.8 KB · Views: 847
  • 1.PNG
    1.PNG
    114.2 KB · Views: 888
Last edited:
I will not necessarily say Adguardhome is better than Diversion. In the feasible future @thelonelycoder will be bringing a rather significant change to diversion that will fundamentally improve its overall performance courteous of DNSMASQ continuous improvements.

it really depends how you compare AddGuard and Diversion. As far as amount of capability, AddGuard blows diversion away…. it Offers many options to tune DNS security and response times, view log statistics, and manage clients that Diversion simply does not have. As for the sole purpose of blocking Adds, they are fairly comparable. Personally, I’m glad I jumped ship from Diversion to AddGuard as I’ll never go back Now that I got my average DNS response times reliably down to 7ms or less over 3 months,
 
BTW, I am not sure if this script will work on firmware this old especially since this firmware was released on 8-May-2019, and the Adguardhome installer and auxiliary files were written long after that (january of 2022), the release of this firmware.

View attachment 50941

What this means is, this installer and its auxiliary files have not been tested against nuances or conflicts that might exist with firmware that old.
Asuswrt-Merlin 386.11 f/w was released on 2023-May-14 so it's not even a month old yet.
 

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top