{ description = "pub.solar NixOS flake"; nixConfig.extra-experimental-features = "nix-command flakes"; inputs = { # Track channels with commits tested and built by hydra nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; unstable.url = "github:nixos/nixpkgs/nixos-unstable"; flake-compat.url = "github:edolstra/flake-compat"; flake-compat.flake = false; nix-darwin.url = "github:lnl7/nix-darwin/master"; nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; home-manager.url = "github:nix-community/home-manager/release-23.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; flake-parts.url = "github:hercules-ci/flake-parts"; nixos-flake.url = "github:srid/nixos-flake"; deploy-rs.url = "github:serokell/deploy-rs"; deploy-rs.inputs.nixpkgs.follows = "nixpkgs"; deploy-rs.inputs.flake-compat.follows = "flake-compat"; agenix.url = "github:ryantm/agenix"; agenix.inputs.nixpkgs.follows = "nixpkgs"; agenix.inputs.darwin.follows = "nix-darwin"; nixos-hardware.url = "github:nixos/nixos-hardware"; master.url = "github:nixos/nixpkgs/master"; # hensoko additions musnix.url = "github:musnix/musnix"; musnix.inputs.nixpkgs.follows = "nixpkgs"; nixmodules-hensoko.url = "git+ssh://gitea@git.pub.solar/hensoko/nix-modules.git?ref=main"; nixos-config.url = "git+ssh://gitea@git.pub.solar/hensoko/nixos-config.git?ref=feature/work-on-home-assistant"; }; outputs = inputs@{ self, ... }: inputs.flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; imports = [ inputs.nixos-flake.flakeModule ./lib ./overlays ./modules ./hosts ./users ]; perSystem = args@{ system, pkgs, config, ... }: { _module.args = { inherit inputs; pkgs = import inputs.nixpkgs { inherit system; overlays = [ inputs.agenix.overlays.default ]; }; unstable = import inputs.unstable { inherit system; }; master = import inputs.master { inherit system; }; }; devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ deploy-rs nixpkgs-fmt agenix cachix editorconfig-checker nix nodePackages.prettier nvfetcher shellcheck shfmt treefmt nixos-generators ]; }; }; flake = { deploy.nodes = self.pub-solar-os.lib.deploy.mkDeployNodes self.nixosConfigurations { companion = { sshUser = "iot"; }; cox = { sshUser = "iot"; }; falcone = { sshUser = "iot"; }; giggles = { sshUser = "iot"; }; cube = { sshUser = "iot"; }; chonk = { sshUser = "iot"; }; norman = {}; harrison = { sshUser = "iot"; }; surfplace = { sshUser = "iot"; }; }; }; }; }