summaryrefslogtreecommitdiffstats
path: root/system
diff options
context:
space:
mode:
Diffstat (limited to 'system')
-rw-r--r--system/default.nix2
-rw-r--r--system/disks/default.nix65
-rw-r--r--system/disks/impermanence.nix (renamed from system/file_system_layouts/impermanence.nix)0
-rw-r--r--system/file_system_layouts/default.nix44
4 files changed, 66 insertions, 45 deletions
diff --git a/system/default.nix b/system/default.nix
index 4b52b79..79b5403 100644
--- a/system/default.nix
+++ b/system/default.nix
@@ -1,6 +1,6 @@
{...}: {
imports = [
- ./file_system_layouts
+ ./disks
./packages
./services
./users
diff --git a/system/disks/default.nix b/system/disks/default.nix
new file mode 100644
index 0000000..b5e53e4
--- /dev/null
+++ b/system/disks/default.nix
@@ -0,0 +1,65 @@
+{
+ config,
+ lib,
+ ...
+}:
+with lib; let
+ cfg = config.system.disks;
+ defaultMountOptions = ["compress-force=zstd:15"];
+in {
+ imports = [ ./impermanence.nix];
+
+ options.system.disks = {
+ disk = mkOption {
+ type = lib.types.path;
+ example = literalExpression "/dev/disk/by-id/ata-WDC_WD10SDRW-11A0XS0_WD-WXP2A901KJN5";
+ description = lib.mdDoc "Path to the disk";
+ };
+ };
+
+ config = {
+ disko.devices = {
+ disk.main = {
+ device = cfg.disk;
+ content = {
+ type = "btrfs";
+ extraArgs = ["-f" "--label nixos"]; # f: Override existing partitions
+ subvolumes = {
+ "nix" = {
+ mountpoint = "/nix";
+ mountOptions = defaultMountOptions;
+ };
+ "persistent-storage" = {
+ mountpoint = "/srv";
+ mountOptions = defaultMountOptions;
+ };
+ "persistent-storage@snapshots" = {
+ mountpoint = "/srv/.snapshots";
+ mountOptions = defaultMountOptions;
+ };
+ "boot" = {
+ mountpoint = "/boot";
+ mountOptions = defaultMountOptions;
+ };
+ };
+ };
+ };
+ nodev = {
+ "/" = {
+ fsType = "tmpfs";
+ mountOptions = ["defaults" "size=2G" "mode=755"];
+ };
+ };
+ };
+ fileSystems = {
+ "/srv" = {
+ neededForBoot = true;
+ };
+ "/boot" = {
+ neededForBoot = true;
+ };
+ };
+ };
+}
+# vim: ts=2
+
diff --git a/system/file_system_layouts/impermanence.nix b/system/disks/impermanence.nix
index 32ad9f7..32ad9f7 100644
--- a/system/file_system_layouts/impermanence.nix
+++ b/system/disks/impermanence.nix
diff --git a/system/file_system_layouts/default.nix b/system/file_system_layouts/default.nix
deleted file mode 100644
index d038632..0000000
--- a/system/file_system_layouts/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- config,
- lib,
- ...
-}:
-with lib; let
- cfg = config.system.fileSystemLayouts;
-in {
- imports = [
- ./impermanence.nix
- ];
-
- options.system.fileSystemLayouts = {
- mainDisk = mkOption {
- type = lib.types.path;
- example = literalExpression "/dev/disk/by-uuid/0442cb6d-f13a-4635-b487-fa76189774c5";
- description = lib.mdDoc "Path to the main disk";
- };
- };
- config = {
- fileSystems = {
- "/" = {
- device = "tmpfs";
- fsType = "tmpfs";
- options = ["defaults" "size=2G" "mode=755"];
- };
- "/nix" = {
- device = cfg.mainDisk;
- fsType = "btrfs";
- options = ["subvol=nix" "compress-force=zstd"];
- };
- "/srv" = {
- device = cfg.mainDisk;
- fsType = "btrfs";
- options = ["subvol=storage" "compress-force=zstd"];
- neededForBoot = true;
- };
- "/boot" = {
- device = cfg.mainDisk;
- options = ["subvol=boot" "compress-force=zstd"];
- };
- };
- };
-}