2025-01-19 20:25:28 -08:00
..
configuration.nix package standard boot files 2025-01-19 20:25:28 -08:00
gc-my-roots.sh apply provisioning feedback from vultr setup demo, create template 2024-12-21 12:32:58 -08:00
minibase-install.sh apply provisioning feedback from vultr setup demo, create template 2024-12-21 12:32:58 -08:00
README.md apply provisioning feedback from vultr setup demo, create template 2024-12-21 12:32:58 -08:00

minibase bootstrap iso

boots into a live session with openssh running for easy remote setup.

ssh pubkeys can be baked into the image, but we're still working on the DX around providing the files and values to the device. for now, edit configuration.nix to include the appropriate values.

features

  • lix (whether it makes it into the final install remains to be seen)
  • ops user with wheel
  • wheel can sudo with no password

installer sheet

parted /dev/vda -- mklabel gpt
parted /dev/vda -- mkpart root ext4 512MB -8GB
parted /dev/vda -- mkpart swap linux-swap -8GB 100%
parted /dev/vda -- mkpart ESP fat32 1MB 512MB
parted /dev/vda -- set 3 esp on
mkfs.btrfs -L nixos /dev/vda1
mkswap -L swap /dev/vda2
mkfs.fat -F 32 -n BOOT /dev/vda3

mount /dev/disk/by-label/nixos /mnt
cd /mnt
btrfs subvolume create root
btrfs subvolume create persistent
btrfs subvolume create nix
cd
umount /mnt

mount -o subvol=root /dev/disk/by-label/nixos /mnt
mkdir /mnt/nix /mnt/persistent
mount -o subvol=nix /dev/disk/by-label/nixos /mnt/nix
mount -o subvol=persistent /dev/disk/by-label/nixos /mnt/persistent

mkdir -p /mnt/boot
mount -o umask=077 /dev/disk/by-label/BOOT /mnt/boot
swapon /dev/vda2

plan for impermenance!

{
  fileSystems."/" = {
    device = "/dev/root_vg/root";
    fsType = "btrfs";
    options = [ "subvol=root" ];
  };

  boot.initrd.postDeviceCommands = lib.mkAfter ''
  '';

  fileSystems."/persistent" = {
    device = "/dev/root_vg/root";
    neededForBoot = true;
    fsType = "btrfs";
    options = [ "subvol=persistent" ];
  };

  fileSystems."/nix" = {
    device = "/dev/root_vg/root";
    fsType = "btrfs";
    options = [ "subvol=nix" ];
  };

  fileSystems."/boot" = {
    device = "/dev/disk/by-uuid/XXXX-XXXX";
    fsType = "vfat";
  };
}