mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-23 06:18:52 +08:00
整理services
This commit is contained in:
parent
a1f99f53bb
commit
d69f6effd4
@ -149,6 +149,7 @@
|
||||
./modules/boot
|
||||
./modules/system
|
||||
./modules/virtualization
|
||||
./modules/services
|
||||
(inputs: { config =
|
||||
{
|
||||
nixos =
|
||||
@ -233,6 +234,11 @@
|
||||
kvmGuest.enable = true;
|
||||
nspawn = [ "arch" "ubuntu-22.04" ];
|
||||
};
|
||||
services =
|
||||
{
|
||||
impermanence.enable = true;
|
||||
snapper = { enable = true; configs.persistent = "/nix/persistent"; };
|
||||
};
|
||||
};
|
||||
boot.kernelParams = [ "i915.force_probe=46a6" ];
|
||||
}; })
|
||||
@ -240,7 +246,6 @@
|
||||
./modules/basic.nix
|
||||
./modules/fonts.nix
|
||||
./modules/sops.nix
|
||||
./modules/boot/chn-PC.nix
|
||||
[ ./modules/hardware/nvidia-prime.nix { intelBusId = "PCI:0:2:0"; nvidiaBusId = "PCI:1:0:0"; } ]
|
||||
./modules/hardware/chn-PC.nix
|
||||
./modules/networking/samba.nix
|
||||
|
@ -1,43 +0,0 @@
|
||||
inputs:
|
||||
{
|
||||
config =
|
||||
{
|
||||
# impermanence
|
||||
environment.persistence."/nix/persistent" =
|
||||
{
|
||||
hideMounts = true;
|
||||
directories =
|
||||
[
|
||||
"/etc/NetworkManager/system-connections"
|
||||
"/home"
|
||||
"/root"
|
||||
"/var"
|
||||
];
|
||||
files =
|
||||
[
|
||||
"/etc/machine-id"
|
||||
"/etc/ssh/ssh_host_ed25519_key.pub"
|
||||
"/etc/ssh/ssh_host_ed25519_key"
|
||||
"/etc/ssh/ssh_host_rsa_key.pub"
|
||||
"/etc/ssh/ssh_host_rsa_key"
|
||||
];
|
||||
};
|
||||
|
||||
# services
|
||||
services =
|
||||
{
|
||||
snapper.configs.persistent =
|
||||
{
|
||||
SUBVOLUME = "/nix/persistent";
|
||||
TIMELINE_CREATE = true;
|
||||
TIMELINE_CLEANUP = true;
|
||||
TIMELINE_MIN_AGE = 1800;
|
||||
TIMELINE_LIMIT_HOURLY = "10";
|
||||
TIMELINE_LIMIT_DAILY = "7";
|
||||
TIMELINE_LIMIT_WEEKLY = "1";
|
||||
TIMELINE_LIMIT_MONTHLY = "0";
|
||||
TIMELINE_LIMIT_YEARLY = "0";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
68
modules/services/default.nix
Normal file
68
modules/services/default.nix
Normal file
@ -0,0 +1,68 @@
|
||||
inputs:
|
||||
{
|
||||
options.nixos.services = let inherit (inputs.lib) mkOption types; in
|
||||
{
|
||||
impermanence =
|
||||
{
|
||||
enable = mkOption { type = types.bool; default = false; };
|
||||
persistence = mkOption { type = types.nonEmptyStr; default = "/nix/persistent"; };
|
||||
};
|
||||
snapper =
|
||||
{
|
||||
enable = mkOption { type = types.bool; default = false; };
|
||||
configs = mkOption { type = types.attrsOf types.nonEmptyStr; default = {}; };
|
||||
};
|
||||
};
|
||||
config = let inherit (inputs.lib) mkMerge mkIf; inherit (inputs.localLib) stripeTabs attrsToList; in mkMerge
|
||||
[
|
||||
(
|
||||
mkIf inputs.config.nixos.services.impermanence.enable
|
||||
{
|
||||
environment.persistence."${inputs.config.nixos.services.impermanence.persistence}" =
|
||||
{
|
||||
hideMounts = true;
|
||||
directories =
|
||||
[
|
||||
"/etc/NetworkManager/system-connections"
|
||||
"/home"
|
||||
"/root"
|
||||
"/var"
|
||||
];
|
||||
files =
|
||||
[
|
||||
"/etc/machine-id"
|
||||
"/etc/ssh/ssh_host_ed25519_key.pub"
|
||||
"/etc/ssh/ssh_host_ed25519_key"
|
||||
"/etc/ssh/ssh_host_rsa_key.pub"
|
||||
"/etc/ssh/ssh_host_rsa_key"
|
||||
];
|
||||
};
|
||||
}
|
||||
)
|
||||
(
|
||||
mkIf inputs.config.nixos.services.snapper.enable
|
||||
{
|
||||
services.snapper.configs =
|
||||
let
|
||||
f = (config:
|
||||
{
|
||||
inherit (config) name;
|
||||
value =
|
||||
{
|
||||
SUBVOLUME = config.value;
|
||||
TIMELINE_CREATE = true;
|
||||
TIMELINE_CLEANUP = true;
|
||||
TIMELINE_MIN_AGE = 1800;
|
||||
TIMELINE_LIMIT_HOURLY = "10";
|
||||
TIMELINE_LIMIT_DAILY = "7";
|
||||
TIMELINE_LIMIT_WEEKLY = "1";
|
||||
TIMELINE_LIMIT_MONTHLY = "0";
|
||||
TIMELINE_LIMIT_YEARLY = "0";
|
||||
};
|
||||
});
|
||||
in
|
||||
builtins.listToAttrs (builtins.map f (attrsToList inputs.config.nixos.services.snapper.configs));
|
||||
}
|
||||
)
|
||||
];
|
||||
}
|
Loading…
Reference in New Issue
Block a user