optimise hosts configuration

This commit is contained in:
EdenQwQ 2025-03-27 22:40:24 +08:00
parent 952e438d45
commit 1c10471218
3 changed files with 57 additions and 44 deletions

View file

@ -24,13 +24,17 @@ let
../secrets/age.nix
inputs.maomaowm.hmModules.maomaowm
] ++ (builtins.attrValues self.homeManagerModules);
in
{
flake =
let
host = "eden-inspiron";
user = "eden";
in
mkHost =
{
host,
user,
extraOSModules ? [ ],
extraOSArgs ? { },
extraHomeModules ? [ ],
extraHomeArgs ? { },
...
}:
{
nixosConfigurations.${host} = nixpkgs.lib.nixosSystem {
specialArgs = {
@ -41,10 +45,8 @@ in
host
user
;
};
modules = [
./inspiron/os.nix
] ++ sharedOSModules;
} // extraOSArgs;
modules = extraOSModules ++ sharedOSModules;
};
homeConfigurations."${user}@${host}" = inputs.home-manager.lib.homeManagerConfiguration {
@ -56,12 +58,22 @@ in
host
user
;
nixosVersion = "unstable";
homeManagerVersion = "master";
};
modules = [
./inspiron/home.nix
] ++ sharedHomeModules;
} // extraHomeArgs;
modules = extraHomeModules ++ sharedHomeModules;
};
};
in
{
flake = import ./hosts.nix |> map mkHost |> builtins.foldl' (x: y: x // y) { };
# flake = mkHost {
# host = "eden-inspiron";
# user = "eden";
# extraOSModules = [ ./inspiron/os.nix ];
# extraHomeModules = [ ./inspiron/home.nix ];
# extraHomeArgs = {
# nixosVersion = "unstable";
# homeManagerVersion = "master";
# };
# };
}

13
hosts/hosts.nix Normal file
View file

@ -0,0 +1,13 @@
[
{
host = "eden-inspiron";
user = "eden";
extraOSModules = [ ./inspiron/os.nix ];
extraHomeModules = [ ./inspiron/home.nix ];
extraHomeArgs = {
nixosVersion = "unstable";
homeManagerVersion = "master";
};
publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqbqHz5O4f6nBoki57c6hekVqUiO4hvSb9k771i61YS";
}
]

View file

@ -1,30 +1,18 @@
let
eden = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGXeMZ+CkyITSuDSbt4T9uglVJvt+c75X4QPiX8iCFbx";
eden-inspiron = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKqbqHz5O4f6nBoki57c6hekVqUiO4hvSb9k771i61YS";
publicKeys = [ eden ] ++ (map (host: host.publicKey) (import ../hosts/hosts.nix));
secrets = [
"siliconflow_token"
"gemini_token"
"deepseek_token"
"zjuchat_token"
"tavily_token"
"zjuconnect_password"
];
in
{
"siliconflow_token.age".publicKeys = [
eden
eden-inspiron
];
"gemini_token.age".publicKeys = [
eden
eden-inspiron
];
"deepseek_token.age".publicKeys = [
eden
eden-inspiron
];
"zjuchat_token.age".publicKeys = [
eden
eden-inspiron
];
"tavily_token.age".publicKeys = [
eden
eden-inspiron
];
"zjuconnect_password.age".publicKeys = [
eden
eden-inspiron
];
}
builtins.listToAttrs (
map (secret: {
name = "${secret}.age";
value = { inherit publicKeys; };
}) secrets
)