Self-Hosted Alternatives to Managed Hosting
Why Replace Managed Hosting?
Managed hosting services like Vercel, Netlify, AWS Amplify, and traditional shared hosting (SiteGround, Bluehost, DigitalOcean App Platform) charge you for something your own server can do for free: serve websites and route traffic.
Cost adds up fast. A single site on shared hosting costs $5-30/month. Vercel Pro is $20/month. AWS App Runner bills per request. Run 5-10 sites and you are spending $50-200/month on hosting alone — more than the cost of a capable mini PC that can host all of them indefinitely.
You lose control. Managed platforms dictate your deployment pipeline, runtime environment, and scaling options. Rate limits, build minute caps, and bandwidth throttling are common on free tiers. Your site depends on their uptime, their pricing decisions, and their continued existence.
Privacy and ownership. Your traffic data, access logs, and deployment history live on someone else’s infrastructure. Self-hosting gives you full control over your data and traffic analytics.
Best Alternatives
Caddy — Best Overall Replacement
Caddy is the closest thing to managed hosting you can run yourself. Point it at a domain name and it handles SSL certificates, HTTP/2, HTTP/3, and static file serving automatically. The Caddyfile is two lines per site. No Nginx config files, no Certbot cron jobs, no SSL renewal scripts.
Caddy serves static sites (Hugo, Astro, Next.js exports) and reverse proxies dynamic apps equally well. If you are moving from Vercel or Netlify and just need to serve a static site with HTTPS, Caddy is the answer.
Read our full guide: How to Self-Host Caddy with Docker
Nginx Proxy Manager — Best for Non-Technical Users
Nginx Proxy Manager provides a web UI for managing proxy hosts and SSL certificates. If you host sites for family members or a small team and want them to manage their own domains without touching config files, NPM is the right tool.
It handles Let’s Encrypt certificates with a checkbox, supports custom Nginx directives for power users, and provides access control lists for restricting access.
Read our full guide: How to Self-Host Nginx Proxy Manager
Traefik — Best for Container-Heavy Setups
If you run many Docker services and want zero-touch routing, Traefik auto-discovers containers via Docker labels and provisions SSL certificates automatically. Adding a new site is a matter of adding labels to your Docker Compose file — no proxy config editing needed.
Read our full guide: How to Self-Host Traefik with Docker
Nginx — Best for Maximum Control
Nginx is what most managed hosting runs behind the scenes. Running it yourself gives you full control over caching, rate limiting, URL rewriting, and request handling. The learning curve is steeper but the flexibility is unmatched.
Read our full guide: How to Self-Host Nginx with Docker
Migration Guide
Migrating from Vercel / Netlify (Static Sites)
- Build your site locally (
npm run build,hugo build, etc.) - Copy the output directory to your server
- Configure Caddy to serve it:
mysite.com {
root * /srv/mysite
file_server
encode gzip
}
- Update your domain’s DNS A record to point to your server’s IP
- Start Caddy — HTTPS is provisioned automatically
Migrating from Shared Hosting (WordPress, PHP)
- Export your WordPress database (
mysqldump) - Copy your WordPress files to your server
- Deploy WordPress via Docker Compose (see our WordPress guide when available)
- Import the database into the Docker MySQL container
- Point your reverse proxy at the WordPress container
- Update DNS records
Migrating from Cloud Platforms (AWS, GCP, Azure)
- Containerize your application with Docker
- Write a
docker-compose.ymlfor your app and its dependencies - Deploy on your server
- Configure your reverse proxy to route traffic to the container
- Update DNS records
Cost Comparison
| Managed Hosting (5 sites) | Self-Hosted | |
|---|---|---|
| Monthly cost | $50-200/month | $5-15/month (VPS) or $0 after hardware (home server) |
| Annual cost | $600-2,400/year | $60-180/year (VPS) or ~$50/year electricity |
| 3-year cost | $1,800-7,200 | $180-540 (VPS) or ~$250 (mini PC + electricity) |
| Sites supported | 5 (with separate plans) | Unlimited (limited by hardware) |
| SSL certificates | Included | Free (Let’s Encrypt, auto-managed) |
| Custom domains | Usually included | Unlimited, you manage DNS |
| Bandwidth | Throttled / metered | Unmetered (most VPS), unlimited (home) |
| Build minutes | Limited on free tiers | Unlimited |
A $100 Intel N100 mini PC running Caddy can host dozens of sites with HTTPS for years. The hardware pays for itself in 1-2 months versus managed hosting.
What You Give Up
- Zero-ops deployment.
git pushto deploy is convenient. Self-hosting requires you to set up a deployment pipeline (or use tools like Dockge or Portainer for one-click redeploys). - Global CDN edge locations. Vercel and Cloudflare Pages serve from hundreds of edge locations worldwide. Your self-hosted server has one location. Mitigate this with Cloudflare’s free CDN proxy.
- Managed scaling. If you go viral, managed platforms auto-scale. Your single server has fixed resources. For most self-hosted sites, this is not a realistic concern.
- Managed SSL. Actually, this is not a loss — Caddy, Traefik, and NPM all handle SSL automatically.
- Uptime guarantees. You are responsible for your own availability. Use Uptime Kuma for monitoring.
FAQ
Can Caddy handle HTTPS automatically like managed hosting does?
Yes — Caddy automatically provisions and renews Let’s Encrypt SSL certificates for every domain you configure. Point your domain’s DNS to your server, add two lines to a Caddyfile, and HTTPS works immediately. No Certbot installation, no cron jobs for renewal, no certificate file management. Caddy’s auto-HTTPS is genuinely comparable to managed hosting’s certificate handling, and it supports wildcard certificates via DNS challenges.
How many websites can a single server host?
A modest VPS ($10/month, 4 GB RAM) or an Intel N100 mini PC can host 20-50 static sites without breaking a sweat. Dynamic sites (WordPress, Ghost) use more resources — budget 512 MB-1 GB per WordPress instance. A $100 N100 mini PC hosts 5-10 WordPress sites, a static site generator portfolio, and a reverse proxy simultaneously. The limit is RAM and CPU, not the reverse proxy — Caddy, Nginx, and Traefik all handle hundreds of virtual hosts on minimal resources.
How do I deploy updates without git push like Vercel/Netlify?
Several approaches: (1) Set up a simple CI/CD pipeline with GitHub Actions that builds your site and rsyncs files to your server on push. (2) Use Coolify — a self-hosted PaaS that connects to Git repositories and deploys on push, similar to Vercel. (3) Use Dockge or Portainer for one-click Docker container redeployments. (4) For static sites, use a simple shell script: ssh server "cd /srv/mysite && git pull && npm run build".
What about DDoS protection and CDN — doesn’t managed hosting handle that?
Put Cloudflare’s free plan in front of your self-hosted server. Cloudflare proxies traffic through their global CDN (300+ locations), caches static assets at edge servers worldwide, and provides DDoS mitigation — all for free. Change your DNS nameservers to Cloudflare, enable the proxy (orange cloud icon), and your self-hosted sites get the same CDN and protection that Vercel and Netlify provide. For most sites, Cloudflare’s free tier is more than sufficient.
Can I host WordPress sites myself as cheaply as shared hosting?
Yes, and with better performance. Deploy WordPress via Docker Compose (WordPress + MariaDB + Caddy) on a $5-10/month VPS. A single VPS hosts 3-5 WordPress sites for the price of one shared hosting plan. Performance is better because you’re not sharing resources with hundreds of other customers on the same server. The trade-off: you manage updates, backups, and security yourself. Use Borgmatic for automated backups and unattended-upgrades for OS patches.
Do I need to worry about email deliverability if I self-host?
If your websites send transactional email (contact forms, password resets), use an external SMTP provider — not your server’s built-in mail. Resend, Amazon SES ($0.10/1,000 emails), or Postmark handle deliverability (SPF, DKIM, IP reputation). Self-hosting email sending is possible with Mailu or Stalwart, but deliverability from a fresh IP takes weeks to establish. For most self-hosted websites, an external SMTP relay is the practical choice.
Is self-hosted reliable enough for production websites?
Yes, with proper setup. A VPS from Hetzner, DigitalOcean, or Vultr offers 99.9%+ uptime SLAs — comparable to managed hosting. Add Uptime Kuma for monitoring and alerts. Set up automated backups with Restic. Use Cloudflare as a CDN and failover buffer. For critical sites, the weakest link is your own maintenance discipline (applying updates, monitoring disk space), not the infrastructure itself.
Related
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments