From 8ea60d90dff021d61049d3a0a2a5e8a83943add0 Mon Sep 17 00:00:00 2001 From: coolneng Date: Tue, 20 Dec 2022 11:54:17 +0100 Subject: [PATCH] Move state directories to ZFS pool --- modules/hardware-configuration.nix | 152 ++++++++++++++++++++--------- 1 file changed, 106 insertions(+), 46 deletions(-) diff --git a/modules/hardware-configuration.nix b/modules/hardware-configuration.nix index 1b5bc67..a56d17e 100644 --- a/modules/hardware-configuration.nix +++ b/modules/hardware-configuration.nix @@ -4,69 +4,129 @@ { config, lib, pkgs, modulesPath, ... }: { - imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ ]; + boot.initrd.availableKernelModules = [ "xhci_pci" ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ ]; boot.extraModulePackages = [ ]; - fileSystems."/" = { - device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; - fsType = "ext4"; - }; + fileSystems."/" = + { device = "/dev/disk/by-uuid/44444444-4444-4444-8888-888888888888"; + fsType = "ext4"; + }; - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/2178-694E"; - fsType = "vfat"; - }; + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/2178-694E"; + fsType = "vfat"; + }; - fileSystems."/vault" = { - device = "vault"; - fsType = "zfs"; - }; + fileSystems."/var/lib/containers/storage/overlay" = + { device = "/var/lib/containers/storage/overlay"; + fsType = "none"; + options = [ "bind" ]; + }; - fileSystems."/vault/git" = { - device = "vault/git"; - fsType = "zfs"; - }; + fileSystems."/var/lib/containers/storage/overlay-containers/dba1864ff1473b3ba5fddd103f9cfff67334fbcc5c99c42b619e8a6d88776061/userdata/shm" = + { device = "shm"; + fsType = "tmpfs"; + }; - fileSystems."/vault/nextcloud" = { - device = "vault/nextcloud"; - fsType = "zfs"; - }; + fileSystems."/var/lib/containers/storage/overlay/1990fed1fbfbe8dc75ded251c84e8d82700fef0f01e8ead81916cadc5ec2cac1/merged" = + { device = "overlay"; + fsType = "overlay"; + }; - fileSystems."/vault/syncthing" = { - device = "vault/syncthing"; - fsType = "zfs"; - }; + fileSystems."/vault" = + { device = "vault"; + fsType = "zfs"; + }; - fileSystems."/vault/backups" = { - device = "vault/backups"; - fsType = "zfs"; - }; + fileSystems."/vault/radicale" = + { device = "vault/radicale"; + fsType = "zfs"; + }; - fileSystems."/vault/backups/zion" = { - device = "vault/backups/zion"; - fsType = "zfs"; - }; + fileSystems."/vault/syncthing" = + { device = "vault/syncthing"; + fsType = "zfs"; + }; - fileSystems."/vault/backups/zion/databases" = { - device = "vault/backups/zion/databases"; - fsType = "zfs"; - }; + fileSystems."/vault/backups" = + { device = "vault/backups"; + fsType = "zfs"; + }; - fileSystems."/vault/backups/monolith" = { - device = "vault/backups/monolith"; - fsType = "zfs"; - }; + fileSystems."/vault/git" = + { device = "vault/git"; + fsType = "zfs"; + }; - fileSystems."/vault/radicale" = { - device = "vault/radicale"; - fsType = "zfs"; - }; + fileSystems."/vault/nextcloud" = + { device = "vault/nextcloud"; + fsType = "zfs"; + }; + + fileSystems."/vault/backups/monolith" = + { device = "vault/backups/monolith"; + fsType = "zfs"; + }; + + fileSystems."/vault/backups/zion" = + { device = "vault/backups/zion"; + fsType = "zfs"; + }; + + fileSystems."/vault/backups/zion/databases" = + { device = "vault/backups/zion/databases"; + fsType = "zfs"; + }; + + fileSystems."/var/lib/wallabag" = + { device = "vault/state_directories/wallabag"; + fsType = "zfs"; + }; + + fileSystems."/var/lib/gitea" = + { device = "vault/state_directories/gitea"; + fsType = "zfs"; + }; + + fileSystems."/var/lib/signald" = + { device = "vault/state_directories/signald"; + fsType = "zfs"; + }; + + fileSystems."/var/lib/matrix-as-signal" = + { device = "vault/state_directories/matrix-as-signal"; + fsType = "zfs"; + }; + + fileSystems."/var/lib/matrix-as-facebook" = + { device = "vault/state_directories/matrix-as-facebook"; + fsType = "zfs"; + }; + + fileSystems."/var/lib/matrix-as-telegram" = + { device = "vault/state_directories/matrix-as-telegram"; + fsType = "zfs"; + }; swapDevices = [ ]; + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.cni-podman0.useDHCP = lib.mkDefault true; + # networking.interfaces.eth0.useDHCP = lib.mkDefault true; + # networking.interfaces.veth65ee03c8.useDHCP = lib.mkDefault true; + # networking.interfaces.wg0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlan0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; }