Currently, my main server in my homelab is a PC running Ubuntu 22.04LTS, along with many Docker containers. I want to transition over to using VMs for my server for increased flexibility. I also want to upgrade the RAM from 16GB to 32GB.
The Plan
I find myself not using the GUI for all that much in Ubuntu, and I want to move my docker containers to a more lightweight OS. I figured using Ubuntu Server 24.04 LTS would work because I am familiar with regular Ubuntu. For a desktop environment, I want to have both a Windows and a Linux VM. I decided to go with Windows 11, and I want to try Fedora 40, because I’d like to get experience with a distro that isn’t Debian-based. I want these desktop VMs to be remotely accessible, so that I can move development off of my laptop and onto somewhere I can access without needing it. I also want to move back to using a reverse proxy for most services - mostly for authentication integration with services. Right now, I use Authentik to authenticate access to my services through Cloudflare tunnels, but then I also have to log in to the service itself. I want to keep the benefits of having the tunnels while also being able to use authentication.
I want to build documentation habits, to make for easier maintenance and sharing of process. I neglected to do so when I started and it has definitely caused headaches.
Because I want to migrate to Ubuntu 24.04 LTS and Fedora 40, I plan on performing this upgrade in early May, when they release.
Main Goals
- Migrate operating systems, to enforce portability and flexibility
- Virtualize the operating system
- Develop good documentation for easier maintenance
- Enforce security configurations
Desired Setup
PC running Proxmox with three VMs:
- Ubuntu Server 24.04 LTS
- Docker host
- Network storage host
- Fedora 40
- Desktop for development
- Windows 11
- Desktop for Windows needs
The Process
- Back up the boot drive, which contains all my server configurations.
- Leave the other storage devices as-is, they only contain data used by my docker containers.
- Upgrade the RAM from 16GB to 32GB
- Install Proxmox onto the boot drive, then create the VMs
- Fresh installs, so things can be done with better practices (no chmod 777)
- Mount the storage drives to the Ubuntu VM
- Set up docker in the Ubuntu VM
- Set up network shares for the storage drives and server configs, and connect the other VMs to them
- Set up reverse proxy, authentication, and Cloudflare tunnels.
Future Lab Experiments
Additionally, I have plans for some experiments I want to run.
- Set up a domain controller VM and connect a Windows VM and a Linux VM to the domain
- I think it would be useful to set up an active directory at home, for both learning and device management.
- Set up a dedicated NAS with multiple drives
- I want to set up reliable storage resistant to hardware failure, using a fitting filesystem and OS
- There are lots of old 256GB SSDs at my workplace which I could use as a test before investing in good drives.