[Tutorial] DietPi on Vagrant

Vagrant is a tool for building and managing virtual machines. Specifically, it is for creating easily reproducible development environments. Since I do a lot of development work on DietPi, I thought that this would be a perfect tool to use! For anyone else who wants to develop on DietPi, or just easily create a VM with it, I documented my workarounds. Note that the box I created only works on VirtualBox, since it is the only VM software I have, and this tutorial should work on Linux or macOS. This guide also assumes that you already have Vagrant installed.

First, you should create a directory to work in:

mkdir dietpi-vagrant
cd dietpi-vagrant

After that, you should download the DietPi Vagrant box:

vagrant init ravenclaw900/dietpi

This box contains a pre-installed version of DietPi 7.2 (current version as of time of writing). This version contains nothing but what comes pre-installed with DietPi, namely Dropbear and DietPi-RAMLog.
Vagrant expects a vagrant user to use for SSH, but since DietPi only has the dietpi user, we’ll have to tell Vagrant to use that. In the newly created Vagrantfile, insert, somewhere between Vagrant.configure(“2”) do |config| and end:

  config.ssh.username = "dietpi"

Then, it’s just a matter of running:

vagrant up

You’ll probably get a few errors like Connection reset. and Remote connection disconnect. while the machine boots up and runs the timesync, those are okay to ignore.

You now have an easily replacable and managable DietPi virtual machine. To connect to it, just run:

vagrant ssh

EDIT: Updated image to fix time sync running

Where is the Vagrantfile, etc for Dietpi maintained ?

I guess ravenclaw900 is doing it by its own https://app.vagrantup.com/ravenclaw900/boxes/dietpi

The Vagrantfile is created with the vagrant init ravenclaw900/dietpi command. You then have to add to it manually, to get it to work, however.