Drop any file to identify it
No upload. No signup. No sending your file halfway across the internet.
We tell you what it is, right here in your browser.
Drop it!
Let go to identify this file.
Couldn't identify this file
Need to convert it? fwip it →
Pre-Docker, the standard way to give every developer on a team an identical local environment was a virtual machine. Vagrant (HashiCorp's tool, not Vagrant Cosmonauts) made VMs scriptable: declare what you want in a Vagrantfile, run `vagrant up`, and you get a fully provisioned VM running on VirtualBox, VMware, Parallels, or libvirt. The Vagrantfile is the recipe.
The syntax is Ruby — `Vagrant.configure("2") do |config| ... end` wraps everything. Inside, you set `config.vm.box` (the base image: Ubuntu, CentOS, Alpine), `config.vm.network` (forwarded ports, private IPs), `config.vm.synced_folder` (host-to-VM file sharing), and provisioner blocks (shell scripts, Ansible playbooks, Chef recipes, Puppet manifests). The result is a reproducible dev VM that anyone on the team can `vagrant up` to identical state.
Docker has eaten most of Vagrant's use case for app-level dev environments — containers start in seconds where Vagrant's full VMs take minutes to boot. Vagrant remains useful when you need genuine OS-level isolation (kernel module testing, networking experiments, multi-OS reproducibility), and many infrastructure-as-code tutorials still use it. HashiCorp put Vagrant into maintenance mode in 2024 — bug fixes only, no new features.