mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-03-29 05:41:52 +02:00
57 lines
1.5 KiB
Nix
57 lines
1.5 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
username,
|
|
...
|
|
}:
|
|
##############################################################################
|
|
#
|
|
# Template for Proxmox's VM, mainly based on:
|
|
# https://github.com/NixOS/nixpkgs/blob/nixos-unstable/nixos/modules/virtualisation/proxmox-image.nix
|
|
#
|
|
# the url above is used by `nixos-generator` to generate the Proxmox's VMA image file.
|
|
#
|
|
##############################################################################
|
|
{
|
|
# DO NOT promote ryan to input password for sudo.
|
|
# this is a workaround for the issue of remote deploy:
|
|
# https://github.com/NixOS/nixpkgs/issues/118655
|
|
security.sudo.extraRules = [
|
|
{
|
|
users = [username];
|
|
commands = [
|
|
{
|
|
command = "ALL";
|
|
options = ["NOPASSWD"];
|
|
}
|
|
];
|
|
}
|
|
];
|
|
|
|
boot = {
|
|
# after resize the disk, it will grow partition automatically.
|
|
growPartition = true;
|
|
kernelParams = ["console=ttyS0"];
|
|
loader.grub = {
|
|
device = "/dev/vda";
|
|
|
|
# we do not support EFI, so disable it.
|
|
efiSupport = false;
|
|
efiInstallAsRemovable = false;
|
|
};
|
|
|
|
loader.timeout = lib.mkForce 3; # wait for 3 seconds to select the boot entry
|
|
initrd.availableKernelModules = ["uas" "virtio_blk" "virtio_pci"];
|
|
};
|
|
|
|
fileSystems."/" = {
|
|
device = "/dev/disk/by-label/nixos";
|
|
autoResize = true;
|
|
fsType = "ext4";
|
|
};
|
|
# we do not have a /boot partition, so do not mount it.
|
|
|
|
# it alse had qemu-guest-agent installed by default.
|
|
services.qemuGuest.enable = lib.mkDefault true;
|
|
}
|