Skip to content

๐Ÿ›ก๏ธ AdGuard โ€” Gaius VPS (Instance #2)

Host: Cloud โ€“ Gaius VPS ยท Compose: Cloud/Gaius/adguard/compose.yaml
Stack name: adguard


1. Overview

The second AdGuard Home DNS instance in the homelab fleet, running on the Gaius cloud VPS. It is accessed exclusively via Tailscale (no public port exposure), with the AdGuard container sharing the Tailscale container's network namespace. Exposed on the Cloudflare tunnel at adguard-2.m1ckyb.com for web UI access.


2. Architecture & Services

Service Image Port Role
tailscale-adguard-02 tailscale/tailscale:v1.98.4 3000 (mapped) Tailscale node โ€” provides network namespace for AdGuard
adguard 11notes/adguard:0.107.77 53 (via Tailscale) AdGuard Home DNS server

3. Networking

  • adguard uses network_mode: container:tailscale-adguard-02 โ€” shares Tailscale's network. DNS port 53 is accessible only via Tailscale IP.
  • cloudflare-net โ€” Tailscale container connected for Dockflare tunnel (web UI access).
  • read_only: true + no-new-privileges security hardening on both containers.

4. Persistent Storage

Container Volume Description
adguard adguard.etc (named) AdGuard config
adguard adguard.var (named) AdGuard data (query logs, stats)
tailscale-adguard-02 tailscale (named) Tailscale node identity

5. Environment Variables

Variable Service Description
TAILSCALE_AUTHKEY tailscale-adguard-02 Auth key from .env
TS_HOSTNAME tailscale-adguard-02 Adguard-02
TZ adguard Australia/Sydney

6. Access & Usage

URL Description
https://adguard-2.m1ckyb.com Web UI (via Cloudflare Tunnel)
100.x.x.x:3000 Web UI (via Tailscale IP)
100.x.x.x:53 DNS resolver (via Tailscale)
docker compose -f Cloud/Gaius/adguard/compose.yaml up -d

7. Maintenance & Backup

docker compose -f Cloud/Gaius/adguard/compose.yaml pull
docker compose -f Cloud/Gaius/adguard/compose.yaml up -d

Named volumes are managed by Docker. To back up AdGuard config:

docker run --rm -v adguard_adguard.etc:/data -v /backup:/backup alpine tar czf /backup/adguard-gaius-etc.tar.gz /data