gravity is a free, open source networking & connectivity project written in Go and released under GPL-3.0. It has 930 GitHub stars, 31 forks and 59 open issues, and was last pushed 12 hours ago. On this registry it ranks #45 of 47 tracked projects in Networking & Connectivity, with 5 head-to-head comparisons available.

What is gravity?

Gravity is a fully-replicated DNS, DHCP and TFTP server with ad-blocking, written in Go and backed by etcd, for self-hosters and network operators who want name and address services that stay consistent across a cluster.

What it is

Gravity is an infrastructure server written in Go, licensed under GPL-3.0, that combines DNS, DHCP and TFTP in a single service whose state is stored in and replicated through etcd. The project ships a WebUI and an HTTP API for administration, and its topic list flags ad-blocking, DNS caching, Prometheus metrics and a WebUI among its concerns. Screenshots in the repository show interfaces for DNS zones, DNS records, DHCP leases and cluster nodes, and the README points to gravity.beryju.io for fuller documentation.

The concrete problem it addresses is running authoritative network services on more than one node without duplicated or drifting configuration. Because gravity keeps its data in etcd and describes itself as fully-replicated, zone records, DHCP leases and other state are shared across cluster members rather than maintained per host, which replaces the arrangement of running separate, independently configured DNS and DHCP daemons on each machine that needs to answer requests.

Key capabilities

  • Serves DNS with zone and record management surfaced through the WebUI, as shown in docs/static/images/dns_zones.png and docs/static/images/dns_records.png.
  • Runs a DHCP server with lease tracking, illustrated by docs/static/images/dhcp_leases.png.
  • Provides a TFTP server alongside DNS and DHCP in the same process.
  • Replicates its data through etcd and exposes a cluster overview, shown in docs/static/images/cluster_nodes.png.
  • Performs ad-blocking as part of DNS resolution, and is tagged with dns-cache for caching behaviour.
  • Offers an HTTP api alongside the WebUI so configuration can be driven programmatically.
  • Exports Prometheus metrics, with a Grafana dashboard available as docs/static/images/grafana.png.

Who uses it and how

  • Operators who need DNS and DHCP available on multiple nodes use the etcd-backed replication so every cluster member answers from the same state.
  • Self-hosters who want ad-blocking at the resolver level run gravity as the DNS server for their network rather than filtering at each client.
  • Administrators driving configuration through automation use the HTTP API instead of the WebUI for repeatable setup of zones and records.
  • Teams responsible for lease and zone visibility rely on the WebUI screens for DNS zones, DNS records and DHCP leases during day-to-day operations.
  • Operators with existing monitoring stacks pull the Prometheus metrics and render the Grafana dashboard to watch the service.

Getting started

The README does not list an install command itself; it directs readers to https://gravity.beryju.io for setup and further information, and the repository's release version is tracked in web/package.json.

How it compares

The project's topic list tags blocky, placing it alongside blocky-style DNS ad-blocking resolvers, while gravity additionally carries DHCP and TFTP and replicates its state through etcd rather than keeping configuration local to one host. It is offered under GPL-3.0 with 929 stars and 31 forks at the time of writing.

When to use it — and when not

You must be willing to operate an etcd cluster as gravity's backing store, and to run a GPL-3.0 codebase yourself; anyone unwilling to administer replicated infrastructure or wanting a single-host resolver should pick a simpler tool instead. The README excerpt itself is thin — a badge block, one line of description and screenshots with an external docs link — so expect to rely on gravity.beryju.io for operational detail, and note the 59 open issues as a sign of ongoing rough edges.

project readme (upstream, from github) — read inline


Codecov GitHub Workflow Status Latest version

Fully-replicated DNS, DHCP and TFTP Server backed by etcd.

Screenshots

See gravity.beryju.io for more info.

Frequently asked questions

Is gravity free to use?

gravity is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does gravity do?

Fully-replicated DNS and DHCP Server with ad-blocking powered by etcd

What is gravity written in?

gravity is primarily written in Go. Its source is publicly available at https://github.com/BeryJu/gravity, and it has 930 GitHub stars.