Deploy AdGuardHome
Network-wide software for blocking ads and tracking
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.
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
| Item | Value |
|---|---|
| Image | adguard/adguardhome:v0.107.79 |
| Web UI port | 3000 (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 policy | ON_FAILURE |
The first boot creates AdGuardHome.yaml inside the config volume and presents the initial setup wizard.
Topology
| Service | Role | Volumes | Public | Notes |
|---|---|---|---|---|
| AdGuardHome | Ad-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 path | What is stored |
|---|---|
/opt/adguardhome/conf | AdGuardHome.yaml, certificates, user settings |
/opt/adguardhome/work | Query logs, statistics, filter data, runtime files |
Do not remove these volumes — configuration and history will be lost on the next deploy.
Quick Start
- Click the Deploy on Railway button above.
- Sign in (or create a free Railway account) and deploy.
- Wait 1–2 minutes for the service and volumes to come up.
- Open the AdGuardHome service → Settings → Networking and open the generated public domain.
- 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
- (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:
| Setting | Value / Behavior |
|---|---|
| Web address | 0.0.0.0:3000 (required for Railway proxy) |
| Config file | /opt/adguardhome/conf/AdGuardHome.yaml |
| Work directory | /opt/adguardhome/work |
| Auto-update check | Disabled (--no-check-update) |
| Restart policy | ON_FAILURE |
Custom Domain
- AdGuardHome service → Settings → Networking → Custom Domain.
- Add your domain and follow Railway’s DNS instructions.
- Railway provisions TLS automatically.
- Access the dashboard at
https://your.custom.domain.
No extra environment variables are required for the basic web UI.
Updating AdGuard Home
- AdGuardHome service → Settings → Source.
- Change the image tag (e.g.
v0.107.79→ a newer stable tag). - 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
AdGuardHome
adguard/adguardhome:v0.107.79