Your homelab. Fewer loose ends.

Your services move.
Your DNS keeps up.

A container starts. A VM boots. A service moves.
dnsweaver keeps the matching records in the DNS providers you already use.

One Go binary · Your infrastructure · Open source

dnsweaver / workload → recordILLUSTRATION
How the pieces connect. An illustration using example names and addresses.
Containers. VMs. Clusters.Run your sources together.Internal + public DNS.Choose where records belong.One Go binary.amd64 and arm64.

A small bridge between moving parts.

Let the labels
do the typing.

Your workloads already have names. Read them from Traefik, Caddy, nginx-proxy or native labels. Connect Kubernetes, Proxmox VE or Incus too. Run the sources you need together.

Domain rules select the DNS providers. dnsweaver creates and updates the matching records, then reconciles changes as workloads come and go. You choose the ownership and cleanup policy.

TraefikCaddynginx-proxyNative labelsKubernetesProxmox VEIncus

Split-horizon DNS.

One name.
The right answer on each side.

Explore two views of the same hostname
app.example.comOne workload hostname

Inside your network

Your internal resolver.

A RECORD192.0.2.20

The address configured for the internal provider.

Outside your network

Your public provider.

A RECORD203.0.113.20

The address configured for the public provider.

Both views: the same hostname has a different answer in each configured DNS provider.

Interactive illustration. These are documentation addresses, not a live DNS lookup. Configure split-horizon DNS

Bring your DNS.

The resolver you run.
The provider you picked.

Keep internal names on your own resolver. Send public records to a hosted DNS API. Different providers can work from the same workload labels.

Use domain rules and provider instances to decide where each record belongs. The docs cover credentials, supported record types and each provider's options.

TechnitiumCloudflareOVHcloudRFC 2136PowerDNSPi-holeAdGuard HomeOPNsensepfSenseUniFidnsmasqWebhook

Small tool. Visible decisions.

Know what it owns.
See what it's doing.

Cleanup is a policy
you choose.

Managed mode tracks ownership and removes owned records according to your cleanup settings. Additive mode creates records without deleting them.

ManagedOwnership-aware cleanup
AdditiveCreate without deleting
Dry runInspect planned changes

Authoritative mode can delete unrecognized records. Use it only for a zone dedicated to dnsweaver. Read the mode guide.

Keep the machinery
in view.

Structured logs, health endpoints and Prometheus metrics. Check the process and follow reconciliation without adding another dashboard.

# Process and monitoring endpoints
/health health check
/ready readiness check
/metrics Prometheus metrics

Keep management endpoints on a trusted interface. Provider credentials can come from files.

Rivet the jackdaw at the resolver desk, where all three prices are zero

The pricing department

Every plan
resolves to $0.

Free and open source. Rivet has a slightly longer explanation.

One fewer thing to update by hand.

Give your DNS
some follow-through.

Run dnsweaver as a container or a standalone binary. Connect a source, configure a provider, and start with a dry run.

The docs cover discovery, credentials, record ownership and upgrades. Review the provider and cleanup settings before starting reconciliation.