{ config, ... }: { system.stateVersion = "22.05"; c3d2 = { deployment.server = "server10"; hq.statistics.enable = true; }; microvm = { vcpu = 8; mem = 16 * 1024; }; networking = { hostName = "caveman"; firewall.allowedTCPPorts = [ 23 ]; }; services.journald.extraConfig = '' Storage=volatile ''; services = { caveman = { # leave 4 GB for caveman services redis.maxmemory = (config.microvm.mem - 4) * 1024 * 1024; hunter = { enable = true; settings = { max_workers = 384; hosts = with builtins; filter isString ( split "\n" ( readFile ./mastodon-instances.txt ) ); }; }; butcher.enable = true; gatherer.enable = true; smokestack.enable = true; }; nginx = { enable = true; virtualHosts."fedi.buzz" = { default = true; forceSSL = true; enableACME = true; serverAliases = [ "www.fedi.buzz" "caveman.flpk.zentralwerk.org" ]; locations."/".proxyPass = "http://127.0.0.1:${toString config.services.caveman.gatherer.settings.listen_port}/"; }; virtualHosts."relay.fedi.buzz" = { forceSSL = true; enableACME = true; locations."/".proxyPass = "http://127.0.0.1:${toString 3000}/"; }; }; }; }