aboutsummaryrefslogtreecommitdiffstats
path: root/modules/by-name/di/disko
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-12-21 20:30:43 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-12-21 20:30:43 +0100
commitbd2bca99b5e27f3dc7b657f139947e51458ee8cb (patch)
treefc819a5a679598d8418260be70852b00c9fe438a /modules/by-name/di/disko
parentfix(system/services/mastodon): Update char patch to v4.3 (diff)
downloadnixos-server-bd2bca99b5e27f3dc7b657f139947e51458ee8cb.zip
fix(modules/disko): Remove deprecated legacy type and migrate to `by-name`
Diffstat (limited to '')
-rw-r--r--modules/by-name/di/disko/module.nix78
1 files changed, 78 insertions, 0 deletions
diff --git a/modules/by-name/di/disko/module.nix b/modules/by-name/di/disko/module.nix
new file mode 100644
index 0000000..0aff93f
--- /dev/null
+++ b/modules/by-name/di/disko/module.nix
@@ -0,0 +1,78 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.system.disko;
+
+ defaultMountOptions = ["compress-force=zstd:15" "noatime"];
+in {
+ options.vhack.disko = {
+ enable = lib.mkEnableOption "disk configuration via disko";
+
+ disk = lib.mkOption {
+ type = lib.types.path;
+ example = "/dev/disk/by-id/ata-WDC_WD10SDRW-11A0XS0_WD-WXP2A901KJN5";
+ description = "Path to the main disk";
+ };
+ };
+
+ config = {
+ disko.devices = {
+ disk.main = {
+ type = "disk";
+ device = cfg.disk;
+
+ content = {
+ type = "gpt";
+ partitions = {
+ boot = {
+ size = "1M";
+ type = "EF02"; # for grub MBR
+ };
+ root = {
+ size = "100%";
+ content = {
+ type = "btrfs";
+ extraArgs = ["-f" "--label nixos"]; # f: Override existing partitions
+
+ subvolumes = {
+ "/nix" = {
+ mountpoint = "/nix";
+ mountOptions = defaultMountOptions;
+ };
+ "/srv" = {
+ mountpoint = "/srv";
+ mountOptions = defaultMountOptions;
+ };
+ "/srv/.snapshots" = {
+ mountpoint = "/srv/.snapshots";
+ mountOptions = defaultMountOptions;
+ };
+ "/boot" = {
+ mountpoint = "/boot";
+ mountOptions = defaultMountOptions;
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+
+ nodev."/" = {
+ fsType = "tmpfs";
+ mountOptions = ["defaults" "size=6G" "mode=755"];
+ };
+ };
+
+ fileSystems = {
+ "/srv" = {
+ neededForBoot = true;
+ };
+ "/boot" = {
+ neededForBoot = true;
+ };
+ };
+ };
+}