{ description = "Chris's system configuration"; inputs = { nixpkgs.url = "nixpkgs/nixos-23.11"; flake-utils.url = github:numtide/flake-utils; deploy-rs.url = github:serokell/deploy-rs; home-manager = { url = github:nix-community/home-manager/release-23.11; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs@{ self, nixpkgs, flake-utils, home-manager, deploy-rs, ... }: let pkgs = import nixpkgs { system = "x86_64-linux"; }; aarch64Pkgs = import nixpkgs { system = "aarch64-linux"; }; deployAarch64Pkgs = import nixpkgs { system = "aarch64-linux"; overlays = [ deploy-rs.overlay (self: super: { deploy-rs = { inherit (aarch64Pkgs) deploy-rs; lib = super.deploy-rs.lib; }; }) ]; }; deployPkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ deploy-rs.overlay (self: super: { deploy-rs = { inherit (pkgs) deploy-rs; lib = super.deploy-rs.lib; }; }) ]; }; in { nixosConfigurations = { #smolboi.modules = [ ./systems/smolboi/configuration.nix ]; orangepihole = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ ./systems/orangepihole/configuration.nix ]; }; }; deploy = { sshUser = "root"; nodes = { orangepihole = { hostname = "orangepihole"; profiles.system.user = "root"; profiles.system.path = deployAarch64Pkgs.deploy-rs.lib.activate.nixos self.nixosConfigurations.orangepihole; }; }; }; } // flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; deployLib = deploy-rs.lib.${system}; in { devShells.default = pkgs.mkShell { buildInputs = [ pkgs.deploy-rs ]; }; checks = deployLib.deployChecks self.deploy; } ); }