{ imports = [ ../../common/services/snapper.nix ]; services.cron = { systemCronJobs = [ # Back up Local-Storage to NFS Storage "0 0 * * * albert sudo btrfs-backup root" "0 0 * * * albert sudo btrfs-backup nix" "0 0 * * * albert sudo btrfs-backup home" "0 0 * * * albert sudo btrfs-backup Local-Storage" ]; }; # extra configs not present in the standard config above services.snapper.configs.Local-Storage = { TIMELINE_CREATE = true; TIMELINE_CLEANUP = true; TIMELINE_LIMIT_YEARLY = 1; TIMELINE_LIMIT_QUARTERLY = 4; TIMELINE_LIMIT_MONTHLY = 3; TIMELINE_LIMIT_WEEKLY = 4; TIMELINE_LIMIT_DAILY = 7; TIMELINE_LIMIT_HOURLY = 24; SUBVOLUME = "/Local-Storage"; }; services.btrfs.autoScrub.enable = true; services.btrfs.autoScrub.interval = "weekly"; disko.devices.disk.nvme0 = { type = "disk"; device = "/dev/nvme0n1"; content = { type = "gpt"; partitions = { BOOT = { priority = 1; name = "BOOT"; start = "0%"; end = "550MiB"; type = "EF00"; content = { type = "filesystem"; format = "vfat"; # https://github.com/nix-community/disko/issues/527 mountOptions = [ "umask=0077" ]; mountpoint = "/boot"; }; }; # partition 1 (ESP) LUKS-ROOT = { size = "100%"; content = { type = "luks"; name = "ROOT"; extraOpenArgs = [ "--allow-discards" ]; content = { type = "btrfs"; extraArgs = [ "-f" ]; subvolumes = { "/root" = { mountpoint = "/"; mountOptions = [ "compress=zstd" "noatime" ]; }; # root "/home" = { mountpoint = "/home"; mountOptions = [ "compress=zstd" "noatime" ]; }; # home "/nix" = { mountpoint = "/nix"; mountOptions = [ "compress=zstd" "noatime" ]; }; # nix "/Local-Storage" = { mountpoint = "/Local-Storage"; mountOptions = [ "compress=zstd" "noatime" ]; }; # Local-Storage # SNAPSHOT SUBVOLS "/root/.snapshots" = { mountpoint = "/.snapshots"; mountOptions = [ "compress=zstd" "noatime" ]; }; # root "/home/.snapshots" = { mountpoint = "/home/.snapshots"; mountOptions = [ "compress=zstd" "noatime" ]; }; # home "/nix/.snapshots" = { mountpoint = "/nix/.snapshots"; mountOptions = [ "compress=zstd" "noatime" ]; }; # nix "/Local-Storage/.snapshots" = { mountpoint = "/Local-Storage/.snapshots"; mountOptions = [ "compress=zstd" "noatime" ]; }; # Local-Storage }; # subvolumes }; # content.content }; # content }; # partition 2 (/ BTRFS) }; # partitions }; # content }; # disko.devices.disk.nvme0 } # root