Setting up a low-cost VPS in 2026 is straightforward if you know the right commands. This guide walks you from provider selection to running a live web application — no fluff, just the terminal commands and decisions that matter.
Step 1: Choose the Right Plan for Your Workload
For a first VPS running a web app or WordPress site, target these minimums:
- 1 vCPU, 1 GB RAM, 20 GB NVMe — sufficient for a personal site, API endpoint, or dev environment. Expect $4–$7/month.
- 2 vCPU, 2 GB RAM, 40 GB NVMe — needed for WooCommerce, Django, or Node.js apps with a database. Expect $10–$15/month.
- 2–4 vCPU, 4 GB RAM, 60+ GB NVMe — needed for multi-site setups, databases, or apps serving 10,000+ daily visitors. Expect $15–$25/month.
Start lean and scale up. Most budget providers let you resize in under 5 minutes. For a side-by-side comparison of real specs at each tier, check our budget VPS comparison table.
Step 2: Provision and Connect via SSH
After purchasing, your provider will send the root password and IP address. Connect immediately:
ssh root@<YOUR_SERVER_IP>
First thing — update everything and create a non-root user:
apt update && apt upgrade -y
adduser deploy
usermod -aG sudo deploy
su - deploy
mkdir ~/.ssh && chmod 700 ~/.ssh
echo "<YOUR_PUBLIC_KEY>" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Now disable root SSH login to block brute-force attacks:
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
Step 3: Secure the Server (10 Minutes, Non-Negotiable)
Run these immediately after first login:
sudo ufw allow OpenSSH
sudo ufw enable
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
Also configure automatic security updates — this catches kernel patches without manual intervention:
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
These five lines block roughly 99% of automated attacks on a fresh VPS.
Step 4: Install Your Web Stack With One Liner
For a PHP/WordPress stack (Nginx + PHP 8.3 + MariaDB):
sudo apt install nginx mariadb-server php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-opcache -y
For a Node.js app (Express, Next.js, etc.):
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -
sudo apt install nodejs nginx -y
npm install pm2 -g
For a Python/Django stack:
sudo apt install python3-pip python3-venv nginx mariadb-server -y
pip3 install gunicorn django
Step 5: Deploy Your Application and Enable HTTPS
Configure your Nginx site block to proxy to your app or serve PHP files. Then enable HTTPS with Let’s Encrypt (free):
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com
Certbot auto-configures SSL and sets up 90-day renewal. Verify with:
sudo certbot renew --dry-run
That’s it. From an empty server to a live, HTTPS-secured application in about 20 minutes of terminal work. Your low-cost VPS is now running in production. Use htop and netstat -tulpn to monitor resource usage, and upgrade your plan only when sustained CPU or RAM hits 80%.
For current deals on plans that fit these tiers, compare budget VPS plans on our comparison table.



