{"id":17684787,"url":"https://github.com/oijkn/adguardhome-doh-dot","last_synced_at":"2025-05-12T21:55:43.865Z","repository":{"id":208896609,"uuid":"495475295","full_name":"oijkn/adguardhome-doh-dot","owner":"oijkn","description":"Official AdGuarHome docker with both DoH (DNS over HTTPS) and DoT (DNS over TLS) clients. Don't browse the Internet insecurely by sending your DNS requests in clear text !","archived":false,"fork":false,"pushed_at":"2022-06-01T19:27:22.000Z","size":47,"stargazers_count":16,"open_issues_count":1,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-20T18:39:37.516Z","etag":null,"topics":["adblocker","adguard-home","adguardhome","cloudflare","dns","dns-over-https","dns-over-tls","docker","docker-compose","network","privacy","raspberry-pi","security","stubby","unbound"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oijkn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-05-23T15:47:01.000Z","updated_at":"2023-11-11T14:35:32.000Z","dependencies_parsed_at":"2023-11-23T21:45:38.762Z","dependency_job_id":"b7123a2e-b2a2-43d3-9626-00b5b6230ddc","html_url":"https://github.com/oijkn/adguardhome-doh-dot","commit_stats":null,"previous_names":["oijkn/adguardhome-doh-dot"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oijkn%2Fadguardhome-doh-dot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oijkn%2Fadguardhome-doh-dot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oijkn%2Fadguardhome-doh-dot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oijkn%2Fadguardhome-doh-dot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oijkn","download_url":"https://codeload.github.com/oijkn/adguardhome-doh-dot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253830883,"owners_count":21971000,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adblocker","adguard-home","adguardhome","cloudflare","dns","dns-over-https","dns-over-tls","docker","docker-compose","network","privacy","raspberry-pi","security","stubby","unbound"],"created_at":"2024-10-24T10:25:03.371Z","updated_at":"2025-05-12T21:55:43.841Z","avatar_url":"https://github.com/oijkn.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Welcome to AdGuardHome DoH/DoT !\n\n## 💻 Introduction\n\n- Official **AdGuardHome Docker** with both **DoH** (DNS over HTTPS) and **DoT** (DNS over TLS) clients.\nDon't browse the Internet insecurely by sending your DNS requests in clear text !\n- Special thanks to [Trinib](https://github.com/trinib/AdGuard-WireGuard-Unbound-Cloudflare) for his amazing work on [AdGuard-WireGuard-Unbound-Cloudflare](https://github.com/trinib/AdGuard-WireGuard-Unbound-Cloudflare/blob/main/README.md) .\n- Image built for Raspberry Pi (arm32/v7,arm64,amd64).\n\n![image](https://user-images.githubusercontent.com/18188407/171486042-e48a9990-562b-4ac9-8c21-5579ddd625ff.png)\n\n\n## 🚀 Installation\n\n**_Don't forget to replace `\u003cpath_to_data\u003e` to your docker data directory._**\n\n**1. Edit docker-compose.yml file**\n- \n- Replace `\u003cpath_to_data\u003e` to your docker data directory.\n- Replace `192.168.1.110` IP address to your AdGuardHome server IP address.\n- Replace `192.168.1.0/24` subnet to your network subnet.\n- Replace `192.168.1.1` gateway to your network gateway.\n- Replace `192.168.1.100/28` subnet to your macvlan subnet.\n- Replace `192.168.1.100` IP address to your host IP address.\n- Replace `eth0` to your network interface name.\n\n```dockerfile\nversion: \"2\"                                                           # Docker Compose version for Portainer\n\nservices:\n  adguardhome:\n    image: oijkn/adguardhome-doh-dot:latest\n    container_name: adguardhome\n    hostname: rpi-adguard\n    environment:\n      - PUID=1000                                                      # User ID (UID)\n      - PGID=100                                                       # Group ID (GID)\n      - TZ=Europe/Paris                                                # Timezone\n    volumes:\n      - \u003cpath_to_data\u003e/adguardhome/conf:/opt/adguardhome/conf\n      - \u003cpath_to_data\u003e/adguardhome/work:/opt/adguardhome/work\n    cap_add:\n      - NET_ADMIN\n    networks:\n      macvlan0:\n        ipv4_address: 192.168.1.110                                    # IP of the container for AdGuardHome\n    restart: unless-stopped\n\nnetworks:\n  macvlan0:\n    driver: macvlan\n    driver_opts:\n      parent: eth0                                                     # Parent interface, configure it depending on your interface name\n    ipam:\n      config:\n        - subnet: 192.168.1.0/24                                       # Subnet of the container\n          gateway: 192.168.1.1                                         # Gateway of the network\n          ip_range: 192.168.1.100/28                                   # Usable Host IP Range: 192.168.1.97 - 192.168.1.110\n          aux_addresses:\n            rpi-srv: 192.168.1.100                                     # Reserved for RPi Server (IP of the host)\n```\n\n**2. Configure the network interface**\n\n- Depending on your network interface name and OS, you may need to configure the network interface of the host to use the macvlan0 network (same subnet, same gateway, same IP for the container etc...).\n- For `macvlan-shim` IP, you must attribute one IP from the range of macvlan subnet\n\n````shell\n# Ethernet interface (eth0)\nallow-hotplug eth0\niface eth0 inet static\n    address 192.168.1.100\n    netmask 255.255.255.0\n    gateway 192.168.1.1\n    dns-nameservers 192.168.1.110\n\n    # create a new network macvlan interface on top of eth0\n    pre-up ip link add macvlan-shim link eth0 type macvlan mode bridge\n\n    # assign an IP and the network space to the new network interface\n    pre-up ip addr add 192.168.1.99/32 dev macvlan-shim\n\n    # bring up the new network interface\n    up ip link set macvlan-shim up\n\n    # add a route to the container\n    post-up ip route add 192.168.1.110/32 dev macvlan-shim\n````\n\n**3. Configure the DNS resolver**\n\n- You must configure the new `nameserver` of your host.\n\n  Edit the file `/etc/resolv.conf` as below :\n\n```\nnameserver 192.168.1.110  # AdGuardHome server IP address\n```\n\n## ☕ How to use it ?\n\n- After configuring the docker-compose.yml file, you have to start the containers with: `docker-compose up -d`\n- Then, you can access the AdGuardHome web interface at: `http://\u003cAdGuardHome_Server_IP\u003e:3000/`\n- `IMPORTANT`: In Listen Interfaces option choose `eth0` (or another name, it depends on your system) and select next\n- Set up `username` \u0026 `password` and then login admin panel (port :80)\n- `IMPORTANT`: In general settings, set \"Query logs retention\" to 24 hours. (I read that for some people logs fill up which slows down Pi and needing a reboot)\n- In AdGuard homepage under settings, select \"DNS settings\"\n  - Delete everything from both _**Upstream**_ and _**Bootstrap DNS**_ server options and add the following for:\n  - DNS over TLS (Unbound) : `127.0.0.1:53`\n  - DNS over HTTPS/Oblivious DNS over HTTPS : `127.0.0.1:5053` (Cloudflared tunnel)\n  - TLS forwarder (Stubby) : `127.0.0.1:8053` \n- `IMPORTANT:` Check \"\u003ca href=\"https://adguard.com/en/blog/in-depth-review-adguard-home.html#dns\"\u003e\u003cb\u003eParallel Request\u003c/b\u003e\u003c/a\u003e\" option for DNS resolvers to work simultaneously.\n- Then in DNS setting look for DNS cache configuration section and set cache size to 0 (caching is already handled by Unbound) and click apply.\n- Click apply and test upstreams\n\n## 📝 Notes\n\n- DoH service (Cloudflared) runs at 127.0.0.1#853.\n- DoT service (Stubby) runs at 127.0.0.1#8053.\n- DoH \u0026 DoT Uses cloudflare (1.1.1.1 / 1.0.0.1) by default\n\n## 📫 Credits\n\n- Trinib for the global configuration [AdGuard-WireGuard-Unbound-Cloudflare](https://github.com/trinib/AdGuard-WireGuard-Unbound-Cloudflare)\n- [Cloudflared](https://developers.cloudflare.com/)\n- [DNS Privacy Stubby resolver](https://github.com/getdnsapi/stubby)\n- [Unbound DNS](https://unbound.net/)\n- [AdGuardHome](https://github.com/AdguardTeam/AdGuardHome/blob/master/README.md)\n\n## ✍️ User Feedback\n\nIf you have any problems with or questions about this image, please contact me through a [GitHub issue](https://github.com/oijkn/adguardhome-doh-dot/issues).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foijkn%2Fadguardhome-doh-dot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foijkn%2Fadguardhome-doh-dot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foijkn%2Fadguardhome-doh-dot/lists"}