MyNixOS website logo
option

services.crab-hole.settings

Crab-holes config. See big example https://github.com/LuckyTurtleDev/crab-hole/blob/main/example-config.toml.

Declarations
Type
TOML value
Example
{
  api = {
    admin_key = "1234";
    listen = "127.0.0.1";
    port = 8080;
    show_doc = true;
  };
  blocklist = {
    allow_list = [
      "file:///allowed.txt"
    ];
    include_subdomains = true;
    lists = [
      "https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn/hosts"
      "https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt"
      "file:///blocked.txt"
    ];
  };
  downstream = [
    {
      listen = "localhost";
      port = 8080;
      protocol = "udp";
    }
    {
      certificate = "dns.example.com.crt";
      dns_hostname = "dns.example.com";
      key = "dns.example.com.key";
      listen = "[::]";
      port = 8055;
      protocol = "https";
      timeout_ms = 3000;
    }
  ];
  upstream = {
    name_servers = [
      {
        protocol = "tls";
        socket_addr = "[2606:4700:4700::1111]:853";
        tls_dns_name = "1dot1dot1dot1.cloudflare-dns.com";
        trust_nx_responses = false;
      }
      {
        protocol = "tls";
        socket_addr = "1.1.1.1:853";
        tls_dns_name = "1dot1dot1dot1.cloudflare-dns.com";
        trust_nx_responses = false;
      }
    ];
    options = {
      validate = false;
    };
  };
}