summaryrefslogtreecommitdiff
path: root/hosts/toaster/network/default.nix
blob: 2bb5b39f105eded45a95c34facae9a7d9bb83c94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{ lib, config, ... }: {
  imports = [
    ./mullvad.nix
    ./dumpdvb.nix
    ./zw.nix
  ];

  # Networkmanager shouldn't interfere with systemd managed interfaces
  networking.networkmanager.unmanaged =
    let
      systemd_netdevs = lib.attrsets.attrValues (lib.attrsets.mapAttrs (_name: value: value.netdevConfig.Name) config.systemd.network.netdevs);
    in
    systemd_netdevs;

    systemd.network ={
      enable = true;
      wait-online.enable = false; # uplink is managed by networkmanager
    };

    users.users."0xa".extraGroups = [ "networkmanager" ];

    networking = {
      hostName = "toaster";
      firewall.enable = true;
      wireguard.enable = true;
    };

    services.resolved = {
      enable = true;
      dnssec = "allow-downgrade";
      fallbackDns = [
        "9.9.9.9"
        "2620:fe::fe"
        "149.112.112.112"
        "2620:fe::9"
      ];
    };

  }