Skip to content

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.

Available Sources

  • Docker Labels


    Parse hostnames from Traefik, Caddy, and nginx-proxy labels on Docker containers.

    Docker Labels

  • Docker Swarm


    Discover services in Docker Swarm mode with support for service labels and tasks.

    Swarm Mode

  • Traefik Files


    Watch Traefik dynamic configuration files for hostname changes.

    Traefik Files

  • Native Labels


    Use dnsweaver-specific labels for explicit DNS record configuration.

    Native Labels

  • Kubernetes


    Automatic hostname extraction from Ingress, IngressRoute, HTTPRoute, and Service resources.

    Kubernetes

Source Priority

When multiple sources provide the same hostname, dnsweaver uses the following priority:

  1. Native labels (explicit dnsweaver configuration)
  2. Traefik/Caddy labels (reverse proxy configuration)
  3. Traefik files (dynamic configuration)
  4. Kubernetes (resource spec hostnames)

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
Kubernetes Resource spec fields .spec.rules[].host (Ingress)

Multiple hostnames

Containers and Kubernetes resources can expose multiple hostnames. All discovered hostnames are processed independently and matched against configured provider domains.