Quickstart
This walks through creating a VM, configuring it, provisioning it, and opening a shell inside it.
1. Scaffold a VM
Section titled “1. Scaffold a VM”dvm new app # writes ~/.config/dvm/vms/app/{config.sh,setup.sh} # and scaffolds ~/.config/dvm/config.sh on first run2. Edit the config
Section titled “2. Edit the config”Resource and user settings live in the global ~/.config/dvm/config.sh and apply
to every VM. The per-VM config only holds what this VM needs to differ on:
DVM_MEMORY=4 # more RAM than the global default for this VMDVM_PORTS=(3000:3000 5173:5173) # extra forwards on top of Lima's automatic onesSee the config reference for every variable.
3. Edit the setup script
Section titled “3. Edit the setup script”The setup script runs inside the guest during dvm sync. Install whatever your
project needs here:
#!/usr/bin/env bashset -Eeuo pipefail
sudo dnf5 install -y git ripgrep fd-find tmuxBrowse Examples for copy/paste setup snippets.
4. Build and enter
Section titled “4. Build and enter”DVM_DRY_RUN=1 dvm sync app # preview the Lima argv + setup order, no Lima contactdvm sync app # create/start the VM and run setup scriptsdvm sh app # open a shell as the dev userWhen you’re done, stop or destroy the VM:
dvm stop appdvm rm app --yes # add --config to also delete ~/.config/dvm/vms/appSee the Commands reference for the full CLI.
Built and maintained by eshlox.