selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

coredns logo

Self-host coredns

v1.15.0

A flexible DNS server that chains plugins

ReleaseOpen SourceApache-2.0
Updated3 weeks ago
LanguageGo
Setup difficultyModerate
Stars
14 426
Port
53 (DNS (plain UDP/TCP default; other transports use ports set per Server Block, e.g. TLS/HTTPS endpoints))
Docker
coredns/coredns
Install with Docker

What 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

All self-hosted alternatives to SkyDNS →

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

Documentation CodeQL Go Tests CircleCI Docker Pulls Go Report Card CII Best Practices OpenSSF Scorecard

CoreDNS is a DNS server/forwarder, written in Go, that chains plugins. Each plugin performs a (DNS) function.

How to install coredns

Install coredns with Docker

docker pull coredns/coredns

Every release is pushed as a Docker image to the public Docker hub for the CoreDNS organization; the image is scratch + CoreDNS + TLS certificates.

How to configure coredns

  • -confPath to the Corefile; when not given CoreDNS looks for a file named Corefile in the current directory
  • -dns.port53Flag to override the default listening port (53); an explicitly defined port in a Server Block cannot be overruled by it
  • -log-formattextOutput format for operational logs, applies process-wide including Corefile reloads

    values: text, json

  • -pluginsFlag to list all the compiled plugins
  • COREDNS_PLUGINSEnvironment variable with a comma-separated list of extra plugins to enable when building

coredns releases & version history

@ Every self-hosted release, weekly

One Monday email with the week's stable releases across the directory.

More in DNS

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…