{"id":37123003,"url":"https://github.com/ncdc/coredns","last_synced_at":"2026-01-14T14:12:46.939Z","repository":{"id":57588093,"uuid":"110568207","full_name":"ncdc/coredns","owner":"ncdc","description":"CoreDNS is a DNS server that chains plugins","archived":false,"fork":true,"pushed_at":"2017-11-13T15:50:11.000Z","size":29008,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-23T07:05:22.499Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://coredns.io","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"coredns/coredns","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ncdc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-13T15:49:59.000Z","updated_at":"2017-11-13T15:50:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ncdc/coredns","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/ncdc/coredns","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncdc%2Fcoredns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncdc%2Fcoredns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncdc%2Fcoredns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncdc%2Fcoredns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ncdc","download_url":"https://codeload.github.com/ncdc/coredns/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ncdc%2Fcoredns/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28422408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T13:30:50.153Z","status":"ssl_error","status_checked_at":"2026-01-14T13:29:08.907Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-14T14:12:46.351Z","updated_at":"2026-01-14T14:12:46.925Z","avatar_url":"https://github.com/ncdc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CoreDNS](https://coredns.io/images/CoreDNS_Colour_Horizontal.png)](https://coredns.io)\n\n[![Documentation](https://img.shields.io/badge/godoc-reference-blue.svg)](https://godoc.org/github.com/coredns/coredns)\n[![Build Status](https://img.shields.io/travis/coredns/coredns/master.svg?label=build)](https://travis-ci.org/coredns/coredns)\n[![Code Coverage](https://img.shields.io/codecov/c/github/coredns/coredns/master.svg)](https://codecov.io/github/coredns/coredns?branch=master)\n[![Go Report Card](https://goreportcard.com/badge/github.com/coredns/coredns)](https://goreportcard.com/report/coredns/coredns)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fcoredns%2Fcoredns.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fcoredns%2Fcoredns?ref=badge_shield)\n[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1250/badge)](https://bestpractices.coreinfrastructure.org/projects/1250)\n\nCoreDNS (written in Go) chains [plugins](https://coredns.io/plugins). Each plugin performs a DNS\nfunction.\n\nCoreDNS is a [Cloud Native Computing Foundation](https://cncf.io) inception level project.\n\nCoreDNS is the successor to [SkyDNS](https://github.com/skynetservices/skydns). SkyDNS is a thin\nlayer that exposes services in etcd in the DNS. CoreDNS builds on this idea and is a **generic** DNS\nserver that can talk to multiple backends (etcd, kubernetes, etc.).\n\nCoreDNS aims to be a fast and flexible DNS server. The keyword here is *flexible*: with CoreDNS you\nare able to do what you want with your DNS data. And if not: write a plugin!\n\nCoreDNS can listen for DNS request coming in over UDP/TCP (go'old DNS), TLS ([RFC\n7858](https://tools.ietf.org/html/rfc7858)) and [gRPC](https://grpc.io) (not a standard).\n\nCurrently CoreDNS is able to:\n\n* Serve zone data from a file; both DNSSEC (NSEC only) and DNS are supported (*file*).\n* Retrieve zone data from primaries, i.e., act as a secondary server (AXFR only) (*secondary*).\n* Sign zone data on-the-fly (*dnssec*).\n* Load balancing of responses (*loadbalance*).\n* Allow for zone transfers, i.e., act as a primary server (*file*).\n* Automatically load zone files from disk (*auto*).\n* Caching (*cache*).\n* Health checking endpoint (*health*).\n* Use etcd as a backend, i.e., a 101.5% replacement for\n  [SkyDNS](https://github.com/skynetservices/skydns) (*etcd*).\n* Use k8s (kubernetes) as a backend (*kubernetes*).\n* Serve as a proxy to forward queries to some other (recursive) nameserver (*proxy*).\n* Provide metrics (by using Prometheus) (*metrics*).\n* Provide query (*log*) and error (*error*) logging.\n* Support the CH class: `version.bind` and friends (*chaos*).\n* Profiling support (*pprof*).\n* Rewrite queries (qtype, qclass and qname) (*rewrite*).\n* Echo back the IP address, transport and port number used (*whoami*). This is also the default\n  plugin that gets loaded when CoreDNS can't find a Corefile to load.\n\nEach of the plugins has a README.md of its own, see [coredns.io/plugins](https://coredns.io/plugins)\nfor all in-tree plugins, and [coredns.io/explugins](https://coredns.io/explugins) for all\nout-of-tree plugins.\n\n## Status\n\nCoreDNS can be used as an authoritative nameserver for your domains. CoreDNS should be able to\nprovide you with enough functionality to replace parts of BIND 9, Knot, NSD or PowerDNS and SkyDNS.\n\n## Compilation\n\nCheck out the project and do dependency resolution with:\n\n    go get github.com/coredns/coredns\n\nSome of the dependencies require Go version 1.8 or later.\n\n(If you already have the source of CoreDNS checked out in the appropriate place in your `GOPATH`, you can get all\ndependencies with `go get ./...`.)\n\nThen use `go build` as you would normally do:\n\n    go build\n\nThis should yield a `coredns` binary.\n\n## Compilation with Docker\n\nCoreDNS requires Go to compile. However, if you already have docker installed and prefer not to setup\na Go environment, you could build coredns easily:\n\n```\n$ docker run --rm -i -t -v $PWD:/go/src/github.com/coredns/coredns \\\n      -w /go/src/github.com/coredns/coredns golang:1.9 make\n```\n\nThe above command alone will have `coredns` binary generated.\n\n## Examples\n\nWhen starting CoreDNS without any configuration, it loads the\n[*whoami*](https://coredns.io/plugins/whoami) plugin and starts listening on port 53 (override with\n`-dns.port`), it should show the following:\n\n~~~ txt\n.:53\n2016/09/18 09:20:50 [INFO] CoreDNS-001\nCoreDNS-001\n~~~\n\nAny query send to port 53 should return some information; your sending address, port and protocol\nused.\n\nIf you have a Corefile without a port number specified it will, by default, use port 53, but you\ncan override the port with the `-dns.port` flag:\n\n`./coredns -dns.port 1053`, runs the server on port 1053.\n\nStart a simple proxy, you'll need to be root to start listening on port 53.\n\n`Corefile` contains:\n\n~~~ corefile\n.:53 {\n    proxy . 8.8.8.8:53\n    log\n}\n~~~\n\nJust start CoreDNS: `./coredns`. Then just query on that port (53). The query should be forwarded to\n8.8.8.8 and the response will be returned. Each query should also show up in the log which is\nprinted on standard output.\n\nServe the (NSEC) DNSSEC-signed `example.org` on port 1053, with errors and logging sent to standard\noutput. Allow zone transfers to everybody, but specifically mention 1 IP address so that CoreDNS can\nsend notifies to it.\n\n~~~ txt\nexample.org:1053 {\n    file /var/lib/coredns/example.org.signed {\n        transfer to *\n        transfer to 2001:500:8f::53\n    }\n    errors\n    log\n}\n~~~\n\nServe `example.org` on port 1053, but forward everything that does *not* match `example.org` to a recursive\nnameserver *and* rewrite ANY queries to HINFO.\n\n~~~ txt\n.:1053 {\n    rewrite ANY HINFO\n    proxy . 8.8.8.8:53\n\n    file /var/lib/coredns/example.org.signed example.org {\n        transfer to *\n        transfer to 2001:500:8f::53\n    }\n    errors\n    log\n}\n~~~\n\nIP addresses are also allowed. They are automatically converted to reverse zones:\n\n~~~ corefile\n10.0.0.0/24 {\n    whoami\n}\n~~~\nMeans you are authoritative for `0.0.10.in-addr.arpa.`.\n\nThis also works for IPv6 addresses. If for some reason you want to serve a zone named `10.0.0.0/24`\nadd the closing dot: `10.0.0.0/24.` as this also stops the conversion.\n\nThis even works for CIDR (See RFC 1518 and 1519) addressing, i.e `10.0.0.0/25`, CoreDNS will then\ncheck if the `in-addr` request falls in the correct range.\n\nListening on TLS and for gRPC? Use:\n\n~~~ corefile\ntls://example.org grpc://example.org {\n    whoami\n}\n~~~\n\nSpecifying ports works in the same way:\n\n~~~ txt\ngrpc://example.org:1443 {\n    # ...\n}\n~~~\n\nWhen no transport protocol is specified the default `dns://` is assumed.\n\n## Community\n\n- Website: \u003chttps://coredns.io\u003e\n- Blog: \u003chttps://blog.coredns.io\u003e\n- Twitter: [@corednsio](https://twitter.com/corednsio)\n- Github: \u003chttps://github.com/coredns/coredns\u003e\n- Mailing list/group: \u003ccoredns-discuss@googlegroups.com\u003e\n- Slack: #coredns on \u003chttps://slack.cncf.io\u003e\n\n## Deployment\n\nExamples for deployment via systemd and other use cases can be found in the\n[deployment repository](https://github.com/coredns/deployment).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncdc%2Fcoredns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fncdc%2Fcoredns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fncdc%2Fcoredns/lists"}