This Vagrant configuration comes with a set of open-source predefined tools for a typical fullstack stack, including Java/Spring on the backend and ECMAScript on the frontend.
To allow incremental validation before upgrading and to avoid tool regressions or unexpected incompatibilities, we use version-pinned packages when possible.
It includes:
-
IDEs: IntelliJ IDEA Community Edition, VSCode, VIM, Geany
-
VCS: Git
-
Integration: Docker CE, K3S (Kubernetes), k9s
-
Testing tools: Bruno
-
Performance tools: JVisualVM, MAT, JMeter
-
Database tools: DBeaver, Pgbadger
-
VM: Guest Additions
-
Install a recent Vagrant distribution.
Warning
|
As of October 2024, Vagrant does not yet support VirtualBox 7.1. Use VB 7 from here. |
-
A Linux / Windows / Mac OS machine with 16 GB+ RAM (for actual fullstack autonomous development, aim for 32 GiB+).
-
A recent (7+) VirtualBox installation with the associated extension pack. Note that you don’t have to install VirtualBox guest additions into the VM, as they are already included in the Vagrant image.
-
A USB 3.2 (5 in Gen 1 to 20 Gbps in Gen 2x2) port if you plan to run the VM on an USB NVMe disk (SATA III speed is 6 Gbps in comparison).
Tip
|
The Oracle Extension Pack is not required to build or run this VM unless you plan to encrypt the virtual disks. |
Tip
|
Prefer lightweight hosts and stop as many host programs as possible to free memory for your VM. I recommend using an XFCE-based Debian host. |
Tip
|
For corporate development, especially if the VM is not stored on an encrypted disk (such as a full disk encryption (FDE) disk), we strongly recommend encrypting the virtual disks. |
-
Search for
[CUSTOM]
comments; they indicate places to customize or extend this VM. -
This image is primarily preset for a French-based locale, which you can change in the Vagrant file.
-
In VB VM settings, we advise these changes (cannot be set by Vagrant):
-
General / Basic: Set Base memory as high as you can. I set 26 GiB for a 32 GiB machine.
-
General / Basic: Set as many VCPUs as possible. It is restricted by the number of physical cores, not threads, so for instance, on my quad-core / 8 CPU machine, I set 4.
-
General / Advanced: Enable 'Drag and Drop'.
-
General / Disk Encryption: Enable for corporate development or if the VM is not already on an encrypted filesystem. Requires Oracle Extension Pack.
-
Storage: Use 'virtio-SCSI' for the SATA controller (faster than AHCI) and enable 'Use Host I/O Cache'. Enable 'Solid-state drive' on the virtual disk if it is hosted on a physical SSD.
-
Tip
|
Do not enable System / 'Nested Vt-x/AMD-V' unless you plan to run a virtual machine inside your VM. |
-
Change the
vagrant
password. -
Customize and launch the
/usr/local/bin/post-install-as-user.sh
script as thevagrant
user.
-
Connect with
vagrant
/vagrant
(change the password).Vagrant
is a sudoer. -
Prefer shutting down from the VM. Shutting down directly from the VirtualBox menu is like a power failure and can corrupt the filesystem.
-
A shared folder is created by default (
/var/tmp
on the host,/share
in the VM). Change this if your host is not a Linux distribution.