Nomploy Nomad Packs

← All packs

adguardhome v0.1.0

Networking

AdGuard Home — a network-wide DNS server that blocks ads, trackers, and malware for every device on your network, with a web dashboard, filter lists, and per-client rules. Deployed as a single host-networked Nomad service with work and config volumes.

nomad-pack run adguardhome --registry nomploy
1 task dns 53setup 3000web 80 2 volumes image adguard/adguardhome:latest
Variables 11
values.hcl

Save as values.hcl, edit, then run:

nomad-pack run adguardhome -f values.hcl --registry nomploy
# The name of the Nomad job.
job_name = "adguardhome"

# The Nomad namespace to deploy into.
namespace = "default"

# The datacenters to deploy to.
datacenters = ["*"]

# The AdGuard Home container image. Pin a tag in production.
image = "adguard/adguardhome:latest"

# Host port for the DNS server (TCP and UDP).
dns_port = 53

# Host port for the first-run setup wizard.
setup_port = 3000

# Host port for the admin dashboard (choose this same value in the setup wizard).
web_port = 80

# Named volume for runtime data — query log, stats, filters (/opt/adguardhome/work).
work_volume = "adguardhome_work"

# Named volume for the configuration file (/opt/adguardhome/conf).
conf_volume = "adguardhome_conf"

# Placement constraints. Pin to the node holding the volumes. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []

# The task resources.
resources = {
    cpu    = 300
    memory = 256
  }
NameTypeDefaultDescription
job_name string
"adguardhome"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"adguard/adguardhome:latest"
The AdGuard Home container image. Pin a tag in production.
dns_port number
53
Host port for the DNS server (TCP and UDP).
setup_port number
3000
Host port for the first-run setup wizard.
web_port number
80
Host port for the admin dashboard (choose this same value in the setup wizard).
work_volume string
"adguardhome_work"
Named volume for runtime data — query log, stats, filters (/opt/adguardhome/work).
conf_volume string
"adguardhome_conf"
Named volume for the configuration file (/opt/adguardhome/conf).
constraints list
[]
Placement constraints. Pin to the node holding the volumes. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
resources object
{
    cpu    = 300
    memory = 256
  }
The task resources.
Readme

adguardhome

AdGuard Home — a network-wide DNS server that blocks ads, trackers, and malware for every device on your network, with a web dashboard, filter lists, DNS-over-HTTPS/TLS, and per-client rules.

Single host-networked Nomad service with work and conf volumes.

Deploy

nomad-pack registry add nomploy https://github.com/Nomploy/nomad-packs
nomad-pack run adguardhome --registry=nomploy

Configure

Variable Default Description
dns_port 53 DNS server port (TCP + UDP).
setup_port 3000 First-run setup wizard port.
web_port 80 Admin dashboard port (pick this in the wizard).
work_volume adguardhome_work /opt/adguardhome/work — query log, stats, filters.
conf_volume adguardhome_conf /opt/adguardhome/conf — configuration.
image adguard/adguardhome:latest Container image. Pin a tag in production.
resources { cpu = 300, memory = 256 } Task resources.

First run

Open http://<node-ip>:3000, run the wizard, keep the admin interface on web_port and DNS on dns_port, and create your login. Then set your router's (or devices') DNS to <node-ip>.

Port 53 must be free on the host — a systemd-resolved stub listener commonly holds it; disable DNSStubListener or choose another dns_port. Pin the job to the node holding the volumes with constraints.