Sources¶
dnsweaver discovers hostnames to manage from multiple sources. Each source type extracts hostnames differently, allowing dnsweaver to work with existing reverse proxy configurations.
Available Sources¶
-
Docker Labels
Parse hostnames from Traefik, Caddy, and nginx-proxy labels on Docker containers.
-
Docker Swarm
Discover services in Docker Swarm mode with support for service labels and tasks.
-
Traefik Files
Watch Traefik dynamic configuration files for hostname changes.
-
Native Labels
Use dnsweaver-specific labels for explicit DNS record configuration.
Source Priority¶
When multiple sources provide the same hostname, dnsweaver uses the following priority:
- Native labels (explicit dnsweaver configuration)
- Traefik/Caddy labels (reverse proxy configuration)
- Traefik files (dynamic configuration)
Hostname Extraction¶
Each source extracts hostnames differently:
| Source | Extracts From | Example Label/Config |
|---|---|---|
| Docker (Traefik) | traefik.http.routers.*.rule |
Host(`app.example.com`) |
| Docker (Caddy) | caddy or caddy_* |
caddy=app.example.com |
| Docker Swarm | Service labels | Same as Docker |
| Traefik Files | http.routers.*.rule in YAML/TOML |
Standard Traefik config |
| Native | dnsweaver.hostname |
dnsweaver.hostname=app.example.com |
Multiple hostnames
Containers can expose multiple hostnames. All discovered hostnames are processed independently and matched against configured provider domains.