aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
blob: 30d31b39e538733a354650bdcec96fbea8ccf3f2 (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
{
  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";
    };
  };

  outputs = { ... }@inputs:
    let
      helpers = import ./modules { inherit inputs; };
      inherit (helpers) mergeSets makeSystem;
    in
    {
      nixosConfigurations = mergeSets [
        (makeSystem "woodpecker" inputs.nixpkgs [
          {
            type = "profiles";
            modules = [ "common" "fstrim" "libvirtd" "nvidia" "pipewire" "security" "steam" "wireshark" "x11" ];
          }
        ])
        (makeSystem "sparrow" inputs.nixpkgs [
          {
            type = "profiles";
            modules = [ "common" "pipewire" "security" "vpn" "x11" ];
          }
        ])
        (makeSystem "raindog" inputs.nixpkgs [
          {
            type = "profiles";
            modules = [ "common" "security" "upgrade" ];
          }
          { type = "scripts"; modules = [ "motd" "pushover" ]; }
          { type = "services"; modules = [ "blocky" "searx" "ssh" ]; }
        ])
        (makeSystem "oasis" inputs.nixpkgs [
          {
            type = "profiles";
            modules = [ "common" "podman" "security" "upgrade" "wireguard" "zfs" ];
          }
          { type = "scripts"; modules = [ "motd" "pushover" ]; }
          {
            type = "services";
            modules = [ "cgit" "proxy" "sftpgo" "ssh" ];
          }
        ])
        (makeSystem "hive" inputs.nixpkgs [
          {
            type = "profiles";
            modules = [ "common" "security" "upgrade" "wireguard" ];
          }
          { type = "scripts"; modules = [ "motd" "pushover" ]; }
          {
            type = "services";
            modules = [ "fediverse" "proxy" "ssh" "web" ];
          }
        ])
        (makeSystem "eden" inputs.nixpkgs [
          {
            type = "containers";
            modules = [ "freshrss" "jellyfin" "pinchflat" "vaultwarden" "watchtower" ];
          }
          {
            type = "profiles";
            modules = [ "common" "podman" "security" "share" "upgrade" "wireguard" "zfs" ];
          }
          { type = "scripts"; modules = [ "motd" "pushover" ]; }
          { type = "services"; modules = [ "immich" "proxy" "ssh" ]; }
        ])
      ];
    };
}