mirror of
https://gitlab.com/upRootNutrition/dotfiles.git
synced 2025-12-07 05:27:13 -06:00
feat: added impermanence to ceres
This commit is contained in:
parent
a2f229e05f
commit
5d80a9f7b0
4 changed files with 96 additions and 8 deletions
16
flake.lock
generated
16
flake.lock
generated
|
|
@ -798,6 +798,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"impermanence": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1737831083,
|
||||||
|
"narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "impermanence",
|
||||||
|
"rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "impermanence",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"linkpage": {
|
"linkpage": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_3",
|
"flake-parts": "flake-parts_3",
|
||||||
|
|
@ -1363,6 +1378,7 @@
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
"hyprland-portal": "hyprland-portal",
|
"hyprland-portal": "hyprland-portal",
|
||||||
|
"impermanence": "impermanence",
|
||||||
"linkpage": "linkpage",
|
"linkpage": "linkpage",
|
||||||
"lix": "lix",
|
"lix": "lix",
|
||||||
"lix-module": "lix-module",
|
"lix-module": "lix-module",
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,10 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
systems.url = "github:nix-systems/x86_64-linux";
|
systems.url = "github:nix-systems/x86_64-linux";
|
||||||
|
impermanence = {
|
||||||
|
url = "github:nix-community/impermanence";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
@ -147,6 +151,7 @@
|
||||||
inputs.filesorter.nixosModules.default
|
inputs.filesorter.nixosModules.default
|
||||||
inputs.zookeeper.nixosModules.default
|
inputs.zookeeper.nixosModules.default
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
inputs.impermanence.nixosModules.impermanence
|
||||||
inputs.lix-module.nixosModules.default
|
inputs.lix-module.nixosModules.default
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
ssh:
|
ssh:
|
||||||
private: ENC[AES256_GCM,data:XJk/gjPkFeSZtPkKYS2vRHqMY/X5zRaDlS4UwzUvjm9MvTgdhoXUlqvFC0Dl5SZhRlY+XXAuG7gIIUESzCFWQKdOoUcto3r0WSuIm9EwLKXnnaHemeFVHYgZU9Rz45PK6yFWUC06+n56b2A1dFXftjeXcCqaQrT/jk3RDSHmhW9u7QgDmhhaybxXOrzkup2U8kjhrMmRBcf4xP//nihuzHcyYX75ONr56bgkjl6gpZTfZrn2ad8b+4iGn+rElzf7RHAG0mwTeEX2kYRyafaanGuc2xTnZubBAYDnc1eM6T99PXC0iWh/lUKc1zG1l18UchWzgvl3sPK0Cb2/5aaFMUk2ET6kVOlpKyGc94MRpyv3iUi8soFjh34sWH3mFtec2OWfIxDhoVfZoc2hmP2Hflfjp7acwaMskFBHaCSO2DGtNmN3hSUhAAeLx8OZupSIJmDVpq00qKUbN+5z4K78AdGuUOP07cE889evNniCHLP6yPav7tIulnBS9lD2U+CbqF7vMtdZx/eYFwJjmMtE,iv:JxSytvXKWLHDedlE0Wq5YpPUnfb0HoQgKJ2bt1Z8yqk=,tag:MjOoUSWsHWHgxp0yu9YQFA==,type:str]
|
private: ENC[AES256_GCM,data:XJk/gjPkFeSZtPkKYS2vRHqMY/X5zRaDlS4UwzUvjm9MvTgdhoXUlqvFC0Dl5SZhRlY+XXAuG7gIIUESzCFWQKdOoUcto3r0WSuIm9EwLKXnnaHemeFVHYgZU9Rz45PK6yFWUC06+n56b2A1dFXftjeXcCqaQrT/jk3RDSHmhW9u7QgDmhhaybxXOrzkup2U8kjhrMmRBcf4xP//nihuzHcyYX75ONr56bgkjl6gpZTfZrn2ad8b+4iGn+rElzf7RHAG0mwTeEX2kYRyafaanGuc2xTnZubBAYDnc1eM6T99PXC0iWh/lUKc1zG1l18UchWzgvl3sPK0Cb2/5aaFMUk2ET6kVOlpKyGc94MRpyv3iUi8soFjh34sWH3mFtec2OWfIxDhoVfZoc2hmP2Hflfjp7acwaMskFBHaCSO2DGtNmN3hSUhAAeLx8OZupSIJmDVpq00qKUbN+5z4K78AdGuUOP07cE889evNniCHLP6yPav7tIulnBS9lD2U+CbqF7vMtdZx/eYFwJjmMtE,iv:JxSytvXKWLHDedlE0Wq5YpPUnfb0HoQgKJ2bt1Z8yqk=,tag:MjOoUSWsHWHgxp0yu9YQFA==,type:str]
|
||||||
public: ENC[AES256_GCM,data:Cn4hutHHeptbefHOKK7zv5TmveGOqfHAwGHogDq9sRmeb+b1lzHwj7qvg8lcnlJtIo4qS+TrKtSj5ZCsPNXOhWG1rkk97gTfPMbcxj5f1O3WJigL2wsrB2cQgc5UsA==,iv:ID4zRdr/efClOAHbXzxG1bNuJR0A2qbydzGlMhvEcRE=,tag:qbIoaGb+RXxRRkkQtuX7/A==,type:str]
|
public: ENC[AES256_GCM,data:Cn4hutHHeptbefHOKK7zv5TmveGOqfHAwGHogDq9sRmeb+b1lzHwj7qvg8lcnlJtIo4qS+TrKtSj5ZCsPNXOhWG1rkk97gTfPMbcxj5f1O3WJigL2wsrB2cQgc5UsA==,iv:ID4zRdr/efClOAHbXzxG1bNuJR0A2qbydzGlMhvEcRE=,tag:qbIoaGb+RXxRRkkQtuX7/A==,type:str]
|
||||||
hosts: ENC[AES256_GCM,data:XhXSuPumonZWNj6xcgWjgV7af7w6Ub4bg475MKgWMq48XmdWnsecx4EQyoHdHCjUU45QIyR4WqH/NrkjubvblT2516m2O9UdVWR+BarxvTUOau2y2B5sFTwFTfwQrrPb5rAc88eAi1WSEyDOKt2FVi4hmBBaZwiwpNUnwlGiN+o74Iml2hyV5lJsHNkfP1+UL8WnOPPbs/sXtlPKIkN+rMO94bX29EyEpNa2W0HxKfNVgOfaxiu4+9eXjVrdi4gLU3PwDkEjprLgCJZxhNzKabH6iXLfyUu5Pik4X+YfHPlpX3ZIgUO/L/1SoozRSaaQIKm7yxTGYDic6aZRzeJfSgL/RK21Xwt3y5OQo9jAbPXVCogPXN+iRhsEq4tbSLKFzp0+Abc7uj7RKsSiFUIk4UsIBHs0tnFSCmb8qL9Pqf4m5I3NmaCUULFln7iB4HSZLTweIXM2mWSd68vDHCMUSQHIiQ2bwODocrgoPABq3PRaUswnklMsb84yfiNLvIa792diFth1QQKOwyQZ6tYff2gx56BYMoF6BC0QJoL/ftrybLi1g99nd4NBGUPm01TFNi7uKHeE4hMVOHb971Vp3jKOv9OwWZbWrgMmvaBUlmNPgTHr9QmdGRxtoIpjwsyjhe61PfLSAyyVIyTQyF1qnZ24PZt9dTXuAlO52XBZ5OizX5Ao4bW0Nx1qKYTV6QcNVuv3hfjNNvS23cFrs1Wld2/67h4aoyKTfSbF+7YZ9GL+djZ9fHhI+IqT2+FgYDm3RHUe3H9LJ8/M3D6ncZW1qwvyKrSuIf16EpIztLJNDbts4F5JXmY69nDBsvCWqtoua2Sig/mKpemdURwJmbzE2vRovhn2ubTWnSpIuizBq+uQ1V+V6zjJ8RalPJWYuwnB/OPHhGB56AdqQ1HLbfL05cu1Z8JA2mGwZa6DXyiy+a5uxP+RXEuRU+RSemss07w2Wvwa+WijXr3k3YwD7DyuKRguqNVM/y9E5ip29PlSZTb5UVJgP+GT7MR8AL2OqNJ/aVA1q0Vy2aHBbxSTLiFsqW8vpFLD4Q1fzOpb/a6nF+NHcFFX+q02Vwk+u/zn4M9v4qLfMknz3Q3FrB+/JfvTjmGHIqpIfTdWlvWXfAIYaMNGBYAG/9uy24JYLSc5DE6oEqLz4NcadcEsEIDkl8VkPIl+v3eaijZy9MTbWBN2ZQvrsHu+O/18eZFpwbW2jxS1dZzI2FgSBQ7veVb228I2+Ex+0mzIvKahec4VGfXeaH0O2IuMyMEJI2j/zTKDEHzSgkafO6KJyaXyGGGUWYyVl+uuzoJ9J/n6scTY+J/Fy731kpmQkb5uXhl9F/ccAlw2qPx8JVdtOCebTBpoQgKUVb0Yg93hRK51gdx/fbHU6uwb0mvRzrxQqwFriygwiT+VXZL9NonLFXHvUIKu,iv:UIULO1YSKegqbvzJ5IS+d/+MWfu/e6mCCX36Hty0v6M=,tag:wqzHZa3l4RcyDczndFlcRg==,type:str]
|
hosts: ENC[AES256_GCM,data:bYoURIFn0y/twZ1xfhMi8mN618nNEIdeJW6oOedK3YeDNMH37f7pd+yEY+xhqmcdsXuoD99vDOk6ZWxkxNjSYZJ+XKIWJTXlAWdmLmhjrAyCAAn2zE93c5UbR23g1obPS3wZyY+PgYw98ZrmYNU0R8NPmWgVW7TvCOL0LY23drxRAcnwbs3p86N9KcPyXk38Lp+TJFzbXvloIhErSu/EG8vFH56XmJ6RdTEsCYchqj1rNxg1XRayqS2cQ2N912S8FhLEvr1pzobmQVSC00mmKUvk7HDjNBCfg2B36npb3a83qm1+kgyp3cIHS87QfoqYMCBZVWy8iYyL1/RL0qivorPl83nNG2/G8IkAEpNLN+o5WZiGKgNV7os/sZH+IvvMQfFzmoht7r6vZ29MmfC2XsV6W2lduPHWM8ooov1qrpGtUaai+JlBIStGEHFn+DjiGkSsjlrqBWOqTT5qVEHl3yxuaOhwLKN8aOwiCc4v5fOv4/v2c3moqX7bpHRDkt08Gf7y0/XSG9oVd6xHsjj1GyN3/sAT1uxyA+alAdTIYK37MyGEpUSrmnxCdVskzgjih326BhhY2ZXtHywbzeIiaQ+ilHolMkrMXzPizjmYKSvA+iNQQLJocz1Ikm7jIeD/pB0+tcmtjUD2AOPu90UV/MDawwS3Fjrg846i9rehf66yW3cvF/DvTqqi4MHPeAuqMkZRSGcxONTU9r6aF/VgdSwKEjhovn5C6UIiU97N/HQP0/5aBSsT7jr7afkhkQUoMB7C71Vww/bKwCmJC6OXmt90jaiDVsysbYqIhnYSKmyBNHvUxp0eKl8nO4osFeDqMNKAK5Qz+PnbF/var5qRy37M/Ed8HBqKQtjF2UrknbMhVbX+u3utIY2I2+SBnazlriXLVgSgCKAn+8kExsv4K30nn/Yim0b4MCuXqqJB2UIFTDAYcfUhtWi6EKHuZJ58qDpGaSsUxcQXKaYjdvwSsqeniNV0/Y3tP0auEOL4xk0nEST+LQyzGgLXQAuSg1BfAF7I9LOmhjnJcgWrUkg6Odj1WMPkmO0+OrgfXWFo2BZWkZonQMX78W01fpYtJ39uhbVevasd3e5GEHf2NjEiBOX5czb84aEls+ct6DkOwbx70J3JdtN0aJmxHRqeqO1KTM3SuJbW6oGGPtMSjEg8dvwXbYFDPWHd4JszoGFnbOrWM2kFDj0cY+Rpk0N7peM9rIHR3ppcEElmAX/pkORksKCcSgJunHSQVs32ZSuPKeVT4uD8bpOwVAZR91O97F6hBYr9Ab12PdrNrwEwyGHxJTj6Zj0N2GluJy7vxBtZLmWvaSW3tm+EPU7N7KDnJFhj1ZSTf+nK8avJb6jphn6BGu/sJgtFh7p9HMkbQLIIQdtoQezZnlwMGiRiBIg6D1jvycxg3GNQ3WzHe5wu,iv:zlU2Q2Onx6Nsi3U1uCtOxeznV96D0fFfwpyz/ZrgXPU=,tag:eS+PAbm48nJsjvC80asiAA==,type:str]
|
||||||
network:
|
network:
|
||||||
server: ENC[AES256_GCM,data:EFsmXNkuf5OAMh8hjfZTixmmdjqBNIME9JjQC8azeCwcMVInm8bWdxE4OqFmxOk9MAU=,iv:pI6WeM2aQC+7vx1Xmp5O2rikqNLgzuEOg+Lo7TqFQxU=,tag:ElcA8mn9dx+IjIf38nKT5A==,type:str]
|
server: ENC[AES256_GCM,data:EFsmXNkuf5OAMh8hjfZTixmmdjqBNIME9JjQC8azeCwcMVInm8bWdxE4OqFmxOk9MAU=,iv:pI6WeM2aQC+7vx1Xmp5O2rikqNLgzuEOg+Lo7TqFQxU=,tag:ElcA8mn9dx+IjIf38nKT5A==,type:str]
|
||||||
fallaryn: ENC[AES256_GCM,data:O77hH3STB6zpl0b9iXsVu9OOrlLKUwfs2qI9hdqX4kMuBs3XgT/xsQ==,iv:RDKsuJoy+LIyADMc3bgOEmLKdXtu6kad2aeVetuZdJI=,tag:MrpCZ+iJUnGIjeHMgcYG6Q==,type:str]
|
fallaryn: ENC[AES256_GCM,data:O77hH3STB6zpl0b9iXsVu9OOrlLKUwfs2qI9hdqX4kMuBs3XgT/xsQ==,iv:RDKsuJoy+LIyADMc3bgOEmLKdXtu6kad2aeVetuZdJI=,tag:MrpCZ+iJUnGIjeHMgcYG6Q==,type:str]
|
||||||
|
|
@ -59,7 +59,7 @@ sops:
|
||||||
bXBOa1VSakoyaWxpODJEOU11QUZCaUEK8Ch9Ten3DdrPHF1DTH2qei85AlHUOaLD
|
bXBOa1VSakoyaWxpODJEOU11QUZCaUEK8Ch9Ten3DdrPHF1DTH2qei85AlHUOaLD
|
||||||
aNfzakake7ej+MxJYdKEU0bcWofNMKzIlZa2uM10KZSENDP8d8qlig==
|
aNfzakake7ej+MxJYdKEU0bcWofNMKzIlZa2uM10KZSENDP8d8qlig==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-11-04T11:01:52Z"
|
lastmodified: "2025-11-04T20:22:31Z"
|
||||||
mac: ENC[AES256_GCM,data:g/wjdt10ly357yEtjeITpIpVih3QedPVp+ZywvX5fZc3OqiXmE3ubG0CLnOLrqql3Ek7ezw9I1xNtFoLH1eU87quaN/3MyenoOq2sw0tkyY4ciNFGLRST7n3rh+3yaYzh9c/FFb83iSv9T+9f0y7odkV/jAiGUk9HZYZi2a5FtE=,iv:J5m96w5emOtgg0wwjZOIFiUNPvxpnwsjQzSlQ7pxDXY=,tag:9w9d+Z9vbXE/cdU0XHenbg==,type:str]
|
mac: ENC[AES256_GCM,data:mL+7OjHRuSpGFaBAyNA1VP5GtwaL97uGVZo6eMduPNSy2bAkE6PhFwzVKLUikKCjOdYut1xF9aVRa0Sj1CiOTHoJdRlzpF02XSeTGJ/uxYFap29F7PruGzv24Xy7zfHQQYDO/ypBUSDgS8yO73zjjqBqlIT5NQD9X1M0TDT/QUk=,iv:g8JAT9B+irTZiH7e7hlp6x+gjlDUztlSe7FUPKcJ2Fg=,tag:OSQlvguKpQmG1r90fDWemA==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.11.0
|
version: 3.11.0
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
flake,
|
flake,
|
||||||
config,
|
config,
|
||||||
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
|
@ -9,16 +10,82 @@ in
|
||||||
{
|
{
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/" = {
|
"/" = {
|
||||||
device = "/dev/disk/by-uuid/4b740a8e-8123-4d29-8ec2-132aebb0583d";
|
device = "/dev/disk/by-label/root";
|
||||||
fsType = "ext4";
|
fsType = "btrfs";
|
||||||
|
options = [
|
||||||
|
"subvol=@"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"/nix" = {
|
||||||
|
device = "/dev/disk/by-label/root";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = [
|
||||||
|
"subvol=@nix"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/persistent" = {
|
||||||
|
device = "/dev/disk/by-label/root";
|
||||||
|
fsType = "btrfs";
|
||||||
|
neededForBoot = true;
|
||||||
|
options = [
|
||||||
|
"subvol=@persistent"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
device = "/dev/disk/by-uuid/34BA-5602";
|
device = "/dev/disk/by-label/BOOT";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
"/mnt/storage" = {
|
"/mnt/storage" = {
|
||||||
device = "dev/disk/by-label/storage";
|
device = "/dev/disk/by-label/storage";
|
||||||
fsType = "xfs";
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.initrd.postResumeCommands = lib.mkAfter ''
|
||||||
|
mkdir -p /mnt
|
||||||
|
mount -o subvol=/ /dev/disk/by-label/root /mnt
|
||||||
|
|
||||||
|
if [[ -e /mnt/@ ]]; then
|
||||||
|
mkdir -p /mnt/@old_roots
|
||||||
|
timestamp=$(date --date="@$(stat -c %Y /mnt/@)" "+%Y-%m-%d_%H:%M:%S")
|
||||||
|
mv /mnt/@ "/mnt/@old_roots/$timestamp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
delete_subvolume_recursively() {
|
||||||
|
IFS=$'\n'
|
||||||
|
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
||||||
|
delete_subvolume_recursively "/mnt/$i"
|
||||||
|
done
|
||||||
|
btrfs subvolume delete "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in $(find /mnt/@old_roots/ -maxdepth 1 -mtime +30); do
|
||||||
|
delete_subvolume_recursively "$i"
|
||||||
|
done
|
||||||
|
|
||||||
|
btrfs subvolume create /mnt/@
|
||||||
|
umount /mnt
|
||||||
|
'';
|
||||||
|
|
||||||
|
environment.persistence."/persistent" = {
|
||||||
|
hideMounts = true;
|
||||||
|
directories = [
|
||||||
|
"/var/log"
|
||||||
|
"/var/lib"
|
||||||
|
"/var/cache"
|
||||||
|
"/etc/ssh"
|
||||||
|
];
|
||||||
|
files = [
|
||||||
|
"/etc/machine-id"
|
||||||
|
];
|
||||||
|
users.${user0} = {
|
||||||
|
directories = [
|
||||||
|
".ssh"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue