{ description = "nixos configurations"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; flake-parts.url = "github:hercules-ci/flake-parts"; sops-nix.url = "github:Mic92/sops-nix"; sops-nix.inputs.nixpkgs.follows = "nixpkgs"; disko.url = "github:nix-community/disko"; disko.inputs.nixpkgs.follows = "nixpkgs"; impermanence.url = "github:nix-community/impermanence"; nixos-hardware.url = "github:nixos/nixos-hardware"; home-manager.url = "github:nix-community/home-manager/release-24.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; }; nixConfig = { extra-substituters = [ "https://nix-community.cachix.org" ]; extra-trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; }; outputs = inputs @ {self, ...}: inputs.flake-parts.lib.mkFlake {inherit inputs;} { flake = let hosts = import ./hosts {inherit inputs;}; in { inherit (hosts) nixosConfigurations; }; systems = ["x86_64-linux"]; perSystem = { system, pkgs, ... }: { devShells.default = pkgs.mkShell { packages = with pkgs; [ sops ssh-to-age # not included: age, gpg, pcscd, scdaemon, etc. disko nil alejandra statix deadnix ]; }; }; }; }