{
description = "My home configuration.";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-21.11";
home-manager.url = "github:nix-community/home-manager/release-21.11";
nixpkgs-master.url = "github:nixos/nixpkgs/master";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
agenix.url = "github:ryantm/agenix";
deploy-rs.url = "github:serokell/deploy-rs";
};
outputs = {self, home-manager, nixpkgs, nixpkgs-master, nixpkgs-unstable, agenix, deploy-rs, ... }:
let
baseModules = overlays: system_config: [
(home-manager.nixosModules.home-manager)
{
config = {
home-manager.users.bender = import ./bender/home.nix system_config;
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
nixpkgs.overlays = import ./bender/overlays ++ [overlays] ;
};
}
agenix.nixosModules.age
];
in {
overlay = final: prev: {
nixpkgs-master = import nixpkgs-master {config.allowUnfree = true; system = "x86_64-linux";};
nixpkgs-unstable = nixpkgs-unstable.legacyPackages."x86_64-linux";
};
nixosConfigurations.desktop = let config = { gui_supported = true; }; in (nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = (baseModules self.overlay config) ++ [ ./system/desktop/configuration.nix ];
});
nixosConfigurations.laptop = let config = { gui_supported = true; }; in (nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = (baseModules self.overlay config) ++ [ ./system/laptop/configuration.nix ];
});
nixosConfigurations.work_vm = let config = {gui_supported = true;}; in (nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = (baseModules self.overlay config) ++ [ ./system/work_vm/configuration.nix ];
});
nixosConfigurations.wireguard_server = let config = {gui_supported = false; }; in (nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = (baseModules self.overlay config) ++ [ ./system/wireguard_server/configuration.nix ];
});
deploy = {
sshUser = "root";
user = "root";
magicRollback = false;
nodes.wireguard_server = {
hostname = "192.168.1.24";
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.wireguard_server;
};
};
};
checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
};
}