2023-07-10 17:52:34 -07:00
|
|
|
{
|
2024-07-21 16:53:06 -07:00
|
|
|
description = "Flake to manage my nixos machines";
|
2023-07-10 17:52:34 -07:00
|
|
|
|
|
|
|
inputs = {
|
2023-11-23 01:21:58 -08:00
|
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
2024-07-21 16:53:06 -07:00
|
|
|
agenix.url = "github:ryantm/agenix";
|
2024-09-26 20:02:03 -07:00
|
|
|
home-manager.url = github:nix-community/home-manager;
|
|
|
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
jovian-nixos.url = "git+https://github.com/Jovian-Experiments/Jovian-NixOS?ref=development";
|
|
|
|
jovian-nixos.flake = false;
|
2024-09-27 15:25:33 -07:00
|
|
|
nixos-wsl.url = "github:nix-community/NixOS-WSL";
|
|
|
|
nixos-wsl.inputs.nixpkgs.follows = "nixpkgs";
|
2023-07-10 17:52:34 -07:00
|
|
|
};
|
|
|
|
|
2024-09-27 15:25:33 -07:00
|
|
|
outputs = inputs @ { self, nixpkgs, home-manager, jovian-nixos, agenix, nixos-wsl, ... }:
|
2024-07-21 16:53:06 -07:00
|
|
|
let
|
|
|
|
system = "x86_64-linux";
|
2024-12-19 11:03:57 -08:00
|
|
|
hosts = builtins.fromJSON (builtins.readFile ./hosts.json);
|
2024-09-26 20:02:03 -07:00
|
|
|
lib = nixpkgs.lib;
|
2024-07-21 16:53:06 -07:00
|
|
|
in {
|
2024-12-19 11:03:57 -08:00
|
|
|
nixosConfigurations = lib.mapAttrs (hostname: hostConfig:
|
2024-12-21 14:45:52 -08:00
|
|
|
lib.nixosSystem (import ./hosts/${hostConfig.role} {
|
2024-09-26 20:02:03 -07:00
|
|
|
inherit lib;
|
2024-12-19 11:03:57 -08:00
|
|
|
inherit system inputs agenix home-manager jovian-nixos nixos-wsl;
|
|
|
|
specialArgs = {
|
|
|
|
user = hostConfig.user;
|
2024-12-21 14:31:57 -08:00
|
|
|
hostname = "${hostname}";
|
2024-12-19 11:03:57 -08:00
|
|
|
};
|
|
|
|
})
|
|
|
|
) hosts;
|
2024-07-21 16:53:06 -07:00
|
|
|
};
|
2023-07-10 17:52:34 -07:00
|
|
|
}
|