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, and with VMs and LXC containers on Proxmox VE.

Available Sources

  • Docker Labels


    Parse hostnames from Traefik router 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

  • Caddy Labels


    Parse hostnames from caddy-docker-proxy style container labels.

    Caddy Labels

  • nginx-proxy Labels


    Parse VIRTUAL_HOST labels used by jwilder/nginx-proxy.

    nginx-proxy Labels

  • 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

  • Proxmox VE


    Discover VMs and LXC containers on a Proxmox cluster and create A records from VM names.

    Proxmox

Source Priority

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

  1. Native labels (explicit dnsweaver configuration)
  2. Traefik labels (reverse proxy configuration)
  3. Caddy labels (caddy-docker-proxy configuration)
  4. nginx-proxy labels (VIRTUAL_HOST)
  5. Traefik files (dynamic configuration)
  6. Kubernetes (resource spec hostnames)
  7. 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.