From dfd2e21b6d58512012fc22c8b44fbd72617943f1 Mon Sep 17 00:00:00 2001 From: "f.setrakov" Date: Thu, 9 Jul 2026 17:32:04 +0300 Subject: [PATCH 1/3] adguard-home: add new articles --- docs/adguard-home/dhcp.md | 171 ++++++++++++++++++++++++++++ docs/adguard-home/docker.md | 178 ++++++++++++++++++++++++++++++ docs/adguard-home/raspberry-pi.md | 87 +++++++++++++++ 3 files changed, 436 insertions(+) create mode 100644 docs/adguard-home/dhcp.md create mode 100644 docs/adguard-home/docker.md create mode 100644 docs/adguard-home/raspberry-pi.md diff --git a/docs/adguard-home/dhcp.md b/docs/adguard-home/dhcp.md new file mode 100644 index 000000000..b896581c5 --- /dev/null +++ b/docs/adguard-home/dhcp.md @@ -0,0 +1,171 @@ +--- +title: DHCP +sidebar_position: 10 +--- + +AdGuard Home can be used as a DHCP server. This page describes how to do that. + +## Prerequisites {#prerequisites} + +1. Make sure that you run an OS on which AdGuard Home supports DHCP. We currently don't support DHCP on Windows. + +2. Make sure that your machine has a static IP address. + +## Default options {#default-options} + +By default, AdGuard Home will set itself as the DNS server for the DHCP clients. The default lease time is 24 hours. + +## Configuration {#configuration} + +See the DHCP section in the [configuration] article for the overview of the DHCP configuration options. There are several configuration parameters for DHCP that can't be set via the AdGuard Home administrator dashboard. Those are described below. + +### DHCPv4 options {#dhcpv4-options} + +The `options` field is used to explicitly specify the values for DHCP options and modify the response. In accordance with *Section 4.3.1* of [RFC 2131][rfc-2131], these options override the default options’ values set by Adguard Home and requested by a client, which means that if you want to set custom DNS server addresses using option `6` (Domain Name Server), you may want also add Adguard Home’s own addresses there. Otherwise, AdGuard Home’s filtering won't work for the DHCP clients who receive these DNS server addresses. + +Any option begins with an option *code* written as decimal integer. See [RFC 2132][rfc-2132] for the actual DHCP option codes and allowed lengths. The code is followed by an option’s *type* and *value*. Currently the following *types* are supported: + +- `bool`: Human-readable form of a boolean value, and has the length of 1 octet. + + **Example**: + + ```yaml + 'options': + - '19 bool 0' # Disable IP forwarding for hosts. + - '20 bool t' # Enable non-local source routing for hosts. + - '27 bool F' # Disable ahoming for hosts. + - '30 bool true' # Enable mask supplying for supporting hosts. + - '36 bool False' # Make the hosts use RFC 894 for ethernet encapsulation. + ``` + +- `del`: No-value option and is used to unconditionally remove options from the server’s responses (which may lead to weird behaviors, use with caution). + + Since the list of options is interpreted sequentially from first to last, the subsequent option may override the previous ones. So this: + + ```yaml + 'options': + - '19 bool T' + - '19 del' + - '20 del' + - '20 bool F' + ``` + + instructs to remove the option `19`, and to set the option `20` to `false`. + +- `dur`: Human-readable form of a duration in range [0 – 4294967296 seconds (about 136 days)] and has a length of *4* octets, just like a 32-bit unsigned integer. + + **Example**: + + ```yaml + 'options': + - '24 dur 10m' + ``` + +- `hex`: Sequence of hexadecimal numbers of an arbitrary length. + + **Example**: + + ```yaml + 'options': + - '25 hex 0044012801FC03EE05D407D211001FE645FA' + ``` + +- `ip`: Accepts an IPv4 address and has a length of *4* octets, just like an IPv4 itself. + + **Example**: + + ```yaml + 'options': + - '28 ip 192.168.0.255' + ``` + +- `ips`: Accepts a comma-separated list of IPv4 addresses. It has an arbitrary length, but is always a multiple of *4* octets. + + **Example**: + + ```yaml + 'options': + - '6 ips 1.2.3.4,1.2.3.5' + ``` + +- `text`: Accepts an arbitrary UTF-8 encoded string and has a length of encoded text. + + **Example:** + + ```yaml + 'options': + - '252 text http://server.domain/proxyconfig.pac' + ``` + +- `u8`: Decimal number in range [0 – 255] and takes *1* octet, just like an unsigned 8-bit integer. + + **Example:** + + ```yaml + 'options': + - '23 u8 64' + ``` + +- `u16`: Decimal number in range [0 – 65535] and takes *2* octets, just like an unsigned 16-bit integer. + + **Example:** + + ```yaml + 'options': + - '22 u16 576' + ``` + +:::note + +Thoroughly check that the option format and value are valid for the chosen type in accordance with [RFC 2132][rfc-2132] or others. AdGuard Home does not perform any option-specific validations. + +::: + +Currently there is a set of options listed in *Appendix A* of [RFC 2131][rfc-2131] with the default values chosen according to the documents mentioned there: + +| Option | Value | +| -------------------------------- | --------------------------------------------- | +| IP Forwarding | Disabled | +| Non-Local Source Routing | Disabled | +| Maximum Datagram Reassembly Size | 576 bytes | +| Default IP Time-to-live | 64 seconds | +| Path MTU Aging Timeout Option | 10 minutes | +| Path MTU Plateau Table | See [Table 7.1 in RFC 1191][rfc-1191-tbl-7.1] | +| Interface MTU | 576 bytes | +| All subnets are local | False | +| Perform Mask Discovery | False | +| Mask Supplier | False | +| Perform Router Discovery | True | +| Router Solicitation Address | 224.0.0.2 | +| Broadcast Address | 255.255.255.255 | +| Use Trailer Encapsulation | False | +| ARP Cache Timeout | 1 minute | +| Ethernet Encapsulation version | RFC 894 | +| Default TCP TTL | 60 seconds | +| TCP Keepalive Interval | 2 hours | +| Put TCP Keepalive Garbage | True | +| Routers | `gateway_ip` from configuration | +| Subnet Mask | `subnet_mask` from configuration | + +Some of these values may appear obsolete or may cause issues with some DHCP client implementations among the many existing. In accordance with [RFC 2131][rfc-2131] the options, when not explicitly configured, are only returned if requested by client within the option `55` (Parameter Request List). + +### DHCPv6 options {#dhcpv6-options} + +The option `dhcp.dhcpv6.ra_slaac_only`, if `true`, sends RA packets forcing the clients to use SLAAC. The DHCPv6 server won't be started in this case. + +The option `dhcp.dhcpv6.ra_allow_slaac`, if `true`, sends RA packets allowing the clients to choose between SLAAC and DHCPv6. + +[configuration]: https://adguard-dns.io/kb/adguard-home/configuration/ +[rfc-1191-tbl-7.1]: https://datatracker.ietf.org/doc/html/rfc1191#section-7.1 +[rfc-2131]: https://datatracker.ietf.org/doc/html/rfc2131 +[rfc-2132]: https://datatracker.ietf.org/doc/html/rfc2132 + +## Automatic hosts {#auto-hosts} + +Machines in the network can be reached more easily using the hostnames they send in the DHCP requests with a configurable top-level domain (TLD). By default, the TLD is `lan`. For example, if you have a machine called “workstation” in the network, and it sends a DHCP request with option 12 set to `workstation`, you can reach it over HTTP on the host `http://workstation.lan`. + +You can also set a custom TLD or domain name using the `dns.local_domain_name` field in the [configuration] file. + +## Stored leases {#stored-leases} + +DHCP leases are stored in `data/leases.json`. The file format is not stable and may change in the future releases. diff --git a/docs/adguard-home/docker.md b/docs/adguard-home/docker.md new file mode 100644 index 000000000..284633a90 --- /dev/null +++ b/docs/adguard-home/docker.md @@ -0,0 +1,178 @@ +--- +title: Docker +sidebar_position: 11 +--- + +This page provides specific guidelines for running AdGuard Home inside the Docker container. + +## Quick start {#quick-start} + +### Pull the Docker image + +This command will pull the latest stable version: + +```sh +docker pull adguard/adguardhome +``` + +### Create directories for persistent configuration and data + +The image exposes two volumes for data and configuration persistence. So, the following directories must be created on a suitable volume on the host system: + +- `data` + + **Example**: `/my/own/workdir` + +- `configuration` + + **Example**: `/my/own/confdir` + +### Create and run the container + +Use the following command to create a new container and run AdGuard Home: + +```sh +docker run --name adguardhome \ + --restart unless-stopped \ + # Replace with actual data directory. + -v /my/own/workdir:/opt/adguardhome/work \ + # Replace with actual configuration directory. + -v /my/own/confdir:/opt/adguardhome/conf \ + -p 53:53/tcp -p 53:53/udp \ + -p 67:67/udp -p 68:68/udp \ + -p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp \ + -p 853:853/tcp \ + -p 853:853/udp \ + -p 5443:5443/tcp -p 5443:5443/udp \ + -p 6060:6060/tcp \ + -d adguard/adguardhome \ + ; +``` + +The AdGuard Home service admin panel can now be accessed via http://127.0.0.1:3000/ from a web browser. + +The following port mappings might be needed: + +- `-p 53:53/tcp -p 53:53/udp`: Required for plain DNS. + +- `-p 67:67/udp -p 68:68/tcp -p 68:68/udp`: Required for DHCP server. + +- `-p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp`: Required for admin panel and [HTTPS/DNS-over-HTTPS][enc] server. + +- `-p 853:853/tcp`: Required for running a [DNS-over-TLS][enc] server. + +- `-p 853:853/udp`: Required for running a [DNS-over-QUIC][enc] server. + +- `-p 5443:5443/tcp -p 5443:5443/udp`: Required for running a [DNSCrypt] server. + +- `-p 6060:6060/tcp`: Required for running a pprof debug api. + +### Client IPs + +To make AdGuard Home see the original client IPs as opposed to something like `172.17.0.1`, the `--network host` argument must be added to the list of options. + +### Control the container + +AdGuard Home container can be controlled using the following commands: + +- Start: + + ```sh + docker start adguardhome + ``` + +- Stop: + + ```sh + docker stop adguardhome + ``` + +- Remove: + + ```sh + docker rm adguardhome + ``` + +[DNSCrypt]: https://adguard-dns.io/kb/adguard-home/encryption/#configure-dnscrypt +[enc]: https://adguard-dns.io/kb/adguard-home/encryption/ + +## Update to a newer version {#update} + +1. Pull the new version from Docker Hub: + + ```sh + docker pull adguard/adguardhome + ``` + +2. Stop and remove currently running container (assuming the container is named `adguardhome`): + + ```sh + docker stop adguardhome + docker rm adguardhome + ``` + +3. Create and start the container using the new image using the command from the previous section. + +## Running development builds {#unstable} + +Unstable development builds might be accessed using `edge` or `beta` tags. In order to use it, simply replace `adguard/adguardhome` with `adguard/adguardhome:edge` or `adguard/adguardhome:beta` in every command from the quick start. For example: + +```sh +docker pull adguard/adguardhome:edge +``` + +## Additional configuration {#configuration} + +Upon the first run, a file with the default values named `AdGuardHome.yaml` is created. This file can be modified while the AdGuard Home container is not running. Otherwise, any changes to the file will be lost because the running program will overwrite them. + +The settings are stored in the [YAML] format. The documentation describing all configurable parameters and their values is available on [this page][conf]. + +[YAML]: https://yaml.org +[conf]: https://adguard-dns.io/kb/adguard-home/configuration/ + +### Health-check + +Recommended way to achieve a health check mechanism is to create a new image tailored for the target configuration. Implementations may use the special domain name `healthcheck.adguardhome.test.`, expecting it to resolve into NODATA answer. It imposes restrictions on usage of this particular name, so specifying it within the `blocked_hosts` array under the `dns` section of configuration file will break the healthcheck. The `allowed_clients` and `disallowed_clients` properties should allow the healthcheck client IP as well. + +## DHCP server {#dhcp} + +To use AdGuard Home’s DHCP server, the `--network host` argument should be passed when creating the container: + +```sh +docker run --name adguardhome --network host ... +``` + +This option instructs Docker to use the host’s network rather than a docker-bridged network. Note that port mapping with `-p` is not necessary in this case. + +:::note + +The host networking driver only works on Linux hosts, and is not supported on Docker Desktop for Mac, Docker Desktop for Windows, or Docker EE for Windows Server. + +::: + +## `resolved` daemon {#resolved} + +To run AdGuard Home on a system where the `resolved` daemon is started, `DNSStubListener` must be disabled to prevent port bind conflict: + +1. Deactivate `DNSStubListener` and update the DNS server address. Create a new file, `/etc/systemd/resolved.conf.d/adguardhome.conf` (creating the `/etc/systemd/resolved.conf.d` directory if needed) and add the following content to it: + + ```ini + [Resolve] + DNS=127.0.0.1 + DNSStubListener=no + ``` + + Specifying `127.0.0.1` as the DNS server address is necessary because otherwise the nameserver will be `127.0.0.53` which doesn't work without `DNSStubListener`. + +2. Activate a new `resolv.conf` file: + + ```sh + mv /etc/resolv.conf /etc/resolv.conf.backup + ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf + ``` + +3. Stop `DNSStubListener`: + + ```sh + systemctl reload-or-restart systemd-resolved + ``` diff --git a/docs/adguard-home/raspberry-pi.md b/docs/adguard-home/raspberry-pi.md new file mode 100644 index 000000000..ed694d274 --- /dev/null +++ b/docs/adguard-home/raspberry-pi.md @@ -0,0 +1,87 @@ +--- +title: Raspberry Pi +sidebar_position: 12 +--- + +You can install AdGuard Home on your [Raspberry Pi][pi] and use it to filter ads and save traffic. Once it is installed, you can use your AdGuard Home on any machine connected to the same local network. + +[pi]: https://www.raspberrypi.org + +## Prepare your Pi {#prepare} + +You'll need a Raspberry Pi with network access and [SSH enabled][ssh]. Connect it to a display and a keyboard, boot it, and write down the IP address that has been assigned to your Pi: + +```sh +hostname -I | xargs -n 1 +``` + +If there are several IP addresses, write down the first one. Switch back to your main computer, but keep your Pi running, and launch an ssh client. On Windows, you can use [PuTTY][putty], while on Linux, macOS, and other Unix-like OSes, you can just use your preferred terminal emulator. + +Type: + +```sh +ssh pi@192.168.10.20 +``` + +(where `192.168.10.20` is the IP you've written down) and then type your Pi’s password (which is `raspberry` unless you've changed it already). Once you're done, you will be greeted by the command line interface. Now you're ready to install your own AdGuard Home! + +[ssh]: https://www.raspberrypi.com/documentation/computers/remote-access.html +[putty]: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html + +## Install AdGuard Home {#install} + +Go to [AdGuard Home page][inst] and download binaries for Raspberry Pi: + +```sh +cd +wget 'https://static.adguard.com/adguardhome/release/AdGuardHome_linux_armv6.tar.gz' +tar -f AdGuardHome_linux_armv6.tar.gz -x -v +``` + +(Replace `armv6` with the ARM version that is best supported by your Pi.) + +That command unpacks the necessary data into a new directory called `AdGuardHome`. Run this command to install AdGuard Home as a service: + +```sh +cd ./AdGuardHome/ +sudo ./AdGuardHome -s install +``` + +Here are the other commands you might need to control the service: + +- `AdGuardHome -s uninstall`: Uninstall the AdGuard Home service. + +- `AdGuardHome -s start`: Start the service. + +- `AdGuardHome -s stop`: Stop the service. + +- `AdGuardHome -s restart`: Restart the service. + +- `AdGuardHome -s status`: Show the current service status. + +[inst]: https://github.com/AdguardTeam/AdGuardHome# + +## Check the filtering {#check} + +You can verify that it’s working properly by running this on your Pi: + +```sh +host doubleclick.net 127.0.0.1 +``` + +If everything works correctly, you will get this output: + +```sh +Using domain server: +Name: 127.0.0.1 +Address: 127.0.0.1#53 +Aliases: + +Host doubleclick.net not found: 3(NXDOMAIN) +``` + +## Configure your devices {#devices} + +Once it is confirmed that AdGuard Home works on our Raspberry Pi, you can use it on other computers in your network by changing their system DNS settings to use the Pi’s IP address. + +Go to the “Setup Guide” page in the web interface and follow the instructions. From 564a9d6811c05f609d03c745ab797dc5e70f6008 Mon Sep 17 00:00:00 2001 From: "f.setrakov" Date: Fri, 10 Jul 2026 17:48:48 +0300 Subject: [PATCH 2/3] adguard-home: imp articles --- docs/adguard-home/configuration.md | 19 +++++++++-------- docs/adguard-home/dhcp.md | 18 +++++++++------- docs/adguard-home/docker.md | 31 +++++++++++++--------------- docs/adguard-home/getting-started.md | 4 ++++ docs/adguard-home/raspberry-pi.md | 28 ++++++++----------------- 5 files changed, 48 insertions(+), 52 deletions(-) diff --git a/docs/adguard-home/configuration.md b/docs/adguard-home/configuration.md index 7b14eb14e..0c59e2ee4 100644 --- a/docs/adguard-home/configuration.md +++ b/docs/adguard-home/configuration.md @@ -664,7 +664,7 @@ List of filters. Each filter has the following properties: ### `dhcp` {#dhcp} -Built-in DHCP server configuration. See also the [DHCP] article. It has the following properties: +Built-in DHCP server configuration. See also the [DHCP][DHCPv4] article. It has the following properties: - `enabled`: DHCP server status. @@ -682,7 +682,7 @@ Built-in DHCP server configuration. See also the [DHCP] article. It has the foll - `icmp_timeout_msec`: Time to wait for an ICMP reply to detect an IP conflict, in milliseconds. If `0`, the feature is disabled. - - `options`: Custom DHCP options. See the [DHCP] article section on these options for more information. + - `options`: Custom DHCP options. See the [DHCP][DHCPv4] article section on these options for more information. - `dhcpv6`: DHCPv6 settings. It has the following properties: @@ -690,7 +690,7 @@ Built-in DHCP server configuration. See also the [DHCP] article. It has the foll - `lease_duration`: same as in v4 above. - - `ra_slaac_only` and `ra_allow_slaac`: send RA packets either forcing the clients to use SLAAC or allowing them to choose. See the [DHCP] article section on these options for more information. + - `ra_slaac_only` and `ra_allow_slaac`: send RA packets either forcing the clients to use SLAAC or allowing them to choose. See the [DHCP][DHCPv6] article section on these options for more information. - `local_domain_name`: The domain name that AdGuard Home’s DHCP server uses for hostnames of its clients. The default value, which is also set when this value is empty, is `lan`. So, if you have a machine called `myhost` in your network, and AdGuard Home is this network’s DHCP server, the hostname of that machine is `myhost.lan`. DNS queries of type `A` for such hosts are only allowed from locally served networks, such as `10.0.0.0/8`, `192.168.0.0/16`, and so on. Other clients receive an empty `NXDOMAIN` response. @@ -826,12 +826,13 @@ Log settings. Removing an entry from settings file will reset it to the default value. Deleting the file will reset all settings to the default values. -[DDR]: https://www.ietf.org/archive/id/draft-ietf-add-ddr-06.html -[DHCP]: https://adguard-dns.io/kb/adguard-home/dhcp/ -[docker-conf]: https://adguard-dns.io/kb/adguard-home/docker/ -[hsts]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security -[rfc6147]: https://datatracker.ietf.org/doc/html/rfc6147 -[tls-names]: https://pkg.go.dev/crypto/tls#pkg-constants +[DDR]: https://www.ietf.org/archive/id/draft-ietf-add-ddr-06.html +[DHCPv4]: https://adguard-dns.io/kb/adguard-home/dhcp/#dhcpv4-options +[DHCPv6]: https://adguard-dns.io/kb/adguard-home/dhcp/#dhcpv6-options +[docker-conf]: https://adguard-dns.io/kb/adguard-home/docker/ +[hsts]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security +[rfc6147]: https://datatracker.ietf.org/doc/html/rfc6147 +[tls-names]: https://pkg.go.dev/crypto/tls#pkg-constants ## Reset web password {#password-reset} diff --git a/docs/adguard-home/dhcp.md b/docs/adguard-home/dhcp.md index b896581c5..f41ed2563 100644 --- a/docs/adguard-home/dhcp.md +++ b/docs/adguard-home/dhcp.md @@ -7,21 +7,25 @@ AdGuard Home can be used as a DHCP server. This page describes how to do that. ## Prerequisites {#prerequisites} -1. Make sure that you run an OS on which AdGuard Home supports DHCP. We currently don't support DHCP on Windows. +1. Make sure that you run an OS on which AdGuard Home supports DHCP. We currently don’t support DHCP on Windows. 2. Make sure that your machine has a static IP address. -## Default options {#default-options} +## Configuration {#configuration} + +See the DHCP section in the [configuration][dhcp-conf] article for the overview of the DHCP configuration options. There are several configuration parameters for DHCP that can’t be set via the AdGuard Home administrator dashboard. Those are described below. + +:::note By default, AdGuard Home will set itself as the DNS server for the DHCP clients. The default lease time is 24 hours. -## Configuration {#configuration} +::: -See the DHCP section in the [configuration] article for the overview of the DHCP configuration options. There are several configuration parameters for DHCP that can't be set via the AdGuard Home administrator dashboard. Those are described below. +[dhcp-conf]: https://adguard-dns.io/kb/adguard-home/configuration/#dhcp ### DHCPv4 options {#dhcpv4-options} -The `options` field is used to explicitly specify the values for DHCP options and modify the response. In accordance with *Section 4.3.1* of [RFC 2131][rfc-2131], these options override the default options’ values set by Adguard Home and requested by a client, which means that if you want to set custom DNS server addresses using option `6` (Domain Name Server), you may want also add Adguard Home’s own addresses there. Otherwise, AdGuard Home’s filtering won't work for the DHCP clients who receive these DNS server addresses. +The `options` field is used to explicitly specify the values for DHCP options and modify the response. In accordance with *Section 4.3.1* of [RFC 2131][rfc-2131], these options override the default options’ values set by Adguard Home and requested by a client, which means that if you want to set custom DNS server addresses using option `6` (Domain Name Server), you may want also add Adguard Home’s own addresses there. Otherwise, AdGuard Home’s filtering won’t work for the DHCP clients who receive these DNS server addresses. Any option begins with an option *code* written as decimal integer. See [RFC 2132][rfc-2132] for the actual DHCP option codes and allowed lengths. The code is followed by an option’s *type* and *value*. Currently the following *types* are supported: @@ -33,7 +37,7 @@ Any option begins with an option *code* written as decimal integer. See [RFC 213 'options': - '19 bool 0' # Disable IP forwarding for hosts. - '20 bool t' # Enable non-local source routing for hosts. - - '27 bool F' # Disable ahoming for hosts. + - '29 bool F' # Disable subnet mask discovery. - '30 bool true' # Enable mask supplying for supporting hosts. - '36 bool False' # Make the hosts use RFC 894 for ethernet encapsulation. ``` @@ -151,7 +155,7 @@ Some of these values may appear obsolete or may cause issues with some DHCP clie ### DHCPv6 options {#dhcpv6-options} -The option `dhcp.dhcpv6.ra_slaac_only`, if `true`, sends RA packets forcing the clients to use SLAAC. The DHCPv6 server won't be started in this case. +The option `dhcp.dhcpv6.ra_slaac_only`, if `true`, sends RA packets forcing the clients to use SLAAC. The DHCPv6 server won’t be started in this case. The option `dhcp.dhcpv6.ra_allow_slaac`, if `true`, sends RA packets allowing the clients to choose between SLAAC and DHCPv6. diff --git a/docs/adguard-home/docker.md b/docs/adguard-home/docker.md index 284633a90..8d237d943 100644 --- a/docs/adguard-home/docker.md +++ b/docs/adguard-home/docker.md @@ -19,33 +19,30 @@ docker pull adguard/adguardhome The image exposes two volumes for data and configuration persistence. So, the following directories must be created on a suitable volume on the host system: -- `data` +- Data directory, for example `/my/own/workdir`. - **Example**: `/my/own/workdir` - -- `configuration` - - **Example**: `/my/own/confdir` +- Configuration directory, for example `/my/own/confdir`. ### Create and run the container Use the following command to create a new container and run AdGuard Home: ```sh -docker run --name adguardhome \ - --restart unless-stopped \ - # Replace with actual data directory. - -v /my/own/workdir:/opt/adguardhome/work \ - # Replace with actual configuration directory. - -v /my/own/confdir:/opt/adguardhome/conf \ +docker run \ + -d \ + --name adguardhome \ -p 53:53/tcp -p 53:53/udp \ -p 67:67/udp -p 68:68/udp \ - -p 80:80/tcp -p 443:443/tcp -p 443:443/udp -p 3000:3000/tcp \ + -p 80:80/tcp -p 443:443/tcp \ + -p 443:443/udp -p 3000:3000/tcp \ -p 853:853/tcp \ -p 853:853/udp \ -p 5443:5443/tcp -p 5443:5443/udp \ -p 6060:6060/tcp \ - -d adguard/adguardhome \ + --restart unless-stopped \ + -v /my/own/workdir:/opt/adguardhome/work \ + -v /my/own/confdir:/opt/adguardhome/conf \ + adguard/adguardhome \ ; ``` @@ -127,8 +124,8 @@ Upon the first run, a file with the default values named `AdGuardHome.yaml` is c The settings are stored in the [YAML] format. The documentation describing all configurable parameters and their values is available on [this page][conf]. -[YAML]: https://yaml.org -[conf]: https://adguard-dns.io/kb/adguard-home/configuration/ +[YAML]: https://yaml.org +[conf]: https://adguard-dns.io/kb/adguard-home/configuration/ ### Health-check @@ -162,7 +159,7 @@ To run AdGuard Home on a system where the `resolved` daemon is started, `DNSStub DNSStubListener=no ``` - Specifying `127.0.0.1` as the DNS server address is necessary because otherwise the nameserver will be `127.0.0.53` which doesn't work without `DNSStubListener`. + Specifying `127.0.0.1` as the DNS server address is necessary because otherwise the nameserver will be `127.0.0.53` which doesn’t work without `DNSStubListener`. 2. Activate a new `resolv.conf` file: diff --git a/docs/adguard-home/getting-started.md b/docs/adguard-home/getting-started.md index d4e9268b3..eb8c65711 100644 --- a/docs/adguard-home/getting-started.md +++ b/docs/adguard-home/getting-started.md @@ -21,6 +21,10 @@ To install AdGuard Home as a service, extract the archive, enter the `AdGuardHom - Users of **macOS 10.15 Catalina** and newer should place the AdGuard Home working directory inside the `/Applications` directory. +- For users of **Raspberry Pi** there is a separate [guide][raspberry-pi-guide]. + +[raspberry-pi-guide]: https://adguard-dns.io/kb/adguard-home/raspberry-pi + ### Docker and Snap We also provide an [official AdGuard Home docker image][docker] and an [official Snap Store package][snap] for experienced users. diff --git a/docs/adguard-home/raspberry-pi.md b/docs/adguard-home/raspberry-pi.md index ed694d274..d8e802ff8 100644 --- a/docs/adguard-home/raspberry-pi.md +++ b/docs/adguard-home/raspberry-pi.md @@ -9,7 +9,7 @@ You can install AdGuard Home on your [Raspberry Pi][pi] and use it to filter ads ## Prepare your Pi {#prepare} -You'll need a Raspberry Pi with network access and [SSH enabled][ssh]. Connect it to a display and a keyboard, boot it, and write down the IP address that has been assigned to your Pi: +You’ll need a Raspberry Pi with network access and [SSH enabled][ssh]. Connect it to a display and a keyboard, boot it, and write down the IP address that has been assigned to your Pi: ```sh hostname -I | xargs -n 1 @@ -23,7 +23,7 @@ Type: ssh pi@192.168.10.20 ``` -(where `192.168.10.20` is the IP you've written down) and then type your Pi’s password (which is `raspberry` unless you've changed it already). Once you're done, you will be greeted by the command line interface. Now you're ready to install your own AdGuard Home! +(where `192.168.10.20` is the IP you’ve written down) and then type your Pi’s password (which is `raspberry` unless you’ve changed it already). Once you’re done, you will be greeted by the command line interface. Now you’re ready to install your own AdGuard Home! [ssh]: https://www.raspberrypi.com/documentation/computers/remote-access.html [putty]: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html @@ -40,26 +40,16 @@ tar -f AdGuardHome_linux_armv6.tar.gz -x -v (Replace `armv6` with the ARM version that is best supported by your Pi.) -That command unpacks the necessary data into a new directory called `AdGuardHome`. Run this command to install AdGuard Home as a service: +That command unpacks the necessary data into a new directory called `AdGuardHome`. -```sh -cd ./AdGuardHome/ -sudo ./AdGuardHome -s install -``` - -Here are the other commands you might need to control the service: - -- `AdGuardHome -s uninstall`: Uninstall the AdGuard Home service. - -- `AdGuardHome -s start`: Start the service. - -- `AdGuardHome -s stop`: Stop the service. +:::note -- `AdGuardHome -s restart`: Restart the service. +Then install AdGuard Home as a [service]. -- `AdGuardHome -s status`: Show the current service status. +::: -[inst]: https://github.com/AdguardTeam/AdGuardHome# +[service]: https://adguard-dns.io/kb/adguard-home/getting-started/#service +[inst]: https://github.com/AdguardTeam/AdGuardHome ## Check the filtering {#check} @@ -84,4 +74,4 @@ Host doubleclick.net not found: 3(NXDOMAIN) Once it is confirmed that AdGuard Home works on our Raspberry Pi, you can use it on other computers in your network by changing their system DNS settings to use the Pi’s IP address. -Go to the “Setup Guide” page in the web interface and follow the instructions. +Go to the *Setup Guide* page in the web interface and follow the instructions. From 52164209bfacdb10630b388c9b97124836b4aca9 Mon Sep 17 00:00:00 2001 From: "f.setrakov" Date: Fri, 10 Jul 2026 17:53:28 +0300 Subject: [PATCH 3/3] adguard-home: imp dhcp article --- docs/adguard-home/dhcp.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/adguard-home/dhcp.md b/docs/adguard-home/dhcp.md index f41ed2563..4abf05df3 100644 --- a/docs/adguard-home/dhcp.md +++ b/docs/adguard-home/dhcp.md @@ -159,7 +159,6 @@ The option `dhcp.dhcpv6.ra_slaac_only`, if `true`, sends RA packets forcing the The option `dhcp.dhcpv6.ra_allow_slaac`, if `true`, sends RA packets allowing the clients to choose between SLAAC and DHCPv6. -[configuration]: https://adguard-dns.io/kb/adguard-home/configuration/ [rfc-1191-tbl-7.1]: https://datatracker.ietf.org/doc/html/rfc1191#section-7.1 [rfc-2131]: https://datatracker.ietf.org/doc/html/rfc2131 [rfc-2132]: https://datatracker.ietf.org/doc/html/rfc2132 @@ -168,7 +167,7 @@ The option `dhcp.dhcpv6.ra_allow_slaac`, if `true`, sends RA packets allowing th Machines in the network can be reached more easily using the hostnames they send in the DHCP requests with a configurable top-level domain (TLD). By default, the TLD is `lan`. For example, if you have a machine called “workstation” in the network, and it sends a DHCP request with option 12 set to `workstation`, you can reach it over HTTP on the host `http://workstation.lan`. -You can also set a custom TLD or domain name using the `dns.local_domain_name` field in the [configuration] file. +You can also set a custom TLD or domain name using the `dns.local_domain_name` field in the [configuration][dhcp-conf] file. ## Stored leases {#stored-leases}