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.

Feature Status Notes
Weighted Round Robin records implemented define a weighted pool of health-checked servers
Traditional/Plain Records implemented regular records like A, AAAA, TXT
Autozones implemented each user is given a randomly-generated domain in which to create their own records
DNSSEC implemented leverages PowerDNS’s battle-tested DNSSEC implementation
A, AAAA, CAA, CNAME, MX, TXT records implemented
Additional record types planned SVCB/HTTPS, TLSA
others to be added according to demand
Failover records considering return 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 records planned return the server that’s geographically nearest to the user (based on IP geolocation database info)
Topology records considering return the server that’s nearest to the user based on a user-defined network topology
ICMP (ping) healthchecks planned
HTTP healthchecks implemented use status codes of HTTP GET requests
Monitoring implemented prometheus metrics for healthchecks
Custom domains implemented create custom domains for the purpose of delegation
Stable HTTP API planned particularly intended to support ACME dns-01 challenges
Shared functions planned functions 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.