aether/flake.nix

50 lines
1.3 KiB
Nix
Raw Normal View History

2024-07-21 01:44:38 -04:00
{
description = "Aether - web server configuration";
2024-07-21 01:44:38 -04:00
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
rpi5-kernel.url = "gitlab:vriska/nix-rpi5";
rpi5-kernel.inputs.nixpkgs.follows = "nixpkgs";
agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs";
agenix.inputs.darwin.follows = "";
2024-07-21 01:44:38 -04:00
};
outputs = inputs@{ self, nixpkgs, agenix, rpi5-kernel, ... }:
let
inherit (nixpkgs) lib;
moduleNames =
let sub = builtins.readDir ./modules;
in builtins.filter
(d: sub.${d} == "directory")
(builtins.attrNames sub);
modules = lib.genAttrs moduleNames (name: ./modules/${name});
in {
nixosModules =
modules
// {
all.imports = lib.attrValues modules;
deploy-rpi5 = {
imports = [ ./deploy/rpi5 ];
aether.deploy.rpi5.kernelPackages =
rpi5-kernel.legacyPackages.aarch64-linux.linuxPackages_rpi5;
};
};
nixosConfigurations."toki-aether" =
2024-07-21 01:44:38 -04:00
nixpkgs.lib.nixosSystem {
specialArgs.aether = self.nixosModules;
2024-07-21 01:44:38 -04:00
modules = [
agenix.nixosModules.default
./aether/hardware-configuration.nix
./aether/config.nix
2024-07-21 01:44:38 -04:00
];
};
nixosConfigurations.default = self.nixosConfigurations."toki-aether";
2024-07-21 01:44:38 -04:00
};
}