As part of my homelab infrastructure built on Proxmox VE, I’ve deployed multiple virtual machines (VMs) for services like Nextcloud, Docker, and monitoring stacks. One of the most essential and versatile operating systems I use is Ubuntu Server.
Here’s my full experience installing and configuring Ubuntu Server 22.04 LTS, including ISO preparation, VM creation, network setup, and post-install hardening.
Why Ubuntu Server?
Ubuntu Server is my go-to choice for several reasons:
• Stable and supported (LTS versions get 5+ years of updates)
• Large community and extensive documentation
• Excellent for headless environments (CLI-first)
• Works great with tools like Docker, Ansible, Kubernetes
• Lightweight, fast, and secure out of the box
1. Preparing the ISO Image
I downloaded the official Ubuntu Server ISO from:
https://ubuntu.com/download/server
I used the Live Server ISO, which includes the Subiquity installer and works well for both bare metal and virtual machines.
In Proxmox VE:
• I uploaded the ISO to local storage (in the “ISO Images” tab)
• Alternatively, I used scp to upload it directly:
scp ubuntu-22.04-live-server-amd64.iso root@your-proxmox-ip:/var/lib/vz/template/iso/
2. Creating the VM in Proxmox
From the Proxmox web UI:
1. Click “Create VM”
2. General:
• Name: ubuntu-server
3. OS:
• Use the uploaded ISO
• Type: Linux
• Version: 5.x/6.x – Ubuntu
4. System:
• BIOS: Default (or UEFI if needed)
• SCSI Controller: VirtIO SCSI
5. Hard Disk:
• Storage: local-lvm or local-zfs
• Format: QCOW2 or RAW
• Size: 20–40 GB (or more depending on role)
6. CPU:
• Cores: 2–4 (based on usage)
7. Memory:
• RAM: 2048 MB or higher
8. Network:
• Bridge: vmbr0
• Model: VirtIO (Intel E1000 for legacy support)
Click Finish, then Start the VM.
3. Installing Ubuntu Server
Open the Console tab (NoVNC) and walk through the Subiquity installer:
Key Installation Steps:
• Language: English
• Keyboard: auto-detected or choose manually
• Network: usually auto-configured via DHCP
• Hostname: e.g., ubuntu-homelab
• User Setup: set up an admin user and password
• SSH Setup: enable OpenSSH if you want remote access
• Storage: choose “Use Entire Disk” unless you need LVM/ZFS
• Snap selection: skip or install packages like Docker, MicroK8s
After installation, reboot the VM.
4. Post-Install Configuration
After reboot, I accessed the VM via SSH or Proxmox console and performed:
a. Update System
sudo apt update && sudo apt upgrade -y
b. Install Common Tools
sudo apt install curl htop net-tools unzip vim -y
c. Static IP (optional)
Edit Netplan:
sudo nano /etc/netplan/00-installer-config.yaml
Example static config:
network:
version: 2
ethernets:
ens18:
dhcp4: no
addresses: [192.168.1.50/24]
gateway4: 192.168.1.1
nameservers:
addresses: [1.1.1.1, 8.8.8.8]
Apply with:
sudo netplan apply
5. Install QEMU Guest Agent (Recommended in Proxmox)
sudo apt install qemu-guest-agent -y
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent
sudo apt install qemu-guest-agent -y
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent
Then in Proxmox VM → Options → Enable QEMU Guest Agent.
6. Basic Hardening (Optional but Recommended)
• Disable root login via SSH:
sudo nano /etc/ssh/sshd_config
PermitRootLogin no
• Enable UFW firewall:
sudo ufw allow OpenSSH
sudo ufw enable
• Create regular backups or Proxmox snapshots
7. Using Ubuntu Server in Homelab
I use Ubuntu Server VMs for:
• Running Docker containers
• Hosting Nextcloud, GitLab, and WordPress
• Monitoring with Prometheus and Grafana
• Lightweight DNS/DHCP or WireGuard VPN
• CI/CD pipelines and infrastructure testing
Conclusion
Installing Ubuntu Server on Proxmox VE is fast, reliable, and forms the backbone of many homelab setups. With a clean CLI interface, excellent package ecosystem, and long-term support, it’s my top choice for hosting anything from personal cloud tools to enterprise simulation stacks.
With a few initial setup steps and basic configuration, your Ubuntu Server VM can be secure, optimized, and production-ready—even in a homelab.