{ description = "jakezerrer.com"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; treefmt-nix.url = "github:numtide/treefmt-nix"; nixos-facter-modules.url = "github:numtide/nixos-facter-modules"; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, disko, nixos-facter-modules, treefmt-nix, sops-nix, }: { devShells = { aarch64-darwin.default = let pkgs = import nixpkgs { system = "aarch64-darwin"; }; treefmt = treefmt-nix.lib.evalModule pkgs { projectRootFile = "flake.nix"; programs.nixfmt.enable = true; }; in pkgs.mkShell { buildInputs = [ treefmt.config.build.wrapper pkgs.nixos-rebuild-ng pkgs.sops pkgs.age pkgs.ssh-to-age pkgs.direnv ]; }; }; nixosConfigurations = { bootstrap = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ disko.nixosModules.disko sops-nix.nixosModules.sops ./disk-config.nix ./bootstrap.nix nixos-facter-modules.nixosModules.facter { config.facter.reportPath = ./facter.json; } ]; }; server = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ disko.nixosModules.disko sops-nix.nixosModules.sops ./disk-config.nix ./server.nix nixos-facter-modules.nixosModules.facter { config.facter.reportPath = ./facter.json; } ]; }; }; }; }