Quick Answer: Best Unmanaged VPS in 2026
Vultr ($5/mo) for maximum freedom — custom ISO uploads, 9 US datacenters, full API, and hourly billing. Hetzner ($4.59/mo) if you want 4x the RAM and 10x the bandwidth for less money. Both hand you root access and get out of your way. But first: read the skill assessment below to make sure unmanaged is actually right for you.
Table of Contents
- The 5-Question Skill Test
- The Real Cost of Self-Management
- #1. Vultr — Maximum Freedom, Zero Hand-Holding
- #2. Hetzner — The Math Does Not Make Sense (In Your Favor)
- #3. Kamatera — Build-Your-Own-Server, Down to the Last MB
- #4. DigitalOcean — The Tooling Justifies the Premium
- #5. Linode — The One That Taught Me Linux
- Comparison Table
- First 30 Days Checklist
- When to Upgrade to Managed
- How I Tested
- FAQ (9 Questions)
The 5-Question Skill Test — Be Honest With Yourself
I have watched people sign up for unmanaged VPS, lock themselves out within 48 hours, file a support ticket asking the provider to fix their firewall, and get told “that is outside the scope of unmanaged support.” Then they switch to managed and spend the next year telling people unmanaged VPS is a scam. It is not a scam. They just did not know what they were buying.
Here are five questions. Answer them honestly — not “I could Google that,” but “I know how to do that right now, from memory.”
Question 1: Can you configure a firewall from scratch?
Not “I know firewalls exist.” I mean: your fresh VPS has every port open. Can you write UFW or iptables rules that allow SSH (22), HTTP (80), HTTPS (443), and block everything else? Can you do it without locking yourself out? Because I have locked myself out twice in 7 years, and both times I knew exactly what I had done wrong within 30 seconds. If you do not even know what “locking yourself out” means in this context, that is your answer.
Question 2: Can you set up SSL certificates?
Let’s Encrypt makes this easy, but “easy” still means: install certbot, configure your web server to pass the ACME challenge, set up auto-renewal, and troubleshoot when renewal fails at 2 AM because your Nginx config changed. On managed hosting, your provider handles this. On unmanaged, an expired SSL certificate means your site shows a scary browser warning until you fix it.
Question 3: Can you debug a failed SSH login?
You type ssh root@your-ip and get “Connection refused.” What are the first three things you check? (If your answer is not “is sshd running, is the port correct, is the firewall blocking it” — in approximately that order — you need more practice.) What about “Permission denied (publickey)”? Can you fix that without nuking the server?
Question 4: Can you interpret disk I/O metrics?
Your application is slow. Is it CPU, RAM, disk, or network? Can you run iostat, iotop, or vmstat and actually understand the output? Do you know the difference between high disk utilization and high disk latency? On managed hosting, you open a ticket and say “my site is slow.” On unmanaged, you need to find the bottleneck yourself, because the provider will only tell you the hardware is fine.
Question 5: Can you recover from a botched update?
You ran apt upgrade and now Nginx will not start. Or worse — you upgraded the kernel and the server will not boot. Do you know how to use rescue mode? Can you mount the filesystem from a recovery environment and fix the broken config? Do you have automated backups you can restore from?
Scored 5 out of 5? You are overpaying for managed hosting. The providers below will save you 40-60% and give you complete control.
Scored 3-4? You are ready for unmanaged, but budget extra time during the first month. The first-30-days checklist below will keep you out of trouble.
Scored 0-2? Start with managed VPS. Spin up a $5 unmanaged VPS on the side and practice. Come back when you can answer all five.
The Real Cost of Self-Management — Because Nobody Talks About the Time
Every “best unmanaged VPS” article shows you the price difference and stops there. Hetzner at $4.59/mo versus a managed VPS at $30/mo — you save $25.41! Except nobody mentions the hours.
I have been running my own servers since 2019. Here is what the time cost actually looks like, based on my logs:
| Task | Initial Setup | Monthly Ongoing | When It Breaks |
|---|---|---|---|
| OS hardening & firewall | 45 min | 10 min (review) | 15-60 min |
| Web server config | 30-90 min | 5 min | 15-120 min |
| SSL certificates | 15 min | 0 (auto-renew) | 20-45 min |
| Database setup | 30-60 min | 15 min (backups) | 30-180 min |
| Security updates | 10 min (configure auto) | 20 min | 30-60 min |
| Monitoring setup | 60 min | 10 min | — |
| Backup configuration | 30 min | 10 min (verify) | 30-120 min (restore) |
| Total | 3.5-5.5 hours | 1-2 hours | Varies wildly |
After the first server, setup time drops to 1-2 hours because you will have scripts and Ansible playbooks. After 6 months, monthly maintenance drops below 1 hour because you have seen every common failure mode. The learning curve is front-loaded and then it flattens.
The honest math: if you manage one server and your time is worth $50/hour, the first year of unmanaged hosting “costs” about $75 in time on top of the hosting fee. Managed hosting at $30/mo costs $360/year. The savings are real — but only if you do not spend 10 hours a month reinventing what cPanel does for you automatically. The economics get dramatically better with 3+ servers, because managing five identical servers takes about 20% more time than managing one.
#1. Vultr — Maximum Freedom, Zero Hand-Holding
I keep 14 Vultr servers running across three continents. Not because Vultr is the cheapest — Hetzner beats them on price at every tier — but because no other provider gives me this level of freedom with this little friction.
Custom ISO uploads. That is the feature that matters most for unmanaged VPS and the one that separates Vultr from everyone else on this list. I have booted NixOS, FreeBSD 14, a custom Debian build with my own kernel, and a Windows Server ISO from my MSDN license. Every other provider on this list limits you to their curated OS images. Vultr hands you a virtual CD drive and says “go ahead.”
The API is complete. Not “most things work through the API” — everything works. Server provisioning, DNS records, firewalls, block storage, snapshots, load balancers, VPC networking. My Terraform configs have not broken across three major API versions. I provision staging environments with terraform apply, tear them down with terraform destroy, and the whole cycle takes under 90 seconds. Nine US datacenter locations means I can put servers in New Jersey, Atlanta, Dallas, Chicago, Silicon Valley, Seattle, Los Angeles, Miami, and Honolulu. No other provider covers the US like this.
What I Actually Use Vultr For
Development infrastructure. I spin up 3-5 test servers per week, run benchmarks, test deployment scripts, and destroy them. Hourly billing means a 4-hour test session on a high-CPU instance costs less than a coffee. My production servers that need geographic diversity (CDN origin in New York, API server in Dallas, database in Chicago) all run on Vultr because no other provider covers those three locations.
Where Vultr Falls Short
- 1GB RAM at the $5 tier is tight for anything beyond a lightweight application — Hetzner gives you 4GB for $4.59
- 2TB bandwidth feels limiting next to Hetzner’s 20TB, though I have never actually exceeded it
- Bandwidth overage at $0.01/GB can add up if you are serving media
- Support is infrastructure-only — they will confirm your VM is running but will not help you fix Nginx
#2. Hetzner — The Math Does Not Make Sense (In Your Favor)
Every time I write about Hetzner pricing I feel like I am making a mistake. The CX22 plan: 2 vCPU, 4GB RAM, 40GB NVMe, 20TB bandwidth, $4.59/month. Go look at what Vultr charges for 4GB RAM. It is $24/month. DigitalOcean? $24/month. Linode? $24/month. Hetzner charges $4.59. I have triple-checked these numbers and they are correct.
The performance backs it up. AMD EPYC processors score 4,300 on our CPU benchmark — highest on this list. 52,000 disk IOPS. 960 Mbps network. The hcloud CLI is first-party, well-documented, and has never surprised me with breaking changes. Their Terraform provider is officially maintained (unlike Vultr’s community provider that occasionally lags). Cloud-init support means I can pass a full server provisioning script at creation time and have a hardened, configured server ready in under 60 seconds.
Hetzner vs. Everyone Else: Same-Tier Pricing
| Spec | Hetzner | Vultr | DigitalOcean | Linode |
|---|---|---|---|---|
| 2 vCPU / 4GB RAM | $4.59 | $24.00 | $24.00 | $24.00 |
| 4 vCPU / 8GB RAM | $8.49 | $48.00 | $48.00 | $48.00 |
| 8 vCPU / 16GB RAM | $15.49 | $96.00 | $96.00 | $96.00 |
That 4 vCPU / 8GB tier at $8.49 is not a promotional price. That is regular pricing. I have been paying it for 18 months.
The Geography Problem
Two US datacenters. Ashburn, Virginia and Hillsboro, Oregon. If your users are on the coasts, the latency is fine — sub-20ms to New York, sub-15ms to Portland. If your users are in Dallas, Atlanta, or Chicago, you are looking at 30-50ms minimum. For APIs, that is acceptable. For game servers or real-time applications, it is a dealbreaker. I run Hetzner for backend services and Vultr for anything latency-sensitive in the middle of the country.
Where Hetzner Falls Short
- No custom ISO uploads — you are limited to their OS image library
- Only 2 US locations means limited geographic coverage
- Additional IPv4 addresses require written justification (and they actually read it)
- Email-only support — no live chat, no phone
- EU company with GDPR-oriented data handling — an advantage for some, paperwork for others
Full analysis: Hetzner review with benchmarks
#3. Kamatera — Build-Your-Own-Server, Down to the Last MB
I had a Redis caching layer that needed 1 vCPU and 32GB RAM. Every other provider wanted me to buy an 8-core plan to get that much memory. Kamatera let me configure exactly 1 vCPU, 32GB RAM, and 20GB SSD. The monthly cost was less than half of what a preset plan with similar RAM would have cost elsewhere.
That is the entire pitch. Kamatera lets you configure CPU (1-72 cores), RAM (256MB-512GB), and storage (20GB-4TB) independently. You are not buying a plan — you are building a server spec. For workloads with unusual resource ratios, this eliminates the “I need 16GB RAM but I am paying for 8 CPU cores I will never use” problem.
What the $100 Free Trial Actually Buys You
Kamatera gives new accounts $100 in credit for 30 days. That is enough to run a 4-vCPU, 8GB RAM server for the full trial, or several smaller configurations simultaneously. I used it to benchmark three different configs for a PostgreSQL workload before committing to a plan. Unlike DigitalOcean’s $200 credit (which requires a credit card and has restrictions), Kamatera’s trial is straightforward. Test your exact workload at your exact specs. Then decide.
Kamatera’s Practical Limits
The flexibility comes with tradeoffs that matter for self-managers:
- No custom ISO — you choose from their image library, which is decent but not as extensive as Vultr’s
- Provisioning takes 3-4 minutes versus 15 seconds at Hetzner — annoying for CI/CD automation
- The API exists and works, but documentation is sparse compared to DigitalOcean or Hetzner
- Community is small — when you hit a Kamatera-specific issue, Stack Overflow will not save you
- Custom pricing makes it harder to compare against fixed-tier providers
#4. DigitalOcean — The Tooling Justifies the Premium
DigitalOcean is the most expensive entry point on this list ($6/mo for 1GB RAM) and I still recommend it for a specific type of self-manager: the person who runs infrastructure as code across multiple services and values API quality above everything else.
A Day in the DigitalOcean Ecosystem
Here is what my Monday morning looks like on DigitalOcean infrastructure. GitHub Actions triggers a deployment. The Terraform provider creates a new Droplet from a snapshot, configures the VPC, attaches it to the load balancer, updates the managed PostgreSQL database firewall rules, invalidates the CDN cache on Spaces, and runs integration tests. If tests pass, traffic shifts to the new Droplet. If tests fail, everything rolls back. Every step is API-driven. The Terraform provider has not broken during an API update in the two years I have used it.
That is the value proposition. Not the $6/mo server — the ecosystem. Managed databases, object storage (Spaces), CDN, managed Kubernetes, container registry, VPC, load balancers, DNS, monitoring. All within the same platform, all API-controllable, all with the same authentication. You can build complex multi-tier infrastructure without stitching together services from five different providers with five different billing accounts and five different APIs.
Why It Is Number Four, Not Number One
- You run 3+ interconnected services
- You manage infrastructure with Terraform
- You need managed databases alongside VPS
- Team members need API access
- You value documentation quality
- You need one server for one application
- You deploy manually via SSH
- Budget is your primary concern
- You need custom ISO support
- CPU performance is critical (4,000 score is lowest)
Full analysis: DigitalOcean review with benchmarks
#5. Linode — The One That Taught Me Linux
I am going to make a confession: Linode is the reason I can answer all five of those questions at the top of this page. In 2019, I followed a Linode guide to set up my first LEMP stack on a Nanode. I broke that server three times in the first week. I fixed it three times using Linode guides. By the end of the month, I understood Nginx, MySQL, and firewall configuration well enough to stop following guides. That documentation library is still the best “learn to manage your own server” resource on the internet.
The Nanode at $5/month gives you 1 vCPU, 1GB RAM, 25GB SSD, and 1TB bandwidth. Performance is the lowest on this list (3,900 CPU score, 48K IOPS, 940 Mbps) but still perfectly adequate for lightweight applications. StackScripts let you automate provisioning with shell scripts — less sophisticated than Terraform, but the barrier to entry is writing a bash script, not learning HCL. For someone making the transition from managed to unmanaged, that simplicity matters.
The Akamai Question
Akamai acquired Linode in 2022. Since then: the dashboard has been reskinned, some pricing has shifted, and the brand is gradually being absorbed into “Akamai Connected Cloud.” The servers still work the same way. The API still works. The guides are still being updated. But I cannot tell you what Linode looks like in two years. If long-term stability of your provider’s identity matters to you, that is a real consideration. If you just need a reliable $5 VPS with excellent documentation, Linode still delivers that today.
Why Linode Is Still on This List
- Documentation library that genuinely teaches you to manage servers, not just copy commands
- StackScripts for simple automation without learning Terraform
- Akamai DDoS protection on every instance — included, not an add-on
- 5 US datacenter locations covering both coasts and central
- 22 years of uptime history — the longest track record here
Where Linode Falls Short
- 3,900 CPU score is the lowest on this list — 10% behind Hetzner
- No custom ISO upload
- 1TB bandwidth on the $5 plan is the lowest on this list
- Akamai integration is ongoing and the direction is unclear
- 1GB RAM at $5/mo is identical to Vultr but with lower performance
Full Comparison: All 5 Unmanaged VPS Providers
| Provider | Price/mo | vCPU | RAM | Storage | Bandwidth | CPU Score | IOPS | Network | Custom ISO | US DCs |
|---|---|---|---|---|---|---|---|---|---|---|
| Vultr | $5.00 | 1 | 1 GB | 25 GB | 2 TB | 4,100 | 50,000 | 950 Mbps | ✓ | 9 |
| Hetzner | $4.59 | 2 | 4 GB | 40 GB | 20 TB | 4,300 | 52,000 | 960 Mbps | ✗ | 2 |
| Kamatera | $4.00 | 1 | 1 GB | 20 GB | 5 TB | 4,250 | 45,000 | 920 Mbps | ✗ | 4 |
| DigitalOcean | $6.00 | 1 | 1 GB | 25 GB | 1 TB | 4,000 | 55,000 | 980 Mbps | ✗ | 8 |
| Linode | $5.00 | 1 | 1 GB | 25 GB | 1 TB | 3,900 | 48,000 | 940 Mbps | ✗ | 5 |
Hetzner’s specs at the $4.59 price point are not a typo. They are giving you a $24 server at a $5 price. The tradeoff is 2 US locations versus Vultr’s 9. Everything else on this table is close enough that the decision should come down to what you actually need: geography (Vultr), value (Hetzner), custom configs (Kamatera), tooling (DigitalOcean), or documentation (Linode).
First 30 Days Checklist: What to Do After You Sign Up
This is the checklist I wish someone had given me in 2019. It is ordered by priority — do the security items first, because your server is exposed to the internet the moment it boots.
Day 1: Security Foundation (60-90 minutes)
- Create a non-root user with sudo access. Never run services as root.
adduser deploy && usermod -aG sudo deploy - Set up SSH key authentication and disable password login. Edit
/etc/ssh/sshd_config: setPasswordAuthentication noandPermitRootLogin no. - Configure the firewall.
ufw default deny incoming && ufw allow 22 && ufw allow 80 && ufw allow 443 && ufw enable. Test that you can still SSH in before closing your current session. - Install fail2ban. Default config blocks IPs after 5 failed SSH attempts. You will see hundreds of blocked IPs within 24 hours.
- Enable automatic security updates.
apt install unattended-upgrades && dpkg-reconfigure -plow unattended-upgrades
Day 2-3: Application Stack (2-4 hours)
- Install your web server (Nginx or Apache) and verify it serves the default page.
- Set up SSL with Let’s Encrypt.
certbot --nginx -d yourdomain.com. Verify auto-renewal:certbot renew --dry-run - Install your application runtime (Node.js, Python, PHP, or Docker).
- Deploy your application and verify it works over HTTPS.
- Set up your database if needed. Configure it to listen only on localhost, not 0.0.0.0.
Week 1: Reliability (1-2 hours)
- Configure automated backups. Enable provider-level snapshots (Vultr: $1/mo, Hetzner: 20% of server cost). Also set up application-level backups (
pg_dumpfor PostgreSQL,mysqldumpfor MySQL) to a separate location. - Test your backup. Restore from a snapshot to a new server. Verify your application works. Delete the test server. Do not skip this step.
- Set up basic monitoring. At minimum: disk space alerts (80% threshold), memory usage, and uptime checks. Free tools: Uptime Kuma (self-hosted), BetterStack (external).
Week 2-4: Optimization (ongoing)
- Review logs weekly.
journalctl -p err --since "1 week ago"shows errors you might have missed. - Automate your setup. Write a bash script or Ansible playbook that recreates your server from scratch. You will need it eventually.
- Learn your baseline metrics. What is normal CPU usage? Normal disk I/O? You cannot diagnose “slow” if you do not know what “normal” looks like. See our benchmarks page for reference numbers.
- Practice recovery. Intentionally break something non-critical and fix it. The first time you deal with a real outage should not be the first time you deal with any outage.
When to Upgrade to Managed: Five Honest Signals
I have run unmanaged servers for 7 years. I think it is the right choice for most technical users. But I have also seen people who should have switched to managed a year ago, stubbornly fighting their infrastructure instead of building their product. Here are the five signals I watch for:
- You are spending more than 5 hours per month on server maintenance. After the first 90 days, monthly maintenance should be under 2 hours. If you are consistently above 5 hours, something is wrong — either your setup is fragile, your skills have a gap, or your application has outgrown single-server management.
- You have had multiple security incidents you could not explain. One incident is a learning experience. Three incidents in a year means your security model has holes you do not understand. Managed hosting with professional security monitoring is cheaper than a data breach.
- Your hourly revenue exceeds your monthly managed hosting cost. If your application makes $50/hour and an outage takes 3 hours to fix, that is $150 in lost revenue. A managed VPS at $30/month with guaranteed 15-minute response times starts looking very reasonable.
- You are hiring non-technical team members who need to deploy. Teaching someone to use a cPanel deployment workflow takes 30 minutes. Teaching them to deploy via SSH, restart services, and troubleshoot takes weeks. Managed hosting with a control panel removes that bottleneck.
- You dread server maintenance instead of enjoying it. This is the most honest signal. If updating your server feels like a chore you keep postponing, your security posture is already degrading. Switch to managed before a postponed update becomes a vulnerability.
The transition path: providers like Cloudways offer managed VPS built on top of the same infrastructure (Vultr, DigitalOcean, Linode). You can migrate without changing your underlying provider.
How I Tested These Providers
I approached each provider the way I approach any new infrastructure — like a sysadmin who has been burned before and wants to know exactly what breaks before it breaks in production.
- The SSH-to-hardened-server test: How long from first SSH login to a hardened server with firewall, fail2ban, non-root user, and key-only authentication? This is the baseline “can I trust this provider for production” test. Every provider passed, but provisioning speed varied from 15 seconds (Hetzner) to 4 minutes (Kamatera).
- API completeness: I ran
terraform applyon each provider to provision a complete environment: server, firewall, DNS, and block storage. Vultr and Hetzner completed without workarounds. DigitalOcean completed with the best Terraform provider I have used. Kamatera required manual steps for some resources. Linode’s Terraform provider works but has fewer managed resources. - Custom ISO test: I uploaded a custom Debian ISO and attempted to boot. Only Vultr passed. This is the ultimate “do you trust me with root access?” test.
- Raw performance: CPU single-thread score, disk IOPS, and network throughput using our standard benchmark suite. No managed overhead consuming resources — these numbers represent what your workload actually gets.
- Recovery test: I intentionally broke the Nginx config on each provider and tested the recovery workflow: web console access, rescue mode, and snapshot restore. Hetzner’s rescue mode was the fastest to access. Vultr’s web console was the most responsive.
- 48-hour stability test: I ran a sustained CPU and I/O workload for 48 hours and measured performance consistency. All five providers maintained stable performance with less than 5% variance — the benefit of KVM isolation.
Frequently Asked Questions
What Linux skills do I actually need for an unmanaged VPS?
At minimum: SSH key authentication, basic firewall configuration (UFW or iptables), installing packages from the command line, reading log files to diagnose issues, and performing OS updates. You should also understand file permissions, how to configure a web server (Nginx or Apache), and how to set up SSL certificates with Let’s Encrypt. If you can do all of that without opening a tutorial for each step, you are ready. If you need tutorials for more than two of those tasks, start with managed hosting and practice on a $5 test VPS on the side.
How much time does managing an unmanaged VPS actually take?
Initial setup takes 2-6 hours depending on your stack complexity: OS hardening, firewall, web server, database, application deployment, SSL, backups, and monitoring. After that, ongoing maintenance averages 2-4 hours per month for security updates, log review, backup verification, and occasional troubleshooting. Emergency incidents (failed updates, disk full, unexpected traffic spikes) can add 1-4 hours each but happen roughly once every 2-3 months for a well-configured server. The time cost drops significantly after the first 90 days as you build automation and muscle memory.
What is the real cost difference between managed and unmanaged VPS?
For equivalent specs (2 vCPU, 4GB RAM), managed VPS typically costs $25-60/month while unmanaged costs $4.59-24/month. That is a 40-80% savings on hosting costs. However, you need to factor in your time. If you value your time at $50/hour and spend 3 hours per month on server management, that adds $150/month in opportunity cost. For a single server, managed hosting is often cheaper when you account for time. The economics flip with multiple servers: managing 5 identical unmanaged servers takes only slightly more time than managing 1, but the hosting savings multiply by 5.
Is unmanaged VPS secure enough for production?
An unmanaged VPS can be more secure than managed hosting if you know what you are doing, because you control every layer and there is no bloated control panel expanding the attack surface. The essential security checklist: disable root password login, use SSH key authentication only, configure UFW or iptables to allow only necessary ports, enable automatic security updates (unattended-upgrades on Ubuntu/Debian), install fail2ban, set up a non-root user with sudo access, and configure log monitoring. These steps take about 20 minutes and cover 95% of common attack vectors. For additional hardening steps, see our VPS security hardening guide.
Should I use Docker on an unmanaged VPS?
Docker and unmanaged VPS are an excellent combination that simplifies deployment significantly. Docker handles application packaging, dependency isolation, and repeatable builds. You still need Linux skills for the host OS: initial server hardening, Docker installation, firewall configuration, and disk management. But Docker reduces ongoing maintenance because application updates become container replacements rather than in-place upgrades. All five providers on this list fully support Docker. If you know Docker but are weak on general Linux administration, an unmanaged VPS with Docker Compose is a reasonable middle ground.
What happens if I break my unmanaged VPS?
If you misconfigure your firewall and lock yourself out, you use the provider’s web console or VNC access to fix it. If you corrupt the OS with a bad update, you restore from a snapshot or rebuild from scratch. If your disk fills up and services crash, you SSH in (if you can) or use console access to clear space. The provider will not fix any of this for you — their support covers hardware failures, network issues, and hypervisor problems only. This is why automated backups and snapshots are non-negotiable on unmanaged VPS. Vultr, Hetzner, and DigitalOcean all offer automated snapshots. Enable them on day one, before you need them.
When should I switch from unmanaged to managed VPS?
Switch to managed when the time cost exceeds the money saved. Specific signals: you are spending more than 5 hours per month on server maintenance, you have had multiple security incidents you struggled to resolve, your application has grown complex enough that server management distracts from development, or you are hiring non-technical team members who need to deploy without SSH access. Also consider managed if your business generates enough revenue that an hour of downtime costs more than a month of managed hosting. Providers like Cloudways can deploy a managed server on Vultr or DigitalOcean infrastructure, making the transition straightforward.
Which OS should I choose for an unmanaged VPS?
Ubuntu 24.04 LTS for most users — it has the largest community, the most tutorials, and the widest package availability. Debian 12 if you want something lighter and more conservative with updates. AlmaLinux 9 or Rocky Linux 9 if you need RHEL compatibility for enterprise software. FreeBSD for advanced networking, ZFS, or jails. Avoid CentOS (end of life), Fedora (release cycle too fast for servers), and any non-LTS Ubuntu release. Whichever OS you choose, stick with LTS releases for production servers.
Can I run Windows on an unmanaged VPS?
Only on providers that support custom ISO uploads or offer Windows images. Among the five providers here, Vultr offers both Windows Server images and custom ISO uploads, so you can bring your own license. Kamatera offers Windows Server images with licensing included at an additional cost. Hetzner, DigitalOcean, and Linode are Linux-only for standard plans. Note that Windows licensing adds $10-20/month to the base VPS cost, which significantly erodes the cost advantage of unmanaged hosting.
My Recommendation
If you passed the 5-question test: Vultr ($5/mo) for maximum freedom with custom ISO support and 9 US locations, or Hetzner ($4.59/mo) for absurd value with 4GB RAM and 20TB bandwidth. If you scored 3-4, start with Linode — their documentation will fill your knowledge gaps. Use our VPS calculator to size your server, and read the security hardening guide before you deploy anything to production.