summaryrefslogtreecommitdiff
path: root/machines.nix
blob: ca73b0711e931e4a3f4c0334dee875bd755f3705 (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
{
  lenovo = {
    hostname = "lenovo";
    system = "x86_64-linux";
    users = ["andromeda"];
    modules = [
      # impermanence
      ./modules/nixos/impermanence.nix
      ./modules/nixos/impermanence-ssh.nix

      # hardware configuration
      # includes `system.stateVersion`
      ./modules/nixos/machines/lenovo.nix
      ./modules/nixos/zram.nix

      # boot process
      # systemd-boot
      ./modules/nixos/boot/lenovo.nix

      # networking
      ./modules/nixos/laptop.nix

      # vpn
      # ./modules/nixos/openvpn-client.nix

      # ly display manager
      ./modules/nixos/ly.nix

      # sway window manager
      ./modules/nixos/sway.nix

      # apps
      # UNFREE
      ./modules/nixos/steam.nix

      # substitutors
      ./substitutors.nix
    ];
  };
  "109-199-104-83" = {
    hostname = "109-199-104-83";
    system = "x86_64-linux";
    users = [];
    modules = [
      # impermanence
      ./modules/nixos/impermanence.nix
      ./modules/nixos/impermanence-ssh.nix

      # hardware configuration
      # verbatim as `nixos-generate-config` AND `system.stateVersion`
      ./modules/nixos/machines/109-199-104-83.nix
      ./modules/nixos/disko/remote.nix

      # boot process
      # grub boot on /dev/sda
      ./modules/nixos/boot/109-199-104-83.nix

      # networking
      ./modules/nixos/networking/domains/galaxious.de.nix
      # uses cloud-init to network
      ./modules/nixos/networking/networks/109-199-104-83.nix

      # ssh through port 5522 among other things
      # andromeda@lenovo is the only user allowed access
      ./modules/nixos/networking/hard-ssh.nix
      ./modules/nixos/networking/ssh-as-root.nix
      ({config, ...}: {users.users.root.openssh.authorizedKeys.keys = [config.pub-keys.ssh.andromeda];})

      # simple-nixos-mailserver email server
      # mail.domain
      ./modules/nixos/mailserver.nix

      # roundcube webmail client
      # webmail.domain
      ./modules/nixos/roundcube.nix

      # matrix homeserver
      # matrix.domain
      ./modules/nixos/matrix-continuwuity.nix

      # BROKEN
      # forgejo
      # git.domain
      # ./modules/nixos/forgejo.nix

      # zulip chat client
      # chat.domain
      # ./modules/nixos/zulip.nix
    ];
  };
}