summaryrefslogtreecommitdiff
path: root/hosts/default.nix
blob: 78dfb4f11b58f0087dcb5b339ff5b4f9e52e5183 (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
{
  inputs,
  self,
  ...
}: let
  inherit (import ./common.nix {inherit inputs self;}) personal server;
in {
  flake = {
    nixosConfigurations = {
      glados = with personal;
        builder {
          inherit specialArgs system;
          modules = with inputs;
            modules
            ++ [
              ./glados
              nixos-hardware.nixosModules.common-cpu-amd-pstate
              nixos-hardware.nixosModules.common-gpu-nvidia-nonprime
              nixos-hardware.nixosModules.common-pc-ssd
              lanzaboote.nixosModules.lanzaboote
            ];
        };

      glados-wsl = with personal;
        builder {
          inherit specialArgs system;
          modules = with inputs;
            modules
            ++ [
              ./glados-wsl
              nixos-wsl.nixosModules.wsl
            ];
        };

      atlas = with server;
        builder {
          inherit specialArgs;
          system = "aarch64-linux";
          modules = with inputs;
            modules
            ++ [
              ./atlas
              hercules-ci-agent.nixosModules.agent-service

              {
                getchoo.server = {
                  secrets.enable = true;
                  services.hercules-ci = {
                    enable = true;
                    secrets.enable = true;
                  };
                };
              }
            ];
        };

      p-body = with server;
        builder {
          inherit specialArgs;
          modules = with inputs;
            modules
            ++ [
              ./p-body
              hercules-ci-agent.nixosModules.agent-service
              guzzle_api.nixosModules.guzzle_api

              {
                getchoo.server = {
                  secrets.enable = true;
                  services.hercules-ci = {
                    enable = true;
                    secrets.enable = true;
                  };
                };
              }
            ];
          system = "x86_64-linux";
        };
    };

    nixosModules.getchoo = import ../modules;
  };

  perSystem = {
    pkgs,
    system,
    ...
  }: {
    apps = (inputs.nixinate.nixinate.${system} self).nixinate;

    packages = {
      turret = pkgs.callPackage ./_turret {inherit (inputs) openwrt-imagebuilder;};
    };
  };
}