Quick Reference Sheet
Before launching database clusters, deploying Docker daemons, or configuring reverse proxy routes, you need a stable host operating system. Ubuntu Server is the industry standard for hosting enterprise software due to its stability, extensive hardware driver support, and massive community ecosystem. This guide walks you through installing Ubuntu Server on bare-metal hardware or inside a virtual machine hypervisor.
1. Downloading the Installer Image
Always download official ISO images directly from Canonical. Using unofficial sources introduces security risks and outdated packages. Obtain the latest Long Term Support (LTS) ISO image (e.g. Ubuntu Server 24.04 LTS or 22.04 LTS):
2. Preparing the Bootable Installation Drive
If installing on a physical computer (bare-metal), flash the downloaded ISO file to a USB flash drive (minimum 8GB capacity) using a flashing tool:
- Rufus (Windows): A lightweight utility to create bootable drives under UEFI or BIOS modes.
Official Rufus Download - BalenaEtcher (Cross-Platform): A simple, visual tool to burn images to SD cards and USB drives.
Official BalenaEtcher Download
Open the flashing utility, select your target USB drive, load the Ubuntu Server ISO, and click Flash/Start.
Note: If deploying inside a Virtual Machine hypervisor (like Proxmox, VMware ESXi, VirtualBox, or Hyper-V), bypass USB flashing. Directly upload the ISO image to the hypervisor storage pool and attach it to the virtual CD/DVD drive.
3. Booting Into the Installation Interface
Insert the bootable USB into the target computer. Turn on the machine and immediately tap the Boot Menu Key to override the default boot drive. Common keys by manufacturer:
- F12: Dell, Lenovo, Gigabyte
- F8: ASUS
- F11: MSI, ASRock
- F9: HP
Select your USB device from the list (choose the UEFI option if supported). Select Try or Install Ubuntu Server from the GRUB bootloader screen.
4. Stepping Through the Installer
The Ubuntu Subiquity installer is keyboard-controlled. Use the Arrow Keys, Spacebar (to select options), and Enter Key (to confirm):
- Language & Keyboard: Select your preferred locale settings.
- Type of Install: Choose standard Ubuntu Server (minimizes default package bloat).
- Network Connections: If connected via Ethernet, the system requests an IP via DHCP. To configure a static IP on initial boot, select your interface, press Enter, edit IPv4, change to manual, and enter your gateway and subnet details.
- Configure Proxy / Archive Mirror: Keep default mirror addresses unless you require localized package cache mirrors.
- Storage Configuration: Select the drive where Ubuntu will be installed. Check Use an entire disk. We recommend keeping Set up this disk as an LVM group checked. LVM (Logical Volume Manager) allows you to expand partitions easily in the future.
Important: Ensure "Minimize/Unmount existing partitions" is checked if you want to wipe a pre-installed OS. This wipes all existing data on the drive.Caution: Permanent Data LossFormatting the disk and writing the partition table is destructive. Ensure you have targeted the correct storage unit (e.g./dev/sdaor virtual disks) to prevent accidental loss of important data on other drives. Double-check your drive labels before choosing "Confirm". - Profile Setup: Create your primary administrative account. Pick a system hostname, administrator username, and a secure password.
- SSH Setup: Check Install OpenSSH Server. This allows you to immediately manage the server remotely using SSH once the installation completes.
5. Post-Install Tasks: Static IP & System Updates
Once the installer displays Installation Complete, select Reboot Now and remove the USB drive.
To access the server remotely, find its IP address by logging in locally and running: ip a. Next, SSH into the machine from your personal computer:
How to Connect from Different Devices
- PowerShell / Command Prompt (Windows/macOS/Linux):
Open your host machine terminal and execute the connection command:ssh administrator_user@192.168.1.200
- Under the Credentials section, enter your administrator Username and Password (or tap Keys to import your generated
id_ed25519private key file). - Save the profile, then double-tap or select the Host to initialize the secure remote terminal connection.
Perform a system package refresh to apply the latest security patches:
sudo apt update && sudo apt upgrade -y
ping -c 3 1.1.1.1. If this works but ping google.com fails, your DNS resolver is not configured. Edit your network configuration to ensure a valid nameserver is declared.
Configuring static network details via Netplan
If you didn't configure a static IP during installation, edit the network configuration file under Netplan. But first, identify your actual active network interface name - this varies by hardware and driver (e.g. enp3s0, eth0, eno1). Run this on your server terminal to find it:
ip route show | grep default
The output will look like: default via 192.168.1.1 dev enp3s0 proto dhcp. The value after dev is your interface name. Use that name in the Netplan config below. Then open the network configuration file:
sudo nano /etc/netplan/50-cloud-init.yaml
Configure it to bind a static address to your interface card (replace enp3s0 with the interface name you found above):
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: no
addresses:
- 192.168.1.200/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8
Save changes, verify the configuration formatting, and apply it:
sudo netplan try sudo netplan apply
Your server will now maintain this static IP address permanently, ensuring stable connections for your reverse proxies, Docker configurations, and dashboard interfaces.
/etc/netplan/50-cloud-init.yaml, revert your changes to dynamic DHCP (dhcp4: true), and run sudo netplan apply to restore DHCP access.
You now have an Ubuntu Server installed, network-configured with a static IP, SSH-hardened, and fully updated. Your old machine is now a working server ready to host anything you throw at it.
What's Next: Give Your Server a Dashboard
A bare Ubuntu Server is powerful but headless - everything is done through the terminal. The logical next step is installing a server management UI that lets you deploy web apps, databases, and services visually, with automatic SSL and reverse proxy built in.
We recommend Coolify - an open-source, self-hosted alternative to Vercel, Heroku, and Railway. With a single install command on your server, you get a full deployment platform: deploy apps from GitHub, spin up databases, manage domains, and monitor services - all from a sleek web dashboard.