Self-hosting a Blazor Server app sounds simple…
until you actually do it.
Nginx, systemd, SSL, firewall, Cloudflare —
it quickly turns into a lot of manual setup.
So I built GhostlyHosting.
A small, menu-driven CLI that prepares a fresh Ubuntu VPS and deploys your .NET app step by step.
⚙️ What it does
Instead of setting everything up manually, you just run:
ghostly-hosting
And follow the menu.
It helps you:
deploy apps directly from GitHub
configure nginx as reverse proxy
create and manage systemd services
setup Let's Encrypt SSL
integrate Cloudflare (DNS + proxy)
configure firewall + Fail2Ban
host multiple apps on a single server
🧠 The idea
I didn’t want:
complex CI/CD pipelines
Docker setups for simple apps
hours of server configuration
I wanted:
👉 a simple, repeatable workflow
👉 that works on any Ubuntu VPS
👉 without hiding what’s happening
🚀 Typical workflow
Fresh Ubuntu VPS
Install GhostlyHosting
Run the tool
Add your app
Done
Behind the scenes it:
clones your repo
builds your .NET app
configures nginx
creates a systemd service
sets up SSL
💸 Cheap hosting is enough
You don’t need an expensive server.
You can run multiple apps on a ~3€ VPS without problems,
as long as your apps are lightweight (which most Blazor Server apps are).
🔁 Reroll instead of fixing
One thing I really like:
If something breaks or gets messy, you don’t debug for hours.
You just:
spin up a fresh server
run GhostlyHosting again
redeploy your apps
Clean, fast, predictable.
🎯 Who it's for
solo developers
side projects
MVPs
people who want full control over their VPS
🔗 Links
GitHub: https://github.com/Nix1983/Ghostly-Hosting
Website: https://ghostlyinc.com/en-us/tools/ghostly-hosting/
💬 Final thought
For many projects, simple beats complex.
You don’t need a DevOps stack.
You just need a server that works.
What are you using for self-hosting your .NET apps?
Top comments (1)
Love this approach — I went through the same pain with nginx + systemd setup 😅
A simple menu-driven tool like this saves a lot of time, especially for small projects and MVPs.