summaryrefslogtreecommitdiff
path: root/nix/systems/spontaneity/default.nix
blob: 83851de79a09279b08e7e0113f7909ec878e66e3 (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
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
lib, ... }:
    let
      ipv4addr = "66.42.84.130";
      ipv6addr = "2001:19f0:5401:10d0:5400:5ff:fe4a:7794";
    in
    {
      imports = [
        ../common.nix
        ../../disko/drive-bios.nix

        # nixos-anywhere generates this file
        ./hardware-configuration.nix
      ];
      config = {
        monorepo = {
          vars.device = "/dev/vda";
          profiles = {
            server.enable = true;
            ttyonly.enable = true;
            grub.enable = true;
            pipewire.enable = false;
            tor.enable = false;
            home.enable = false;
          };
        };

        boot.loader.grub.device = "nodev";
        networking = {
          interfaces.ens3.ipv4.addresses = [
            {
              address = ipv4addr;
              prefixLength = 24;
            }
          ];
          interfaces.ens3.ipv6.addresses = [
            {
              address = ipv6addr;
              prefixLength = 64;
            }
          ];
          firewall.allowedTCPPorts = [
            80
            143
            443
            465
            587
            993
            6697
            6667
            8448
          ];
          domains = {
            enable = true;
            baseDomains = {
              "${config.monorepo.vars.remoteHost}" = {
                a.data = ipv4addr;
                aaaa.data = ipv6addr;
              };
              "${config.monorepo.vars.orgHost}" = {
                a.data = ipv4addr;
                aaaa.data = ipv6addr;
              };
            };
            subDomains = {
              "${config.monorepo.vars.remoteHost}" = {};
              "matrix.${config.monorepo.vars.remoteHost}" = {};
              "www.${config.monorepo.vars.remoteHost}" = {};
              "mail.${config.monorepo.vars.remoteHost}" = {
                mx.data = "10 mail.${config.monorepo.vars.remoteHost}.";
              };

              "${config.monorepo.vars.orgHost}" = {};
              "git.${config.monorepo.vars.orgHost}" = {};
              "matrix.${config.monorepo.vars.orgHost}" = {};
              "talk.${config.monorepo.vars.orgHost}" = {};
              "mail.${config.monorepo.vars.orgHost}" = {};
              "${config.monorepo.vars.internetName}.${config.monorepo.vars.orgHost}" = {};
            };
          };
        };
      };
    }
  #+end_src
  **
#+begin_src nix :tangle ../nix/systems/spontaneity/home.nix
  { lib, config, pkgs, ... }:
  {
    imports = [
      ../home-common.nix
    ];
    config.monorepo.profiles.enable = false;
  }