my over complex system configurations dotfiles.isabelroses.com/
nixos nix flake dotfiles linux

profiles/{oracle,hetzner,upcloud}: init

+77 -217
+1 -8
modules/generic/profiles.nix
··· 8 8 headless.enable = mkEnableOption "Headless"; 9 9 workstation.enable = mkEnableOption "Workstation"; 10 10 laptop.enable = mkEnableOption "Laptop"; 11 - 12 - server = { 13 - enable = mkEnableOption "Server"; 14 - 15 - # types of servers 16 - oracle.enable = mkEnableOption "Oracle"; 17 - hetzner.enable = mkEnableOption "Hetzner"; 18 - }; 11 + server.enable = mkEnableOption "Server"; 19 12 }; 20 13 }
+1 -6
modules/home/profiles.nix
··· 9 9 headless 10 10 workstation 11 11 laptop 12 + server 12 13 ; 13 - 14 - server = { 15 - inherit (cfg.server) enable; 16 - oracle.enable = cfg.server.oracle.enable; 17 - hetzner.enable = cfg.server.hetzner.enable; 18 - }; 19 14 }; 20 15 21 16 programs.git.enable = lib.mkDefault cfg.workstation.enable;
+3
modules/nixos/hardware/cloud/default.nix
··· 2 2 imports = [ 3 3 # keep-sorted start 4 4 ./hetzner 5 + ./oracle.nix 6 + ./overrides.nix 7 + ./upcloud.nix 5 8 # keep-sorted end 6 9 ]; 7 10 }
-1
modules/nixos/hardware/cloud/hetzner/default.nix
··· 3 3 # keep-sorted start 4 4 ./garden.nix 5 5 ./networking.nix 6 - ./overrides.nix 7 6 # keep-sorted end 8 7 ]; 9 8 }
+6 -2
modules/nixos/hardware/cloud/hetzner/garden.nix
··· 1 1 { lib, config, ... }: 2 2 let 3 - inherit (lib) mkIf; 3 + inherit (lib) mkIf mkEnableOption; 4 4 5 - cfg = config.garden.profiles.server.hetzner; 5 + cfg = config.garden.profiles.hetzner; 6 6 in 7 7 { 8 + options.garden.profiles.hetzner = { 9 + enable = mkEnableOption "Hetzner Cloud profile"; 10 + }; 11 + 8 12 config = mkIf cfg.enable { 9 13 garden = { 10 14 device.capabilities = {
+2 -2
modules/nixos/hardware/cloud/hetzner/networking.nix
··· 2 2 let 3 3 inherit (lib) mkIf mkForce mkOption; 4 4 5 - cfg = config.garden.profiles.server.hetzner; 5 + cfg = config.garden.profiles.hetzner; 6 6 in 7 7 { 8 - options.garden.profiles.server.hetzner = { 8 + options.garden.profiles.hetzner = { 9 9 ipv4 = mkOption { 10 10 type = lib.types.str; 11 11 description = ''
+8 -4
modules/nixos/hardware/cloud/hetzner/overrides.nix modules/nixos/hardware/cloud/overrides.nix
··· 5 5 ... 6 6 }: 7 7 let 8 - inherit (lib.modules) mkIf mkForce; 9 - cfg = config.garden.profiles.server.hetzner; 8 + inherit (lib) mkIf mkForce; 9 + enable = 10 + config.garden.profiles.hetzner.enable 11 + || config.garden.profiles.upcloud.enable 12 + || config.garden.profiles.oracle.enable; 10 13 in 11 14 { 12 - config = mkIf cfg.enable { 15 + config = mkIf enable { 13 16 services = { 14 - smartd.enable = mkForce false; # Unavailable - device lacks SMART capability. 17 + # Unavailable - device lacks SMART capability. 18 + smartd.enable = mkForce false; 15 19 16 20 # Needed by the Hetzner Cloud password reset feature 17 21 qemuGuest.enable = true;
+13
modules/nixos/hardware/cloud/oracle.nix
··· 1 + { lib, config, ... }: 2 + let 3 + inherit (lib) mkForce mkEnableOption; 4 + in 5 + { 6 + options.garden.profiles.oracle = { 7 + enable = mkEnableOption "Oracle Cloud profile"; 8 + }; 9 + 10 + config = lib.mkIf config.garden.profiles.oracle.enable { 11 + services.thermald.enable = mkForce false; # Unavailable - device lacks thermal sensors. 12 + }; 13 + }
+23
modules/nixos/hardware/cloud/upcloud.nix
··· 1 + { lib, config, ... }: 2 + let 3 + inherit (lib) mkIf mkEnableOption; 4 + in 5 + { 6 + options.garden.profiles.upcloud = { 7 + enable = mkEnableOption "UpCloud profile"; 8 + }; 9 + 10 + config = mkIf config.garden.profiles.upcloud.enable { 11 + garden = { 12 + device = { 13 + cpu = "intel"; 14 + gpu = null; 15 + }; 16 + 17 + system.boot = { 18 + loader = "grub"; 19 + grub.device = "/dev/vda"; 20 + }; 21 + }; 22 + }; 23 + }
+1 -10
systems/aphrodite/default.nix
··· 5 5 profiles = { 6 6 headless.enable = true; 7 7 server.enable = true; 8 - }; 9 - 10 - device = { 11 - cpu = "intel"; 12 - gpu = null; 13 - }; 14 - 15 - system.boot = { 16 - loader = "grub"; 17 - grub.device = "/dev/vda"; 8 + upcloud.enable = true; 18 9 }; 19 10 20 11 services = {
-39
systems/aphrodite/hardware.nix
··· 1 - { lib, ... }: 2 1 { 3 2 fileSystems."/" = { 4 3 device = "/dev/disk/by-uuid/ecbc167c-3bfe-4801-90c1-51c272d316c6"; ··· 8 7 swapDevices = [ 9 8 { device = "/dev/disk/by-uuid/a04ef6f2-82fe-4a8c-9273-fb80e7383dfa"; } 10 9 ]; 11 - 12 - services = { 13 - smartd.enable = lib.mkForce false; 14 - qemuGuest.enable = true; 15 - }; 16 - 17 - boot = { 18 - loader.generationsDir.copyKernels = lib.mkForce false; 19 - 20 - initrd = { 21 - availableKernelModules = [ 22 - "ata_piix" 23 - "uhci_hcd" 24 - "xen_blkfront" 25 - "vmw_pvscsi" 26 - 27 - "virtio_net" 28 - "virtio_pci" 29 - "virtio_mmio" 30 - "virtio_blk" 31 - "virtio_scsi" 32 - "9p" 33 - "9pnet_virtio" 34 - ]; 35 - kernelModules = [ 36 - "nvme" 37 - "virtio_balloon" 38 - "virtio_console" 39 - "virtio_rng" 40 - "virtio_gpu" 41 - ]; 42 - }; 43 - 44 - loader.grub = { 45 - useOSProber = lib.mkForce false; 46 - efiSupport = lib.mkForce false; 47 - }; 48 - }; 49 10 }
+1 -10
systems/hephaestus/default.nix
··· 5 5 profiles = { 6 6 headless.enable = true; 7 7 server.enable = true; 8 - }; 9 - 10 - device = { 11 - cpu = "intel"; 12 - gpu = null; 13 - }; 14 - 15 - system.boot = { 16 - loader = "grub"; 17 - grub.device = "/dev/vda"; 8 + upcloud.enable = true; 18 9 }; 19 10 20 11 services = {
-39
systems/hephaestus/hardware.nix
··· 1 - { lib, ... }: 2 1 { 3 2 fileSystems."/" = { 4 3 device = "/dev/disk/by-uuid/4d503c5f-c51a-4eca-993c-5beb9b85b963"; ··· 8 7 swapDevices = [ 9 8 { device = "/dev/disk/by-uuid/9455e246-4f8f-42cb-beb8-d1a071a1b5e0"; } 10 9 ]; 11 - 12 - services = { 13 - smartd.enable = lib.mkForce false; 14 - qemuGuest.enable = true; 15 - }; 16 - 17 - boot = { 18 - loader.generationsDir.copyKernels = lib.mkForce false; 19 - 20 - initrd = { 21 - availableKernelModules = [ 22 - "ata_piix" 23 - "uhci_hcd" 24 - "xen_blkfront" 25 - "vmw_pvscsi" 26 - 27 - "virtio_net" 28 - "virtio_pci" 29 - "virtio_mmio" 30 - "virtio_blk" 31 - "virtio_scsi" 32 - "9p" 33 - "9pnet_virtio" 34 - ]; 35 - kernelModules = [ 36 - "nvme" 37 - "virtio_balloon" 38 - "virtio_console" 39 - "virtio_rng" 40 - "virtio_gpu" 41 - ]; 42 - }; 43 - 44 - loader.grub = { 45 - useOSProber = lib.mkForce false; 46 - efiSupport = lib.mkForce false; 47 - }; 48 - }; 49 10 }
+1 -10
systems/isis/default.nix
··· 5 5 profiles = { 6 6 headless.enable = true; 7 7 server.enable = true; 8 - }; 9 - 10 - device = { 11 - cpu = "intel"; 12 - gpu = null; 13 - }; 14 - 15 - system.boot = { 16 - loader = "grub"; 17 - grub.device = "/dev/vda"; 8 + upcloud.enable = true; 18 9 }; 19 10 20 11 services = {
-40
systems/isis/hardware.nix
··· 1 - { lib, ... }: 2 1 { 3 - 4 2 fileSystems."/" = { 5 3 device = "/dev/disk/by-uuid/71fc32ae-cc42-4020-a9ab-03b2b79d89c5"; 6 4 fsType = "ext4"; 7 - }; 8 - 9 - services = { 10 - smartd.enable = lib.mkForce false; 11 - qemuGuest.enable = true; 12 - }; 13 - 14 - boot = { 15 - loader.generationsDir.copyKernels = lib.mkForce false; 16 - 17 - initrd = { 18 - availableKernelModules = [ 19 - "ata_piix" 20 - "uhci_hcd" 21 - "xen_blkfront" 22 - "vmw_pvscsi" 23 - 24 - "virtio_net" 25 - "virtio_pci" 26 - "virtio_mmio" 27 - "virtio_blk" 28 - "virtio_scsi" 29 - "9p" 30 - "9pnet_virtio" 31 - ]; 32 - kernelModules = [ 33 - "nvme" 34 - "virtio_balloon" 35 - "virtio_console" 36 - "virtio_rng" 37 - "virtio_gpu" 38 - ]; 39 - }; 40 - 41 - loader.grub = { 42 - useOSProber = lib.mkForce false; 43 - efiSupport = lib.mkForce false; 44 - }; 45 5 }; 46 6 }
+5 -6
systems/minerva/default.nix
··· 7 7 garden = { 8 8 profiles = { 9 9 headless.enable = true; 10 - server = { 10 + server.enable = true; 11 + 12 + hetzner = { 11 13 enable = true; 12 - hetzner = { 13 - enable = true; 14 - ipv4 = "91.107.198.173"; 15 - ipv6 = "2a01:4f8:c012:2f67::1"; 16 - }; 14 + ipv4 = "91.107.198.173"; 15 + ipv6 = "2a01:4f8:c012:2f67::1"; 17 16 }; 18 17 }; 19 18
+1
systems/skadi/default.nix
··· 5 5 profiles = { 6 6 headless.enable = true; 7 7 server.enable = true; 8 + oracle.enable = true; 8 9 }; 9 10 10 11 device = {
+11 -40
systems/skadi/hardware.nix
··· 1 1 { 2 - lib, 3 - pkgs, 4 - modulesPath, 5 - ... 6 - }: 7 - let 8 - inherit (lib.modules) mkForce; 9 - in 10 - { 11 - imports = [ 12 - (modulesPath + "/profiles/qemu-guest.nix") 13 - ]; 14 - 15 - config = { 16 - boot.initrd.availableKernelModules = [ 17 - "xhci_pci" 18 - "virtio_scsi" 19 - ]; 20 - 21 - fileSystems = { 22 - "/" = { 23 - device = "/dev/disk/by-uuid/3ac0d35f-0807-4553-a17e-24b227f1a3b1"; 24 - fsType = "ext4"; 25 - }; 26 - 27 - "/boot" = { 28 - device = "/dev/disk/by-uuid/ED86-8CB2"; 29 - fsType = "vfat"; 30 - options = [ 31 - "fmask=0022" 32 - "dmask=0022" 33 - ]; 34 - }; 2 + fileSystems = { 3 + "/" = { 4 + device = "/dev/disk/by-uuid/3ac0d35f-0807-4553-a17e-24b227f1a3b1"; 5 + fsType = "ext4"; 35 6 }; 36 7 37 - services = { 38 - smartd.enable = mkForce false; # Unavailable - device lacks SMART capability. 39 - thermald.enable = mkForce false; # Unavailable - device lacks thermal sensors. 40 - 41 - qemuGuest.enable = true; 8 + "/boot" = { 9 + device = "/dev/disk/by-uuid/ED86-8CB2"; 10 + fsType = "vfat"; 11 + options = [ 12 + "fmask=0022" 13 + "dmask=0022" 14 + ]; 42 15 }; 43 - 44 - systemd.services.qemu-guest-agent.path = [ pkgs.shadow ]; 45 16 }; 46 17 }