Skip to content

About

GreenlightedNS (“Greenlight”) is a DNS-based load balancer for IT administrators and self-hosters who want to improve the reliability and performance of their applications without relying on large public cloud providers.

Create load-balanced DNS names backed by healthchecks. Get support for IPv6 and DNSSEC.

Currently, it is most suitable for moderately technical users who already have a working understanding of DNS. Over time, the goal is to make it increasingly easy for less-technical users as well. Feedback is always welcome at support@greenlightedns.net.

FeatureStatusNotes
Weighted Round Robin recordsimplementeddefine a weighted pool of health-checked servers
Traditional/Plain Recordsimplementedregular A and AAAA
Autozonesimplementedeach user is given a randomly-generated domain in which to create their own records
DNSSECimplementedleverages PowerDNS’s battle-tested DNSSEC implementation
A and AAAA recordsimplemented
Additional record typesplannedCNAME, SVCB/HTTPS, TLSA, TXT, CAA, MX
others to be added according to demand
Failover recordsconsideringreturn the first healthy server from an ordered list of healthchecked servers
this is already possible, though it is only practical for small numbers of servers
Geolocation recordsplannedreturn the server that’s geographically nearest to the user (based on IP geolocation database info)
Topology recordsconsideringreturn the server that’s nearest to the user based on a user-defined network topology
ICMP (ping) healthchecksplanned
HTTP healthchecksimplementeduse status codes of HTTP GET requests
Monitoringimplementedprometheus metrics for healthchecks
Custom domainsimplementedcreate custom domains for the purpose of delegation
Stable HTTP APIplannedparticularly intended to support ACME dns-01 challenges
Shared functionsplannedfunctions that can be defined once and reused multiple times
  • Because Greenlight uses DNS, DNS’s own limitations apply:

    • Clients and recursive nameservers ultimately control their own cache. Therefore, they may or may not honor the TTLs for a given record. Behavior varies more than you might think.
    • All records with a given type (e.g. AAAA) on a given name must share the same TTL
  • No High Availability (HA)/horizontal scaling. This may be planned in the future. If you need HA, you can use something like Litestream to asynchronously replicate Greenlight’s SQLite database.

    If you run Greenlight in your environment and find this insufficient, please tell us about your needs.