A $5/month VPS is the cheapest way to get a real Linux server that stays on 24/7. Unlike a local VM, you deal with real networking, real SSH keys, and a real public IP address. This guide walks through the practical commands, tools, and projects that turn a cheap VPS into a genuine Linux lab.
Getting Started: First 10 Minutes on a New VPS
After you sign up with any budget VPS provider, you will receive an IP address and root password. The first thing to do is secure the server:
ssh root@your-server-ip
# Update everything
apt update && apt upgrade -y
# Create a regular user
adduser labuser
usermod -aG sudo labuser
# Copy your SSH key
ssh-copy-id labuser@your-server-ip
# Disable root password login
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
sudo systemctl restart sshd
These commands cover user management, SSH hardening, and package management — three core Linux admin skills you will use every day.
Project 1: Set Up a Static File Server
Install Nginx and configure it to serve a directory of files over HTTP. This teaches you virtual host configuration, directory permissions, and MIME types:
sudo apt install nginx -y
sudo mkdir -p /var/www/files
sudo chown -R $USER:$USER /var/www/files
# Create a test file
echo "Hello from my VPS" > /var/www/files/index.html
# Configure Nginx site
sudo nano /etc/nginx/sites-available/files
Enable the site, check the config with nginx -t, and reload. You now have a live web server on a $5/mo VPS.
Project 2: Run a Personal Git Server
Install Git and set up a bare repository that you can push to from your local machine. This teaches you Git server administration, SSH key-based authentication, and post-receive hooks for auto-deployment:
sudo apt install git -y
sudo mkdir -p /var/git
sudo chown labuser:labuser /var/git
cd /var/git
git init --bare myproject.git
# On your local machine
git remote add vps ssh://labuser@your-server-ip/var/git/myproject.git
Project 3: Monitor System Resources
Learn to read and interpret Linux system metrics. These commands are the same ones used to diagnose production issues:
htop— real-time CPU and memory per processdf -h— disk usage in human-readable formatfree -m— memory usage in megabytesnetstat -tulpn— listening ports and servicesjournalctl -xe— system logs for troubleshootingiotop— disk I/O per process
Install Netdata for a browser-based dashboard that visualizes all of these metrics automatically.
Project 4: Automate Backups with a Bash Script
Write a simple bash script that backs up your important directories to a remote location using rsync. Then schedule it with cron. This project teaches shell scripting, cron scheduling, and remote synchronization — all essential Linux admin skills.
#!/bin/bash
BACKUP_DIR="/home/labuser/backups"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/etc_$TIMESTAMP.tar.gz /etc
# Keep only last 7 backups
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
Add 0 3 * * * /home/labuser/backup.sh to your crontab and it runs daily at 3 AM.
Choosing the Right VPS for Your Linux Lab
For a learning lab, the most important factors are KVM virtualization (for kernel module experimentation), a fresh Ubuntu LTS install, and at least 1 GB RAM. Many budget VPS plans under $10/month meet these requirements. You do not need managed support or a control panel — the whole point is to learn the command line.
What to Do Next
Once you are comfortable with the basics, move on to Docker, setting up a CI/CD pipeline, or hosting a small web application. Each project builds on the Linux fundamentals you practiced on your $5 VPS. The server costs less than a month of any cloud certification course and gives you hands-on experience no textbook can match.



