Sources¶
dnsweaver discovers hostnames to manage from multiple sources. Each source type extracts hostnames differently, allowing dnsweaver to work with existing reverse proxy configurations on Docker and Kubernetes, and with VMs and LXC containers on Proxmox VE.
Available Sources¶
-
Docker Labels
Parse hostnames from Traefik router 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.
-
Caddy Labels
Parse hostnames from caddy-docker-proxy style container labels.
-
nginx-proxy Labels
Parse
VIRTUAL_HOSTlabels used by jwilder/nginx-proxy. -
Native Labels
Use dnsweaver-specific labels for explicit DNS record configuration.
-
Kubernetes
Automatic hostname extraction from Ingress, IngressRoute, HTTPRoute, and Service resources.
-
Proxmox VE
Discover VMs and LXC containers on a Proxmox cluster and create A records from VM names.
Source Priority¶
When multiple sources provide the same hostname, dnsweaver uses the following priority:
- Native labels (explicit dnsweaver configuration)
- Traefik labels (reverse proxy configuration)
- Caddy labels (caddy-docker-proxy configuration)
- nginx-proxy labels (
VIRTUAL_HOST) - Traefik files (dynamic configuration)
- Kubernetes (resource spec hostnames)
- Proxmox VE (VM/LXC name + domain suffix)
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 / caddy_<n> |
caddy=app.example.com |
| Docker (nginx-proxy) | VIRTUAL_HOST label |
VIRTUAL_HOST=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 |
| Kubernetes | Resource spec fields | .spec.rules[].host (Ingress) |
| Proxmox VE | VM/LXC name + domain suffix | webserver + home.example.com |
Multiple hostnames
Containers and Kubernetes resources can expose multiple hostnames. All discovered hostnames are processed independently and matched against configured provider domains.