constellation-server 1.14.0

Pluggable authoritative DNS server. Entries can be added & removed from an HTTP REST API.
# Constellation
# Pluggable authoritative DNS server
# Configuration file
# Example: https://github.com/valeriansaliou/constellation/blob/master/config.cfg


[server]

log_level = "debug"
identifier = "crisp-dns/primary"

[dns]

inets = [
  "0.0.0.0:53",
  "[::]:53"
]

tcp_timeout = 2

nameservers = [
  "a.ns.crisp.chat",
  "b.ns.crisp.chat"
]

soa_master = "a.ns.crisp.chat"
soa_responsible = "hostmaster.crisp.chat"
soa_refresh = 10000
soa_retry = 2400
soa_expire = 604800
soa_ttl = 3600

record_ttl = 3600

[dns.zone.'relay.crisp.chat']

[dns.flatten]

resolvers = [
  "1.1.1.1",
  "1.0.0.1",
  "2606:4700:4700::1111",
  "2606:4700:4700::1001"
]

[dns.health]

check_enable = true
check_interval = 60

[dns.health.notify]

slack_hook_url = "https://hooks.slack.com/services/xxxx"

[[dns.health.http]]

zone = "relay.crisp.chat"
name = "client.@"

method = "GET"
path = "/health"
port = 443
secure = true

timeout = 5
max_attempts = 3

expected_status = [
  200,
  203
]

expected_body = [
  "{\"code\":0,\"message\":\"No Operation\"}",
  "success"
]

[geo]

database_path = "./res/geo/"
database_file = "GeoLite2-Country.mmdb"

update_enable = true
update_interval = 864000
update_url = "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country&suffix=tar.gz&license_key=REPLACE_THIS_WITH_YOUR_GEOLITE2_LICENSE_KEY"

[http]

inet = "[::1]:8080"
workers = 2
record_token = "REPLACE_THIS_WITH_A_SECRET_KEY"

[redis]

database = 0

pool_size = 8
max_lifetime_seconds = 20
idle_timeout_seconds = 600
connection_timeout_seconds = 5

cache_refresh_seconds = 60
cache_expire_seconds = 600

[redis.master]

host = "localhost"
port = 6379