Skip to content

bflorat/vm-dev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vm-dev

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

Prerequisites

To build a VirtualBox VM

  • Install a recent Vagrant distribution.

Warning
As of October 2024, Vagrant does not yet support VirtualBox 7.1. Use VB 7 from here.

To run the VM

  • 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.

How to build an image?

  • 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.

Customization by the end user of the image

  • 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 the vagrant user.

Use the VM

  • 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.

Troubleshooting

Tip
Check performance logs in /var/log/atop.

About

Virtual machine for fullstack developement

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages