Deploy AdGuardHome

Network-wide software for blocking ads and tracking

Deploy AdGuardHome

Just deployed

/opt/adguardhome/conf

Deploy and Host AdGuard Home on Railway

AdGuard Home is a network-wide, open-source software for blocking ads and trackers. Once set up, it covers all your devices without needing client-side software. This template deploys the official AdGuard Home Docker image on Railway with persistent configuration and work directories, and exposes the web admin interface on a public HTTPS domain.

Deploy on Railway

About Hosting AdGuard Home

Hosting AdGuard Home on Railway runs a single container using the official image adguard/adguardhome:v0.107.79. Two persistent volumes store configuration (/opt/adguardhome/conf) and runtime data (/opt/adguardhome/work). The start command forces the web UI to listen on 0.0.0.0:3000 so Railway can proxy HTTPS traffic to it. Auto-updates are disabled (--no-check-update) for stability.

Important Railway limitation: Railway public domains are HTTP/HTTPS-oriented. Classic DNS on port 53 (UDP/TCP) is not exposed by this template. Use the web UI for management, and configure DNS-over-HTTPS (DoH), DNS-over-TLS (DoT), or point individual devices / a local forwarder at the instance if you need DNS resolution. For full LAN-wide DNS + DHCP you typically need a VPS or home server with host networking.

Common Use Cases

  • Centralized ad & tracker blocking dashboard you can reach from anywhere
  • Remote management of filter lists, query log, and client settings
  • DNS-over-HTTPS / DNS-over-TLS endpoint for browsers, phones, and routers that support it
  • Privacy-focused DNS resolver under your control (no third-party DNS vendor)
  • Testing filter lists and parental controls before rolling them out on a local network

Dependencies for AdGuard Home Hosting

  • AdGuard Home image: adguard/adguardhome:v0.107.79
  • Two persistent volumes — configuration and work directories (already defined in the template)
  • Railway public domain — maps to the web UI on port 3000
  • No database or additional services required

Upstream: AdGuard Home Docs · Docker Wiki · GitHub

Implementation Details

ItemValue
Imageadguard/adguardhome:v0.107.79
Web UI port3000 (forced via --web-addr 0.0.0.0:3000)
Config volume/opt/adguardhome/conf
Work volume/opt/adguardhome/work
Start command--no-check-update -c /opt/adguardhome/conf/AdGuardHome.yaml -w /opt/adguardhome/work --web-addr 0.0.0.0:3000
Restart policyON_FAILURE

The first boot creates AdGuardHome.yaml inside the config volume and presents the initial setup wizard.

Topology

ServiceRoleVolumesPublicNotes
AdGuardHomeAd-blocking DNS + web UI/opt/adguardhome/conf
/opt/adguardhome/work
Yes (port 3000)Single container, restart on failure
Volumes (drives) — what to mount

Volumes are already attached by the template. They survive redeploys.

Mount pathWhat is stored
/opt/adguardhome/confAdGuardHome.yaml, certificates, user settings
/opt/adguardhome/workQuery logs, statistics, filter data, runtime files

Do not remove these volumes — configuration and history will be lost on the next deploy.

Quick Start

  1. Click the Deploy on Railway button above.
  2. Sign in (or create a free Railway account) and deploy.
  3. Wait 1–2 minutes for the service and volumes to come up.
  4. Open the AdGuardHome service → Settings → Networking and open the generated public domain.
  5. Complete the initial setup wizard:
    • Set an admin username and password
    • Choose upstream DNS servers (or keep the defaults)
    • Confirm the web UI is reachable
  6. (Optional) Configure DNS-over-HTTPS or DNS-over-TLS in the AdGuard Home settings if you want encrypted DNS clients to use this instance.

After the wizard finishes you land on the dashboard. All settings are persisted in the config volume.

Configuration

Most settings are managed through the web UI after the first boot. The important container-level choices are already set:

SettingValue / Behavior
Web address0.0.0.0:3000 (required for Railway proxy)
Config file/opt/adguardhome/conf/AdGuardHome.yaml
Work directory/opt/adguardhome/work
Auto-update checkDisabled (--no-check-update)
Restart policyON_FAILURE

Custom Domain

  1. AdGuardHome service → Settings → Networking → Custom Domain.
  2. Add your domain and follow Railway’s DNS instructions.
  3. Railway provisions TLS automatically.
  4. Access the dashboard at https://your.custom.domain.

No extra environment variables are required for the basic web UI.

Updating AdGuard Home

  1. AdGuardHome service → Settings → Source.
  2. Change the image tag (e.g. v0.107.79 → a newer stable tag).
  3. Redeploy.

Always check the AdGuard Home releases before upgrading. Configuration is preserved by the volume.

Traps

Ways this still fails or surprises people:

  • Port 53 is not publicly available — Railway does not expose classic DNS (UDP/TCP 53) on the public domain. This template is primarily for the web admin UI and encrypted DNS protocols (DoH / DoT) that you enable inside AdGuard Home.
  • First-boot wizard required — Until you finish the setup wizard and set an admin password, the instance is not usable.
  • Volumes are mandatory — If the volumes are missing or detached, configuration and query history are lost on every redeploy.
  • Web UI must stay on 3000 — The start command forces --web-addr 0.0.0.0:3000. Changing it without also updating the Railway domain target port will make the public URL stop working.
  • Do not enable DHCP — DHCP requires host networking and broadcast access, which Railway does not provide. Leave DHCP disabled.
  • Resource usage — Filter lists and query logging can grow. Watch disk usage on the volumes and raise memory if you enable many heavy blocklists.

View live logs: service → Deployments → latest deployment → View Logs.

Why Deploy AdGuard Home on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying AdGuard Home on Railway, you get a managed, always-on admin interface and optional encrypted DNS endpoint with persistent storage and automatic HTTPS — no servers to maintain.


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
47
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51