46 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  lib,
 | 
						|
  config,
 | 
						|
  ...
 | 
						|
}: let
 | 
						|
  inherit (lib) mkForce mkDefault;
 | 
						|
  inherit (config.ooknet) host;
 | 
						|
in {
 | 
						|
  networking = {
 | 
						|
    enableIPv6 = true;
 | 
						|
    # disable global dhcp
 | 
						|
    useDHCP = mkForce false;
 | 
						|
    usePredictableInterfaceNames = mkDefault true;
 | 
						|
    nameservers = [
 | 
						|
      "8.8.8.8"
 | 
						|
      "8.8.4.4"
 | 
						|
    ];
 | 
						|
    networkmanager = {
 | 
						|
      enable = true;
 | 
						|
      dns = "systemd-resolved";
 | 
						|
      plugins = mkForce [];
 | 
						|
      wifi = {
 | 
						|
        # why does my server have wifi? not sure.
 | 
						|
        # ensure my mac addr is static so I can reserve an IP
 | 
						|
        macAddress =
 | 
						|
          if host.role == "server"
 | 
						|
          then "permanent"
 | 
						|
          else "random";
 | 
						|
        scanRandMacAddress = host.role != "server";
 | 
						|
        powersave = true;
 | 
						|
      };
 | 
						|
      unmanaged = ["interface-name:tailscale*"];
 | 
						|
    };
 | 
						|
  };
 | 
						|
  services = {
 | 
						|
    resolved = {
 | 
						|
      enable = true;
 | 
						|
 | 
						|
      domains = ["~."];
 | 
						|
      fallbackDns = ["8.8.8.8"]; # google dns
 | 
						|
    };
 | 
						|
  };
 | 
						|
  # sometimes causes issues with network manager service never actually starting
 | 
						|
  # requiring me to manually start the service. fine on a workstation, not on a server
 | 
						|
  systemd.services.NetworkManager-wait-online.enable = host.role != "server";
 | 
						|
}
 |