{ lib, config, ... }: {
  networking = {
    hostName = config.syscfg.hostname;
    useDHCP = true;
    nameservers = [ "1.1.1.1" "9.9.9.9" ];

    extraHosts = ''
      ${lib.concatStringsSep "\n" config.syscfg.extra.hosts}
    '';

    proxy = lib.mkIf (config.syscfg.extra.proxy.domain != "") {
      default = "http://${config.syscfg.extra.proxy.domain}:${config.syscfg.extra.proxy.port or "8080"}";
      noProxy = "${config.syscfg.extra.proxy.noProxy}";
    };


    firewall = { 
      enable = true;
      allowedUDPPorts = 
        (if (config.syscfg.server != false && config.syscfg.server.wireguard) then [ 1515 ] else [ ]) ++ 
        (if (config.syscfg.server != false && config.syscfg.server.web) then [ 80 443 22 ] else [ ]) ++ 
        [ ];

      allowedTCPPorts = 
        (if (config.syscfg.server != false && config.syscfg.server.web) then [ 80 443 22 ] else [ ]) ++ 
        (if (config.syscfg.server != false) then [ 5432 6379 8181 ] else [ ]) ++ 
        [ ];
    };
  };
}
