aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
blob: 48b232d17959e2f288577fcf34e0da61170c2c14 (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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
    nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
    home-manager = {
      url = "github:nix-community/home-manager/release-24.11";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    agenix = {
      url = "github:ryantm/agenix";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    nixos-cosmic = {
      url = "github:lilyinstarlight/nixos-cosmic";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs =
    { ... }@inputs:
    let
      helpers = import ./modules { inherit inputs; };
      inherit (helpers) mergeSets mkSystem;
    in
    {
      nixosConfigurations = mergeSets [
        (mkSystem "frigg" "x86_64-linux" inputs.nixpkgs [
          {
            type = "profiles";
            modules = [
              "common"
              "podman"
              "security"
              "upgrade"
              "wireguard"
              "zfs"
            ];
          }
          {
            type = "scripts";
            modules = [
              "motd"
              "pushover"
              "zquota"
            ];
          }
          {
            type = "services";
            modules = [
              "cgit"
              "proxy"
              "sftpgo"
              "ssh"
            ];
          }
        ])
        (mkSystem "heimdall" "x86_64-linux" inputs.nixpkgs [
          {
            type = "profiles";
            modules = [
              "common"
              "security"
              "upgrade"
            ];
          }
          {
            type = "scripts";
            modules = [
              "motd"
              "pushover"
            ];
          }
          {
            type = "services";
            modules = [
              "dns"
              "searx"
              "ssh"
            ];
          }
        ])
        (mkSystem "loki" "aarch64-linux" inputs.nixpkgs [
          {
            type = "profiles";
            modules = [
              "common"
              "security"
              "upgrade"
            ];
          }
          {
            type = "scripts";
            modules = [
              "motd"
              "pushover"
            ];
          }
        ])
        (mkSystem "odin" "x86_64-linux" inputs.nixpkgs [
          {
            type = "containers";
            modules = [
              "freshrss"
              "jellyfin"
              "lubelogger"
              "pinchflat"
              "vaultwarden"
              "watchtower"
            ];
          }
          {
            type = "profiles";
            modules = [
              "common"
              "podman"
              "security"
              "share"
              "upgrade"
              "wireguard"
              "zfs"
            ];
          }
          {
            type = "scripts";
            modules = [
              "motd"
              "pushover"
              "zquota"
            ];
          }
          {
            type = "services";
            modules = [
              "immich"
              "proxy"
              "ssh"
            ];
          }
        ])
        (mkSystem "sparrow" "x86_64-linux" inputs.nixpkgs (
          inputs.nixpkgs.lib.singleton {
            type = "profiles";
            modules = [
              "common"
              "cosmic"
              "pipewire"
              "security"
              "vpn"
            ];
          }
        ))
        (mkSystem "thor" "x86_64-linux" inputs.nixpkgs [
          {
            type = "profiles";
            modules = [
              "common"
              "security"
              "upgrade"
              "wireguard"
            ];
          }
          {
            type = "scripts";
            modules = [
              "motd"
              "pushover"
            ];
          }
          {
            type = "services";
            modules = [
              "fediverse"
              "proxy"
              "ssh"
              "web"
            ];
          }
        ])
        (mkSystem "woodpecker" "x86_64-linux" inputs.nixpkgs (
          inputs.nixpkgs.lib.singleton {
            type = "profiles";
            modules = [
              "common"
              "cosmic"
              "fstrim"
              "libvirtd"
              "nvidia"
              "pipewire"
              "security"
              "steam"
              "wireshark"
            ];
          }
        ))
      ];
    };
}