zaphyra's git: nixfiles

zaphyra's nixfiles

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 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
{

  system = "x86_64-linux";
  nixpkgsStable = true;

  id = 1;
  domain = "fc9f.de";

  sshPublicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG/7udhktYVZHHZ2RXQeKHt0ACfcG5dmTpyd5LMw4U0O root@nixos";
  wgPublicKey = "J+kRRNU65JGc0yk04v6P3tFwHSQOIfq8EkfD2gFupg4=";

  hardware = {
    cpuVendor = "intel";
    allowHibernation = false;
  };

  networking = {
    ip4IsPrivate = false;
    ip4Address = "194.36.145.49";
    ip4PrefixLength = 22;
    defaultGateway4 = "194.36.144.1";

    ip6IsPrivate = false;
    ip6Address = "2a03:4000:4d:5e::1";
    ip6PrefixLength = 64;

    dn42 = {
      wgPublicKey = "MRXPP//j+BDCiUyrYHdXtdULAsCZyfgumas8pxp6oiE=";
      ip6Address = "fd6b:6174:6a61::1";
      ip6PrefixLength = 48;
    };
  };

  nixosConfiguration =
    { lib, ... }:
    {

      boot.initrd.systemd.emergencyAccess = true;
      boot.kernel.sysctl."net.ipv6.conf.all.proxy_ndp" = true;

      sops.secrets = {
        wgPrivateKey = {
          owner = "systemd-network";
          group = "systemd-network";
        };
      };

      common = {
        profiles.netcup.enable = true;
        configure = {
          primaryNetworkInterface.enable = true;
          rootDisk.swap = {
            enable = true;
            size = "2G";
          };
        };
      };

      zpha = {
        profiles.zaphyra.enable = true;

        websites = {
          "flauschehorn.zaphyra.eu".enable = true;
          "ip.fc9f.de".enable = true;
        };

        configure = {
          dnsServer.enable = true;
          dn42Router.enable = true;
          netcupTunnel = {
            enable = true;
            addresses = lib.singleton "2a03:4000:4d:5e:acab::1/112";
          };
        };
      };
    };

}