mirror of
				https://github.com/Stunkymonkey/nixos.git
				synced 2025-11-03 19:16:56 +01:00 
			
		
		
		
	machine/serverle: switch to disko config
This commit is contained in:
		
							parent
							
								
									95a5e4cc78
								
							
						
					
					
						commit
						08ffb1865a
					
				
					 6 changed files with 92 additions and 45 deletions
				
			
		| 
						 | 
					@ -131,8 +131,6 @@ used flakes:
 | 
				
			||||||
            root@<host>
 | 
					            root@<host>
 | 
				
			||||||
        ```
 | 
					        ```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</details>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Inspired by
 | 
					## Inspired by
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- [Nix config by Mic92](https://github.com/Mic92/dotfiles)
 | 
					- [Nix config by Mic92](https://github.com/Mic92/dotfiles)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,13 +2,17 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports = [
 | 
					  imports = [
 | 
				
			||||||
    ./hardware-configuration.nix
 | 
					    ./hardware-configuration.nix
 | 
				
			||||||
    ./disks.nix
 | 
					 | 
				
			||||||
    ./network.nix
 | 
					    ./network.nix
 | 
				
			||||||
    ./services.nix
 | 
					    ./services.nix
 | 
				
			||||||
    ./syncthing.nix
 | 
					    ./syncthing.nix
 | 
				
			||||||
    ./system.nix
 | 
					    ./system.nix
 | 
				
			||||||
    ./wifi.nix
 | 
					    ./wifi.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  disko.devices = import ./disko-config.nix {
 | 
				
			||||||
 | 
					    disks = [ "/dev/disk/by-id/usb-Seagate_Expansion_2HC015KJ-0:0" ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  networking.hostName = "serverle";
 | 
					  networking.hostName = "serverle";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  sops = {
 | 
					  sops = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										74
									
								
								machines/serverle/disko-config.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								machines/serverle/disko-config.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,74 @@
 | 
				
			||||||
 | 
					{ disks ? [ "/dev/sda" ], ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  disk = {
 | 
				
			||||||
 | 
					    vdb = {
 | 
				
			||||||
 | 
					      type = "disk";
 | 
				
			||||||
 | 
					      device = builtins.head disks;
 | 
				
			||||||
 | 
					      content = {
 | 
				
			||||||
 | 
					        type = "gpt";
 | 
				
			||||||
 | 
					        partitions = {
 | 
				
			||||||
 | 
					          boot = {
 | 
				
			||||||
 | 
					            size = "1M";
 | 
				
			||||||
 | 
					            type = "EF02"; # for grub MBR
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					          ESP = {
 | 
				
			||||||
 | 
					            size = "512M";
 | 
				
			||||||
 | 
					            type = "EF00";
 | 
				
			||||||
 | 
					            content = {
 | 
				
			||||||
 | 
					              type = "filesystem";
 | 
				
			||||||
 | 
					              format = "vfat";
 | 
				
			||||||
 | 
					              mountpoint = "/boot";
 | 
				
			||||||
 | 
					              mountOptions = [
 | 
				
			||||||
 | 
					                "defaults"
 | 
				
			||||||
 | 
					              ];
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					          luks = {
 | 
				
			||||||
 | 
					            size = "100%";
 | 
				
			||||||
 | 
					            content = {
 | 
				
			||||||
 | 
					              type = "luks";
 | 
				
			||||||
 | 
					              name = "encrypted";
 | 
				
			||||||
 | 
					              extraOpenArgs = [ "--allow-discards" ];
 | 
				
			||||||
 | 
					              passwordFile = "/tmp/disk.key";
 | 
				
			||||||
 | 
					              content = {
 | 
				
			||||||
 | 
					                type = "lvm_pv";
 | 
				
			||||||
 | 
					                vg = "pool";
 | 
				
			||||||
 | 
					              };
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  lvm_vg = {
 | 
				
			||||||
 | 
					    pool = {
 | 
				
			||||||
 | 
					      type = "lvm_vg";
 | 
				
			||||||
 | 
					      lvs = {
 | 
				
			||||||
 | 
					        root = {
 | 
				
			||||||
 | 
					          size = "50G";
 | 
				
			||||||
 | 
					          content = {
 | 
				
			||||||
 | 
					            type = "filesystem";
 | 
				
			||||||
 | 
					            format = "ext4";
 | 
				
			||||||
 | 
					            mountpoint = "/";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        data = {
 | 
				
			||||||
 | 
					          size = "350G";
 | 
				
			||||||
 | 
					          content = {
 | 
				
			||||||
 | 
					            type = "filesystem";
 | 
				
			||||||
 | 
					            format = "ext4";
 | 
				
			||||||
 | 
					            mountpoint = "/data";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        swap = {
 | 
				
			||||||
 | 
					          size = "4G";
 | 
				
			||||||
 | 
					          content = {
 | 
				
			||||||
 | 
					            type = "swap";
 | 
				
			||||||
 | 
					            randomEncryption = true;
 | 
				
			||||||
 | 
					            resumeDevice = true;
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,29 +0,0 @@
 | 
				
			||||||
{ config, lib, pkgs, ... }:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  boot.initrd.luks.devices."luks-drive" = {
 | 
					 | 
				
			||||||
    name = "luks-drive";
 | 
					 | 
				
			||||||
    device = "/dev/disk/by-partlabel/Crypt";
 | 
					 | 
				
			||||||
    preLVM = true;
 | 
					 | 
				
			||||||
    allowDiscards = true;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  fileSystems."/" = {
 | 
					 | 
				
			||||||
    device = "/dev/disk/by-label/serverle-root";
 | 
					 | 
				
			||||||
    fsType = "ext4";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  fileSystems."/boot" = {
 | 
					 | 
				
			||||||
    device = "/dev/disk/by-label/serverle-bo";
 | 
					 | 
				
			||||||
    fsType = "vfat";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  fileSystems."/srv" = {
 | 
					 | 
				
			||||||
    device = "/dev/disk/by-label/serverle-srv";
 | 
					 | 
				
			||||||
    fsType = "ext4";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  swapDevices = [{
 | 
					 | 
				
			||||||
    device = "/dev/disk/by-label/serverle-swap";
 | 
					 | 
				
			||||||
  }];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -5,12 +5,12 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # make sure folders exist writable
 | 
					  # make sure folders exist writable
 | 
				
			||||||
  systemd.tmpfiles.rules = [
 | 
					  systemd.tmpfiles.rules = [
 | 
				
			||||||
    "d /srv/data/ 0755 syncthing syncthing"
 | 
					    "d /data/ 0755 syncthing syncthing"
 | 
				
			||||||
    "d /srv/data/computer 0755 syncthing syncthing"
 | 
					    "d /data/computer 0755 syncthing syncthing"
 | 
				
			||||||
    "d /srv/data/phone 0755 syncthing syncthing"
 | 
					    "d /data/phone 0755 syncthing syncthing"
 | 
				
			||||||
    "d /srv/data/music 0755 syncthing syncthing"
 | 
					    "d /data/music 0755 syncthing syncthing"
 | 
				
			||||||
    "d /srv/data/photos 0755 syncthing syncthing"
 | 
					    "d /data/photos 0755 syncthing syncthing"
 | 
				
			||||||
    "d /srv/data/tmp/aria2 0755 syncthing syncthing"
 | 
					    "d /data/tmp/aria2 0755 syncthing syncthing"
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  services.syncthing = {
 | 
					  services.syncthing = {
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,7 @@
 | 
				
			||||||
    folders = {
 | 
					    folders = {
 | 
				
			||||||
      "Computer" = {
 | 
					      "Computer" = {
 | 
				
			||||||
        id = "djdxo-1akub";
 | 
					        id = "djdxo-1akub";
 | 
				
			||||||
        path = "/srv/data/computer";
 | 
					        path = "/data/computer";
 | 
				
			||||||
        devices = [
 | 
					        devices = [
 | 
				
			||||||
          "thinkman"
 | 
					          "thinkman"
 | 
				
			||||||
          "birdman"
 | 
					          "birdman"
 | 
				
			||||||
| 
						 | 
					@ -46,7 +46,7 @@
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      "Phone" = {
 | 
					      "Phone" = {
 | 
				
			||||||
        id = "4hds7-gpypp";
 | 
					        id = "4hds7-gpypp";
 | 
				
			||||||
        path = "/srv/data/phone";
 | 
					        path = "/data/phone";
 | 
				
			||||||
        devices = [
 | 
					        devices = [
 | 
				
			||||||
          "thinkman"
 | 
					          "thinkman"
 | 
				
			||||||
          "birdman"
 | 
					          "birdman"
 | 
				
			||||||
| 
						 | 
					@ -55,7 +55,7 @@
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      "Music" = {
 | 
					      "Music" = {
 | 
				
			||||||
        id = "mphdq-n6q7y";
 | 
					        id = "mphdq-n6q7y";
 | 
				
			||||||
        path = "/srv/data/music";
 | 
					        path = "/data/music";
 | 
				
			||||||
        watch = false;
 | 
					        watch = false;
 | 
				
			||||||
        devices = [
 | 
					        devices = [
 | 
				
			||||||
          "thinkman"
 | 
					          "thinkman"
 | 
				
			||||||
| 
						 | 
					@ -65,7 +65,7 @@
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      "Pictures" = {
 | 
					      "Pictures" = {
 | 
				
			||||||
        id = "cujyo-yiabu";
 | 
					        id = "cujyo-yiabu";
 | 
				
			||||||
        path = "/srv/data/photos";
 | 
					        path = "/data/photos";
 | 
				
			||||||
        watch = false;
 | 
					        watch = false;
 | 
				
			||||||
        devices = [
 | 
					        devices = [
 | 
				
			||||||
          "thinkman"
 | 
					          "thinkman"
 | 
				
			||||||
| 
						 | 
					@ -74,7 +74,7 @@
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      "Aria2" = {
 | 
					      "Aria2" = {
 | 
				
			||||||
        id = "jjnzq-pgzua";
 | 
					        id = "jjnzq-pgzua";
 | 
				
			||||||
        path = "/srv/data/tmp/aria2";
 | 
					        path = "/data/tmp/aria2";
 | 
				
			||||||
        devices = [
 | 
					        devices = [
 | 
				
			||||||
          "thinkman"
 | 
					          "thinkman"
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -101,8 +101,8 @@ in
 | 
				
			||||||
        "/var/run"
 | 
					        "/var/run"
 | 
				
			||||||
        "/var/tmp"
 | 
					        "/var/tmp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        "/srv/data/tmp"
 | 
					        "/data/tmp"
 | 
				
			||||||
        "/srv/data/todo"
 | 
					        "/data/todo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        "/home/*/.cache"
 | 
					        "/home/*/.cache"
 | 
				
			||||||
        "/home/*/.gvfs"
 | 
					        "/home/*/.gvfs"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue