{ description = "testing nix flakes for server deployment"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/release-21.11"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; uplcg = { url = "git+https://stuebinm.eu/git/uplcg?ref=main"; flake = false; }; tracktrain = { url = "git+https://stuebinm.eu/git/tracktrain?ref=main"; flake = false; }; blog = { url = "path:/home/stuebinm/Dokumente/blog"; flake = false; }; home-manager = { url = "github:nix-community/home-manager/release-21.11"; inputs.nixpkgs.follows = "nixpkgs"; }; playground.url = "git+https://stuebinm.eu/git/playground"; playground.flake = false; naersk.url = "github:nix-community/naersk"; naersk.inputs.nixpkgs.follows = "nixpkgs"; sfz.url = "github:weihanglo/sfz"; sfz.flake = false; almanac.url = "path:/home/stuebinm/clones/almanac"; almanac.flake = false; feeds.url = "path:/home/stuebinm/nonpublic.nix"; feeds.flake = false; deploy-rs.url = "github:serokell/deploy-rs"; deploy-rs.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, nixpkgs, deploy-rs, ... }@inputs: let mkConfig = imports: config: nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ config ] ++ imports; specialArgs = { inherit inputs; }; }; mkServer = mkConfig [ ./common/headless.nix ]; mkDesktop = mkConfig [ ./common/desktop.nix ]; in { nixosConfigurations = { chaski = mkServer ./chaski/configuration.nix; flora = mkServer ./flora/configuration.nix; abbenay = mkDesktop ./abbenay/configuration.nix; cyberbox = mkDesktop ./cyberbox/configuration.nix; }; deploy.nodes.chaski.profiles.system = { user = "root"; sshUser = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.chaski; }; deploy.nodes.chaski.hostname = "chaski"; checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib; homeConfigurations.stuebinm = inputs.home-manager.lib.homeManagerConfiguration rec { system = "x86_64-linux"; homeDirectory = "/home/stuebinm"; username = "stuebinm"; configuration.imports = [ ./home/home.nix ]; stateVersion = "21.03"; extraSpecialArgs = { inherit inputs system; }; }; home = self.homeConfigurations.stuebinm.activationPackage; }; }