#Concepts
These pages explain one part of a build at a time. Each covers the concept, its visual-editor controls, and the matching YAML.
- Sources — Every VM needs one source: the disk image it boots from when the build starts. The editor offers three common options; YAML also supports containerdisk.
- Files — files is a named file registry. The virtual floppy, boot-time HTTP directory, and file provisioners reference entries here by name.
- Provisioners — Provisioners are build steps that run inside a VM after it boots. They run top to bottom; if one fails, the build fails.
- Communicators (SSH) — A communicator lets the build reach a running VM during provisioning. It uploads files and runs scripts inside the guest. SSH is the supported communicator.
- Networking — Every module gets an isolated network for its VMs. By default, it has one VPC, one subnet, and internet access. Add more structure only when the module needs it.
- Boot Commands — A boot command types keystrokes into the VM's VNC console. Use it for boot loaders, ISO menus, and setup before SSH is available. Once SSH is up, the communicator takes over.
- Cloud-init — Cloud images use cloud-init for first-boot setup, including users, SSH keys, packages, and commands. The build uses it to add its SSH key, so cloud-image sources must include a cloudinit block.
- Build-only Overrides — Some settings make sense during the build but not in the clones. A build often needs: