1
Homestead.yaml. One file declares the provider, the shared folders, the sites, which services run, and optional features.
2
Shared folders. ~/code/project1 on the host is mounted at /home/vagrant/project1 inside the box and kept in sync.
3
Sites. Each map: homestead.test becomes an Nginx server block pointing at a project's public/ directory.
4
The box, Ubuntu 22.04 with PHP 5.6 to 8.3 side by side, MySQL, Postgres, Redis, Memcached, Node and Mailpit.
5
Ports. Host 8000 forwards to 80, 44300 to 443, 33060 to MySQL, 54320 to Postgres; the app inside sees the defaults.
6
Settler. The scripts that build the base box, in a second repository; Homestead is the Vagrant wrapper around it.