- Persistent: destroying a VM never touches folder data. The folder exists
until you run
machine0 folders rm. - Shared: mount one folder on multiple VMs at the same time.
- 25 GiB per folder (default quota), 5 folders per account, free during the alpha.
- Folders have a single home region. VMs in any region can mount them; VMs farther from the home region see higher latency.
Consistency and performance
Folders provide close-to-open consistency: when one VM closes a file and another VM subsequently opens it, the second VM sees the data the first one wrote. Two VMs holding the same file open concurrently do not see each other’s writes until close/open. Folders are slower than local disk, especially for metadata-heavy work (git operations,npm install, compiling large trees). Use local disk for working
sets and folders for sharing and persistence.
Writes are uploaded to storage in the background. Destroying a VM within a few
seconds of writing can lose the last writes, and other VMs may need a moment
after a file is closed before they see it.
Quickstart
Create a folder and mount it on a VM:/data is missing right after
boot, cloud-init is still installing the mount — give it a minute):
machine0 folders get code.
Prove it by mounting the folder on a third VM:
Rules and limits
- A folder can only be removed when no VM mounts it — destroy (or
suspend-destroy) the VMs first.
folders rmtells you which VMs are in the way. - Mounts are set at VM creation (
--mount, repeatable). Attaching a folder to an already-running VM is not supported in the alpha. - Folder names: lowercase letters, numbers, and hyphens, max 31 characters.
Mount paths: absolute paths like
/data(letters, numbers,/,_,-); system directories (/etc,/usr,/var, …) are not allowed. - Suspending a VM keeps its mounts: they come back automatically on resume.
- VM images and snapshots taken from a VM with mounted folders can carry the
folder’s access credentials on disk.
folders rmrevokes those credentials everywhere, permanently. - NixOS images do not support folder mounts (mounts are installed via cloud-init).