initial commit
Some checks failed
Nix CI / build (push) Failing after 31s

This commit is contained in:
Rustam Efimov 2026-04-01 08:50:01 +03:00
commit 30ce0dafc2
No known key found for this signature in database
195 changed files with 8902 additions and 0 deletions

16
lib/baseHome.nix Normal file
View file

@ -0,0 +1,16 @@
{
osConfig,
config,
username,
...
}:
{
_module.args = {
me = {
inherit username;
}
// osConfig.users.users.${username};
osSec = osConfig.sops.secrets;
sec = config.sops.secrets;
};
}

49
lib/mkColmena.nix Normal file
View file

@ -0,0 +1,49 @@
{
hostname,
inputs,
users ? [ ],
modules ? [ ],
overlays ? [ ],
}:
let
mkHome = import ./mkHome.nix;
usersHomes = builtins.listToAttrs (
map (username: {
name = username;
value = mkHome {
inherit username hostname;
};
}) users
);
usersSystemsConfigs = map (username: ../users/${username}/system.nix) users;
in
{
deployment = {
allowLocalDeployment = true;
tags = [ hostname ];
};
imports = [
{
_module.args = {
inherit inputs;
inherit hostname;
};
nixpkgs.overlays = overlays;
}
../hosts/${hostname}
../hosts/common
inputs.home-manager.nixosModules.home-manager
{
home-manager = {
useGlobalPkgs = true;
extraSpecialArgs = {
inherit inputs;
inherit hostname;
};
users = usersHomes;
};
}
]
++ modules
++ usersSystemsConfigs;
}

19
lib/mkHome.nix Normal file
View file

@ -0,0 +1,19 @@
{
username,
hostname,
}:
{
imports = [
./baseHome.nix
../users/${username}/home.nix
../users/${username}/hosts/${hostname}.nix
];
home = {
inherit username;
stateVersion = "25.05";
};
_module.args = {
inherit username;
inherit hostname;
};
}

45
lib/mkNixos.nix Normal file
View file

@ -0,0 +1,45 @@
{
hostname,
inputs,
system ? "x86_64-linux",
users ? [ ],
modules ? [ ],
homeModules ? [ ],
overlays ? [ ],
}:
let
mkUsers = import ./mkUsers.nix;
in
inputs.nixpkgs.lib.nixosSystem {
inherit system;
modules = [
{
_module.args = {
inherit inputs;
inherit hostname;
inherit system;
}
// inputs;
nixpkgs.overlays = overlays;
}
inputs.sops-nix.nixosModules.sops
inputs.home-manager.nixosModules.home-manager
{
home-manager = {
useGlobalPkgs = true;
sharedModules = [ inputs.sops-nix.homeManagerModules.sops ] ++ homeModules;
extraSpecialArgs = {
inherit inputs;
inherit hostname;
};
};
}
../hosts/${hostname}
../hosts/common
(mkUsers {
inherit hostname;
inherit users;
})
]
++ modules;
}

20
lib/mkUsers.nix Normal file
View file

@ -0,0 +1,20 @@
{
hostname,
users ? [ ],
}:
let
mkHome = import ./mkHome.nix;
usersHomes = builtins.listToAttrs (
map (username: {
name = username;
value = mkHome {
inherit username hostname;
};
}) users
);
usersSystemsConfigs = map (username: ../users/${username}/system.nix) users;
in
{
home-manager.users = usersHomes;
imports = usersSystemsConfigs;
}