make home configs work

This commit is contained in:
Jana Dönszelmann 2026-01-23 13:27:58 +01:00
parent f0c21b2e79
commit 30f81b2b79
No known key found for this signature in database
29 changed files with 2131 additions and 2033 deletions

112
flake.nix
View file

@ -72,12 +72,10 @@
};
outputs =
{
self,
nixpkgs,
flake-utils,
sops-nix,
vpn-confinement,
home-manager,
deploy-rs,
...
}@inputs:
@ -94,87 +92,40 @@
})
];
};
specialArgsForSystem = system: {
pkgs = pkgsForSystem system;
flakes = inputs;
inherit inputs;
inherit (inputs.secrets.packages.${system}) secrets;
};
configs = import ./config.nix (inputs // { inherit pkgsForSystem; });
in
{
nixosConfigurations.fili = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [
inputs.home-manager.nixosModules.default
{ home-manager.extraSpecialArgs = specialArgs; }
./hosts/fili/configuration.nix
./users
./default-machine-config.nix
(configs.configs [
{
hostname = "fili";
capabilities = [ "cli" ];
type = "server";
extra-modules = [
sops-nix.nixosModules.sops
vpn-confinement.nixosModules.default
];
specialArgs = specialArgsForSystem system;
};
nixosConfigurations.kili = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
modules = [
inputs.home-manager.nixosModules.default
{ home-manager.extraSpecialArgs = specialArgs; }
./hosts/kili/configuration.nix
./users
}
{
hostname = "kili";
deploy-hostname = "localhost";
capabilities = [
"cli"
"graphical"
"work"
"fun"
];
specialArgs = specialArgsForSystem system;
};
nixosConfigurations.ragdoll = home-manager.lib.homeManagerConfiguration (
let
system = "x86_64-linux";
in
{
modules = [
inputs.home-manager.nixosModules.default
{ home-manager.extraSpecialArgs = specialArgsForSystem system; }
./hosts/ragdoll/configuration.nix
./default-machine-config.nix
];
pkgs = pkgsForSystem system;
}
);
deploy.nodes.fili = {
hostname = "fili";
fastConnection = true;
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.fili;
sshUser = "jana";
};
};
deploy.nodes.kili = {
hostname = "localhost";
fastConnection = true;
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.kili;
sshUser = "jana";
};
};
deploy.nodes.ragdoll = {
type = "pc";
}
{
hostname = "ragdoll";
fastConnection = true;
profiles.system = {
user = "jana";
path = deploy-rs.lib.x86_64-linux.activate.home-manager self.nixosConfigurations.ragdoll;
sshUser = "jana";
};
};
}
deploy-hostname = "ragdoll";
home-only = "jana";
capabilities = [
"cli"
"work"
];
type = "pc";
}
])
// flake-utils.lib.eachDefaultSystem (
system:
let
@ -184,14 +135,17 @@
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
lix
(pkgs.writeShellScriptBin "apply-local" ''
apply $(hostname)
'')
(pkgs.writeShellScriptBin "apply" ''
set -e
if [ $# -eq 0 ]
then
deploy
deploy -s
elif [ $# -eq 1 ]
then
deploy ".#$@"
deploy -s ".#$@"
else
echo "too many parameters"
exit 1