# 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 = 2 delinquency_seconds = 10 cache_refresh_seconds = 60 cache_expire_seconds = 600 [redis.master] host = "localhost" port = 6379