add radish-vm for testing
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
/result
|
||||
/.direnv
|
||||
/.gcroots
|
||||
*.qcow2
|
||||
|
||||
@@ -102,6 +102,7 @@
|
||||
in
|
||||
{
|
||||
radish = mkConfiguration "radish";
|
||||
radish-vm = mkConfiguration "radish-vm";
|
||||
freun-dev = mkConfiguration "freun-dev";
|
||||
apu = mkConfiguration "apu";
|
||||
};
|
||||
|
||||
@@ -187,7 +187,7 @@ in
|
||||
};
|
||||
edit_predictions = {
|
||||
enabled = true;
|
||||
mode = "subtle";
|
||||
mode = "eager";
|
||||
provider = "zed";
|
||||
};
|
||||
buffer_font_family = "Iosevka Nerd Font";
|
||||
@@ -200,6 +200,11 @@ in
|
||||
"tsconfig.*.json"
|
||||
];
|
||||
};
|
||||
context_servers = {
|
||||
browser-tools-context-server = {
|
||||
npx_command = "${pkgs.nodejs}/bin/npx";
|
||||
};
|
||||
};
|
||||
};
|
||||
userKeymaps = [
|
||||
{
|
||||
|
||||
21
hosts/radish-vm/boot.nix
Normal file
21
hosts/radish-vm/boot.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
boot = {
|
||||
loader.systemd-boot.enable = true;
|
||||
loader.efi.canTouchEfiVariables = true;
|
||||
loader.systemd-boot.configurationLimit = 10;
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
tmp.useTmpfs = true;
|
||||
|
||||
kernel.sysctl = {
|
||||
"vm.max_map_count" = 262144;
|
||||
};
|
||||
binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
efibootmgr
|
||||
];
|
||||
}
|
||||
24
hosts/radish-vm/default.nix
Normal file
24
hosts/radish-vm/default.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
{ inputs, ... }:
|
||||
let
|
||||
inherit (inputs)
|
||||
home-manager
|
||||
;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
# Import most of the original radish config
|
||||
../radish/configuration.nix
|
||||
../radish/host.nix
|
||||
../radish/packages.nix
|
||||
../radish/containers.nix
|
||||
../radish/desktop.nix
|
||||
../radish/users.nix
|
||||
../radish/secrets.nix
|
||||
# VM-specific overrides
|
||||
./boot.nix
|
||||
./hardware.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
../../home
|
||||
];
|
||||
}
|
||||
64
hosts/radish-vm/hardware-configuration.nix
Normal file
64
hosts/radish-vm/hardware-configuration.nix
Normal file
@@ -0,0 +1,64 @@
|
||||
# VM Hardware Configuration Template
|
||||
# This file will be generated during VM installation with `nixos-generate-config`
|
||||
# But here's a template for common VM setups
|
||||
|
||||
{
|
||||
lib,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
# Boot configuration for VMs
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"ahci"
|
||||
"xhci_pci"
|
||||
"virtio_pci"
|
||||
"virtio_scsi"
|
||||
"sr_mod"
|
||||
"virtio_blk"
|
||||
"vmw_pvscsi"
|
||||
];
|
||||
kernelModules = [ ];
|
||||
};
|
||||
kernelModules = [ ];
|
||||
extraModulePackages = [ ];
|
||||
};
|
||||
|
||||
networking = {
|
||||
useDHCP = lib.mkDefault true;
|
||||
};
|
||||
|
||||
hardware = {
|
||||
graphics = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
spice-vdagentd.enable = lib.mkDefault true;
|
||||
qemuGuest.enable = lib.mkDefault true;
|
||||
};
|
||||
|
||||
virtualisation = {
|
||||
vmware.guest.enable = lib.mkDefault false;
|
||||
virtualbox.guest.enable = lib.mkDefault false;
|
||||
hypervGuest.enable = lib.mkDefault false;
|
||||
vmVariant.virtualisation = {
|
||||
memorySize = 8192;
|
||||
cores = 4;
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
|
||||
powerManagement = {
|
||||
enable = lib.mkDefault false;
|
||||
};
|
||||
}
|
||||
11
hosts/radish-vm/hardware.nix
Normal file
11
hosts/radish-vm/hardware.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
...
|
||||
}:
|
||||
{
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
services.fstrim.enable = true; # Still useful for VM disk optimization
|
||||
services.openssh.enable = true;
|
||||
}
|
||||
@@ -6,6 +6,7 @@
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ];
|
||||
shell = pkgs.zsh;
|
||||
initialPassword = "changeme";
|
||||
};
|
||||
|
||||
users.users.moco = {
|
||||
@@ -13,6 +14,7 @@
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ];
|
||||
shell = pkgs.zsh;
|
||||
initialPassword = "changeme";
|
||||
subUidRanges = [
|
||||
{
|
||||
startUid = 10000;
|
||||
|
||||
Reference in New Issue
Block a user