diff options
Diffstat (limited to 'modules/backup')
-rw-r--r-- | modules/backup/default.nix | 33 | ||||
-rw-r--r-- | modules/backup/disk-config.nix | 52 |
2 files changed, 85 insertions, 0 deletions
diff --git a/modules/backup/default.nix b/modules/backup/default.nix new file mode 100644 index 0000000..df34549 --- /dev/null +++ b/modules/backup/default.nix @@ -0,0 +1,33 @@ +{ lib, ... }: +{ + imports = [ + ./disk-config.nix + ../core + ]; + + # MEH + networking.hostId = "78bc192c"; + + system.stateVersion = "24.11"; + home-manager.users.jras = { home.stateVersion = "24.11"; }; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + time.timeZone = "Europe/Amsterdam"; + + services.openssh = { + openFirewall = lib.mkForce true; + hostKeys = [ + { + path = "/persist/etc/ssh/ssh_host_ed25519_key"; + type = "ed25519"; + } + { + path = "/persist/etc/ssh/ssh_host_rsa_key"; + type = "rsa"; + bits = 4096; + } + ]; + }; +} diff --git a/modules/backup/disk-config.nix b/modules/backup/disk-config.nix new file mode 100644 index 0000000..9244686 --- /dev/null +++ b/modules/backup/disk-config.nix @@ -0,0 +1,52 @@ +{ + disko.devices = { + disk = { + sda = { + device = "/dev/vda"; + type = "disk"; + content = { + type = "gpt"; + partitions = { + ESP = { + type = "EF00"; + size = "500M"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + mountOptions = [ "umask=0077" ]; + }; + }; + zfs = { + size = "100%"; + content = { + type = "zfs"; + pool = "zroot"; + }; + }; + }; + }; + }; + }; + + zpool = { + zroot = { + type = "zpool"; + rootFsOptions = { + compression = "zstd"; + "com.sun:auto-snapshot" = "false"; + }; + mountpoint = "/"; + postCreateHook = "zfs list -t snap -H -o name | grep -E '^zroot@blank$' || zfs snapshot zroot@blank"; + + datasets = { + persist = { + type = "zfs_fs"; + mountpoint = "/persist"; + options."com.sun:auto-snapshot" = "true"; + }; + }; + }; + }; + }; +} |