Unraid Development Server
Recovered project notes from February 2023. These describe the original experiment, including plans that were still in progress.
Introduction
This project was something I worked on for myself. I run a startup Technology and Software development company based in Florida.
Problem:
As a software developer, I have access to multiple computers, but often find that my development environments do not match up across all of them. This limits my ability to work on specific projects, as I am forced to use whichever computer has the appropriate development environment. This results in a lack of consistency in my workflow and can lead to delays in completing projects.
Solution:
Since I already have a working Unraid server, a viable solution to my problem would be to set up a virtual machine running Ubuntu and configure my development environment on it. Since I have a custom proxynet set up, I should also be able to connect to this environment using SSH. By doing this, I can ensure that my development environment is consistent across all my machines and work on my projects from any device that has SSH access. This solution will provide me with the flexibility to work on any computer I want, while ensuring that my development environment is consistent, and eliminate any delays caused by having to switch between computers.
Process:
Research and plan:
I will start by researching the steps required to set up a virtual machine with Ubuntu on my Unraid server. I will use online tutorials and documentation to guide me through the process, taking note of any additional requirements, such as system specifications, software dependencies, and best practices for configuring a development environment. I will also plan how to configure my development environment on the VM, taking into account my current setup and the software and tools I need for my projects.
Enable AMD Virtualization in BIOS
I restarted my computer and entered the BIOS setup by pressing F2 on my ASUS motherboard, the "Delete" key would've worked too.
Once I was in the BIOS setup, I found the "Advanced" tab and selected it.
Under the Advanced tab, I found an option called "CPU Configuration".
Within the CPU Configuration, I looked for an option called "SVM Mode" and set it to "Enabled" by using the arrow keys on my keyboard and pressing "Enter" to change the setting.
Finally, I saved my changes and exited the BIOS setup. My computer rebooted, and I confirmed that virtualization was now enabled on my AMD Ryzen processor.
Enable VMs in Unraid
First, I logged into the Unraid web interface using my web browser.
Next, I clicked on the "Settings" tab at the top of the screen, followed by "VM Manager" in the left-hand menu.
Under the "VM Manager" settings, I clicked on the "Enable VMs" toggle switch to turn on VM support in Unraid.
Create a new virtual machine:
Using the "Virtual Machine Manager" tab in the Unraid web interface, I created a new virtual machine using Linux Ubuntu.
On the Add VM page, I used the following settings with the appropriate settings, including the Ubuntu OS type, number of virtual CPUs and amount of RAM, virtual hard disk size and location, and network configuration.
- Autostart: Yes
- Name: Ubuntu WDS
- CPU Mode: Host Passthrough
- Logical CPUs cpu 0
- Initial/Max Memory - 1024 MB
- Primary vDisk Size: 100G
Install Ubuntu:
I downloaded the latest version of Ubuntu 20.04. I then uploaded the ISO image to the virtual machine and installed Ubuntu on the virtual hard disk. I followed the prompts to configure the Ubuntu installation, taking note of any settings that will affect my development environment, such as network and security settings.
Configure the development environment:
Once Ubuntu is installed, I configured my development environment on the virtual machine.
I installed SMB, NVM and Node.
This will involve installing other necessary software, such as a web server, database server, and programming language, and setting up any necessary configurations, such as firewall rules and network settings.
Connect to the virtual machine via SSH:
I've been able to connect to the Ubuntu Server using VNC, SSH and SMB
Results:
So far I can access files.
Using VNC connected quickly, but seemed to be slow. Using SSH was much faster.
I did need to manually setup SMB but once that was setup, I could easily connect to the Ubuntu drive and access files.
Lessons learned:
This was my first time setting up a VM. I'm not certain I did it the right way, but I did it. I would recommend reading or watching a video of how other people do this.