nix-configurations/flake.nix

110 lines
3.3 KiB
Nix

{
description = ''
This i my basic NixOS system configuration. Feel free to reuse anything you find useful.
'';
inputs = {
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
agenix.url = "github:ryantm/agenix";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
deploy-rs.url = "github:serokell/deploy-rs";
};
outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, agenix, deploy-rs
, ... }@inputs:
let
inherit (self) outputs;
lib = nixpkgs.lib;
allowUnfree = { nixpkgs.config.allowUnfree = true; };
system = "x86_64-linux";
overlay-unstable = final: prev: {
unstable = import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
};
};
in {
nixosConfigurations = {
lkk-nix-1 = lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
./hosts/lkk-nix-1
agenix.nixosModules.default
({ config, pkgs, ... }: {
nixpkgs.overlays = [ overlay-unstable ];
})
];
};
lkk-prod-1 = lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
allowUnfree
./hosts/lkk-prod-1
agenix.nixosModules.default
({ config, pkgs, ... }: {
nixpkgs.overlays = [ overlay-unstable ];
})
];
};
lkk-prod-2 = lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
allowUnfree
./hosts/lkk-prod-2
agenix.nixosModules.default
({ config, pkgs, ... }: {
nixpkgs.overlays = [ overlay-unstable ];
})
];
};
};
homeConfigurations = {
# Laptop
"m3tam3re@m3-nix" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."x86_64-linux";
extraSpecialArgs = { # pass things to the home configuration
};
modules = [ ./home/users/m3tam3re/m3-nix.nix allowUnfree ];
};
# Company Root Servera
"m3tam3re@lkk-nix-1" = home-manager.lib.homeManagerConfiguration {
extraSpecialArgs = { # pass things to the home configuration
};
modules = [ ./home/users/m3tam3re/lkk-nix-1.nix ];
};
};
deploy.nodes.lkk-nix-1 = {
hostname = "lkk-nix-1";
sshUser = "root";
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos
self.nixosConfigurations.lkk-nix-1;
};
};
deploy.nodes.lkk-prod-1 = {
hostname = "lkk-prod-1";
sshUser = "root";
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos
self.nixosConfigurations.lkk-prod-1;
};
};
deploy.nodes.lkk-prod-2 = {
hostname = "lkk-prod-2";
sshUser = "root";
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos
self.nixosConfigurations.lkk-prod-2;
};
};
deploy.remoteBuild = true;
};
}