#dns-server #dns #maxmind #dns-records #yaml-config

app racine

A basic DNS server with geo-lookup for multi-region routing

4 releases

0.1.4 Aug 30, 2023
0.1.3 Aug 18, 2023
0.1.2 Aug 16, 2023
0.1.1 Aug 16, 2023

#1172 in Database interfaces

25 downloads per month

MIT license

16KB
295 lines

racine

crates

A basic DNS server with geo-lookup for multi-region routing.

Getting Started

NOTE: racine requires the GeoLite2 Country database from MaxMind. For more information and to sign up for the download, go here.

Installing

Download the latest binary from the releases page.

Or install racine with cargo.

cargo install racine

Usage

Create a YAML configuration file with your records:

records:
  # basic example
  - name: racine.fun # domain name
    type: A          # DNS record type
    value: 127.0.0.1 # value of record
    ttl: 30          # ttl (optional) defaults to 86400
  # example with geolocation
  - name: racine.fun
    type: CNAME
    value: au.racine.fun. # default value
    geo:
      - country: NZ # ISO country code
        value: nz.racine.fun.
      - continent: EU
        value: eu.racine.fun.

Run racine with:

racine --config /path/to/config.yaml --mmdb /path/to/geolite.mmdb

Dependencies

~16–26MB
~389K SLoC