nix-config/flake.nix

134 lines
4.0 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-unstable";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11";
fh.url = "https://flakehub.com/f/DeterminateSystems/fh/*.tar.gz";
deploy-rs.url = "github:serokell/deploy-rs";
dotfiles.url = "git+https://code.m3tam3re.com/m3tam3re/dotfiles.git";
dotfiles.flake = false; # Use this if your dotfiles repo is not a flake
};
outputs = {
self,
dotfiles,
nixpkgs,
fh,
home-manager,
agenix,
deploy-rs,
...
} @ inputs: let
inherit (self) outputs;
lib = nixpkgs.lib;
systems = [
"aarch64-linux"
"i686-linux"
"x86_64-linux"
"aarch64-darwin"
"x86_64-darwin"
];
forAllSystems = nixpkgs.lib.genAttrs systems;
in {
packages =
forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
formatter =
forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
overlays = import ./overlays {inherit inputs;};
nixosConfigurations = {
lkk-nix-1 = lib.nixosSystem rec {
specialArgs = {inherit inputs outputs;};
modules = [./hosts/lkk-nix-1 agenix.nixosModules.default];
};
m3-r1 = lib.nixosSystem {
specialArgs = {inherit inputs outputs;};
modules = [./hosts/m3-r1 agenix.nixosModules.default];
};
lkk-prod-1 = lib.nixosSystem {
specialArgs = {inherit inputs outputs;};
modules = [./hosts/lkk-prod-1 agenix.nixosModules.default];
};
lkk-prod-2 = lib.nixosSystem {
specialArgs = {inherit inputs outputs;};
modules = [./hosts/lkk-prod-2 agenix.nixosModules.default];
};
m3-nix = lib.nixosSystem {
specialArgs = {inherit inputs outputs;};
modules = [./hosts/m3-nix agenix.nixosModules.default];
};
};
homeConfigurations = {
# Laptop
"m3tam3re@m3-nix" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."x86_64-linux";
extraSpecialArgs = {inherit inputs outputs;};
modules = [./home/users/m3tam3re/m3-nix.nix];
};
"m3tam3re@lkk-nix-1" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."x86_64-linux";
extraSpecialArgs = {
# pass things to t
};
modules = [./home/users/m3tam3re/lkk-nix-1.nix];
};
"m3tam3re@m3-r1" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."x86_64-linux";
extraSpecialArgs = {
# pass things to t
};
modules = [./home/users/m3tam3re/m3-r1.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.m3-r1 = {
hostname = "m3-r1";
sshUser = "root";
activationTimeout = 600;
profiles.system = {
user = "root";
path =
deploy-rs.lib.x86_64-linux.activate.nixos
self.nixosConfigurations.m3-r1;
};
};
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;
};
}