THEO Setup in Vagrant

You may run all the containers in a virtual machine, using Vagrant. This is the recommended way to run the test environment. It will create a private network (subnet The virtual machine itself has the IP address: The docker network has the IP subnet: Make sure those network addresses are not occupied or in conflict with other networks accessible from your machine.



  • Install Vagrant

    Ubuntu / Debian

    sudo apt install vagrant

    On most other Linux distributions, the package is called vagrant.

  • Install VirtualBox (see

    sudo apt install virtualbox
  • Create or check if an ssh key pair is present in ~/.ssh/id_rsa

    mkdir -p ~/.ssh
    ssh-keygen -t rsa -b 4096 -C "opendut-vm" -f ~/.ssh/id_rsa

Setup virtual machine

  • Either via cargo:
    cargo theo vagrant up
  • Login to the virtual machine
    cargo theo vagrant ssh

Warning Within the VM the rust target directory is overridden to /home/vagrant/rust-target to avoid hard linking issues. When running cargo within the VM, output will be placed in this directory!

  • Ensure a distribution of openDuT is present

    • By either creating one yourself (on the host)
      cargo ci distribution
    • Or by copying one to the target directory target/ci/distribution/x86_64-unknown-linux-gnu/
      mkdir -p target/ci/distribution/x86_64-unknown-linux-gnu/
  • Start test environment

    cargo theo testenv start