Self-host coredns
v1.15.0A flexible DNS server that chains plugins
- Stars
- 14 426
- Port
- 53 (DNS (plain UDP/TCP default; other transports use ports set per Server Block, e.g. TLS/HTTPS endpoints))
coredns/corednsWhat is coredns?
CoreDNS is a fast, flexible DNS server and forwarder written in Go, a graduated CNCF project whose nearly all functionality lives in chained plugins. It can answer over UDP/TCP, DNS over TLS, HTTPS/2, HTTP/3, QUIC and gRPC, serve zones from RFC 1035-style master files or /etc/hosts-style files, act as primary (with zone transfers) or secondary (AXFR) server, sign zones on the fly with DNSSEC, cache responses, forward queries to upstream recursive nameservers, load-balance answers, rewrite queries, translate IPv6 via DNS64, restrict access with ACLs and expose Prometheus metrics plus query and error logs. Service-discovery backends include Kubernetes, etcd and cloud DNS APIs such as AWS Route 53, Azure DNS and GCP Cloud DNS, and plugins can be compiled in or out. You run it as a single binary with a Corefile (default port 53, overridable with -dns.port), as pre-compiled release binaries, or via the official Docker image; systemd and other deployment examples live in the separate coredns/deployment repository. There is no web UI — configuration is entirely file-based, and adding external plugins requires recompiling CoreDNS.
coredns alternatives
ddns-goOpen-source self-hosted DDNS tool that detects your public IPv4/IPv6 and updates Cloudflare, Dnspod, Aliyun and more via API, with a web UI, webhooks and Docker images.Compareddns-go with coredns
dnsweaverSelf-hosted DNS automation for homelabs: reads from 7 sources, writes to 12 providers with split-horizon DNS.Comparednsweaver with coredns
pdnsPowerDNS is an open-source DNS suite with an authoritative server, a recursive resolver and dnsdist loadbalancer, self-hosted via packages, Docker images or source.Comparepdns with coredns
docker-dyndnsSelf-hosted dynamic DNS server using BIND9 and Go API in Docker. Manage custom subdomains with basic auth via browser, curl, or router.Comparedocker-dyndns with coredns
Technitium DNS ServerSelf-hosted, open-source authoritative and recursive DNS server with a web console, DNS sinkhole ad blocking, DoH/DoT/DoQ, and a built-in DHCP server.CompareTechnitium DNS Server with coredns
docker-ddnsSelf-hosted dynamic DNS server using Docker, Go, and Bind9 that lets you connect to home devices from anywhere using a VPS and domain.Comparedocker-ddns with coredns
mikrotik-dnsSelf-hosted DNS analytics dashboard collecting MikroTik logs via UDP with real-time React UI, domain/client analysis, and live DNS search.Comparemikrotik-dns with coredns
cloudflare-verified-ddnsSelf-hosted Cloudflare DDNS updater verifying DNS via DoH, adaptive polling, detailed telemetry. Python 3.13+, minimal Docker image.Comparecloudflare-verified-ddns with coredns
Should you self-host coredns?
coredns scores 76/100 on selfhost.directory (how scoring works) and ranks #4 of 41 in DNS. It has 14 426 GitHub stars, +63 in the last 30 days.
It shipped 10 stable releases in the past year. The latest, v1.15.0, came out on 21 October 2026. New versions land roughly every 6 weeks.
Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Apache-2.0-licensed and written mostly in Go.
Its closest alternative on selfhost.directory is Pi-hole (87/100, 61 854 stars). It scores higher overall, so compare the two before you pick. See coredns vs Pi-hole side by side.
Features
- Access control lists
- Authoritative zone serving from files
- DNS64 IPv6 translation
- Forwarding to upstream resolvers
- Health check endpoint
- Load balancing of responses
- Multi-transport DNS serving (UDP/TCP, DoT, DoH, DoH3, DoQ, gRPC)
- On-the-fly DNSSEC signing
- Prometheus Metrics
- Query and error logging
- Query Rewriting
- Response caching
- Secondary server (AXFR)
- Service discovery backends (Kubernetes, etcd)
- Zone transfers as primary
coredns README
CoreDNS is a DNS server/forwarder, written in Go, that chains plugins. Each plugin performs a (DNS) function.
More in DNS
d2c.shd2c.sh is a self-hosted, open-source Bash script that keeps Cloudflare A and AAAA records in sync with your public IP, with optional Gotify and Telegram notifications.
ddnsSelf-hosted, open-source DDNS client that automatically updates DNS records on DigitalOcean, replacing services like DynDNS or No-IP with a free personal solution.
ddns-goOpen-source self-hosted DDNS tool that detects your public IPv4/IPv6 and updates Cloudflare, Dnspod, Aliyun and more via API, with a web UI, webhooks and Docker images.
ddns-updaterOpen-source self-hosted DDNS client that keeps A and AAAA records current for many DNS providers, with a web UI, Shoutrrr notifications and a 12MB Docker image.
DesignateDesignate is a self-hosted, open-source DNSaaS for OpenStack with REST API, CLI, and Horizon dashboard for DNS zone management.
dnsboxDNSBox is a self-hosted DNS server that issues Let's Encrypt SSL certs for any public IP without a domain, enabling instant HTTPS for servers and IoT devices.
dnscrypt-proxySelf-hosted, open-source DNS proxy for your machine or router: encrypts queries with DNSCrypt, DoH and ODoH, filters ads/malware, caches and balances resolvers.
dnsweaverSelf-hosted DNS automation for homelabs: reads from 7 sources, writes to 12 providers with split-horizon DNS.
docker-adguardMinimal, security-hardened Docker image for self-hosted AdGuard Home ad blocking. Runs rootless, distroless from scratch, with health checks and CVE scanning.
docker-duckdnsA self-hosted Docker container that automatically updates DuckDNS subdomains with your current public IP address every 5 minutes, supporting both IPv4 and IPv6.
docker-dyndnsSelf-hosted dynamic DNS server using BIND9 and Go API in Docker. Manage custom subdomains with basic auth via browser, curl, or router.
docker-pi-holeSelf-hosted, open-source Docker image of Pi-hole: network-wide DNS ad blocking with a web dashboard, query log, blocklists, built-in DHCP server and a REST API.
0 comments