- ASP.NET Core
- Kestrel
- NGINX
- systemd
.NET VPS HostingASP.NET Core on a Linux server you control
ASP.NET Core runs natively on Linux. We set up a hardened KVM VPS with the .NET runtime, NGINX with free SSL in front of Kestrel, and a systemd service pattern for your app, so you deploy by copying your published build.
- KVM virtualisation
- NVMe storage
- Root SSH access
- Free one-time setup
- 99.9% uptime SLA
$systemctl list-units --type=service --state=active
- dotnetASP.NET Core runtime
- myapp.serviceKestrel on localhost:5000
- nginxHTTPS reverse proxy
- ufwfirewall: 22, 80, 443
- fail2banSSH brute-force guard
- unattended-upgradessecurity updates
Installed and secured before handover.
Why Run ASP.NET Core on a Linux VPS
Modern .NET is cross-platform. A Linux VPS runs it without Windows licensing.
No Windows Server licence
ASP.NET Core runs on Ubuntu, so the server is cheaper to run.
Kestrel is built in
The web server ships with your app; NGINX handles HTTPS and public traffic.
Publish and copy
Build with dotnet publish, copy the folder, restart the service.
Containers or services
Run it as a systemd service, or in Docker if you prefer.
How an ASP.NET Core Server Is Set Up
NGINX takes public traffic and forwards it to Kestrel, which runs your published app.
-
Reverse proxy
NGINX
HTTPS on your domain, forwarding to Kestrel.
-
Web server
Kestrel
Built into ASP.NET Core; listens on localhost.
-
Application
Your app
A published build run by a systemd service.
-
Runtime
.NET runtime
Installed from apt (aspnetcore-runtime).
Engineer's notes
- Microsoft recommends a reverse proxy such as NGINX in front of Kestrel on Linux.
- Turn on forwarded headers in your app so it sees the real scheme and client address.
- On Ubuntu, .NET installs from the Ubuntu package feeds; the runtime package is aspnetcore-runtime-10.0.
- Check which .NET versions your Ubuntu release offers; older ones may need the backports PPA.
- 443HTTPS, NGINX
- 80HTTP, redirects to HTTPS
- 22SSH, you only
- 5000Kestrel, localhost only
What You Can Run
ASP.NET Core web apps
MVC, Razor Pages and Blazor Server.
Web APIs
Minimal APIs and controllers for your front ends.
Background workers
Worker services that run as systemd units.
Databases beside the app
PostgreSQL or MySQL on the same server.
Containers
Run your app in Docker if you prefer.
Scheduled jobs
Console apps run by cron or systemd timers.
Which Plan for Your .NET App
Pick by what shares the server with your app.
A starting point, not a limit: every plan upgrades in place, keeping your data, IP address and configuration.
Running ASP.NET Core on Your Server
The steps below follow Microsoft's Ubuntu install and Linux hosting guides.
-
Install the ASP.NET Core runtime
From the Ubuntu package feeds.
sudo apt-get updatesudo apt-get install -y aspnetcore-runtime-10.0dotnet --list-runtimes -
Copy your published app
Publish on your machine, then upload the folder.
dotnet publish -c Release -o publishrsync -a publish/ admin@dotnet-vps:/var/www/myapp/ -
Create the service
A systemd unit keeps the app running and restarts it.
sudo nano /etc/systemd/system/myapp.service# ExecStart=/usr/bin/dotnet /var/www/myapp/MyApp.dll# User=www-data Restart=alwayssudo systemctl enable --now myapp -
Proxy it with NGINX
Forward the domain to Kestrel on localhost.
sudo nano /etc/nginx/sites-available/myappsudo nginx -t && sudo systemctl reload nginx
Example commands: adjust names, paths and versions to your project. Deploying and maintaining your application is yours to do, or ask us for a quote.
.NET commands you will use every week
Copy, paste, adjust the names. Each one is safe to run as your own user on the server.
Installed runtimes
dotnet --list-runtimes
Service status
sudo systemctl status myapp
Restart after a deploy
sudo systemctl restart myapp
Follow the app log
sudo journalctl -u myapp -f
Check the listening port
ss -ltnp | grep 5000
Reload NGINX safely
sudo nginx -t && sudo systemctl reload nginx
Windows Hosting or a Linux .NET VPS?
Windows hosting suits .NET Framework and IIS. Modern .NET runs well on Linux for less.
Windows hosting
- Runs.NET Framework and modern .NET
- Web serverIIS
- Control panelWindows tools
- Server administrationSee the Windows hosting page
- Best forLegacy .NET Framework apps
.NET Linux VPS
- RunsModern .NET (ASP.NET Core)
- Web serverKestrel behind NGINX
- Control panelSSH and the command line
- Server administrationYours, after our free setup
- Best forNew and migrated ASP.NET Core apps
Your .NET server
Free one-time setup before you get access. Here is what happens, and what you receive.
Pick a plan and a location
Resources that fit your workload, in the datacentre closest to your users.
Tell us your .NET setup
Versions, database and domain: at order or right after.
We install and secure it
Server hardened, the stack installed and tested, HTTPS on your domain.
You get root
SSH to a working server, ready for your code and data.
Installed for you
- ASP.NET Core runtime from the Ubuntu package feeds
- NGINX reverse proxy with HTTPS on your domain
- PostgreSQL or MySQL beside the app, on request
- Your app, its systemd service and configuration are set up by you
Secured before handover
- Non-root sudo user created for daily work
- SSH key login, password login for root disabled
- Firewall (UFW) open only for the ports you use
- Fail2ban blocking repeated login attempts
- Automatic security updates enabled
- Free Let's Encrypt SSL on your domain
- Timezone, swap and hostname configured
Not included (we say so up front)
- Ongoing server administration
- Application maintenance and updates
- Debugging your code
- Migrating existing sites or data
Security and Performance for .NET
Security
- Run the service as a non-root user such as www-data.
- Bind Kestrel to localhost and expose only NGINX.
- Keep secrets in environment variables or files outside the app folder.
- Update the .NET runtime with the system updates.
Performance
- Publish in Release mode.
- Enable response compression and caching in the app.
- Use a database on the same server for low latency, or a separate one for scale.
- Watch memory with journalctl and htop.
Built from the official documentation
VPS Plans for .NET
Start with VPS-1 for an API or a small site. Add RAM when a database or several apps share the server.
VPS-1
Small websites, APIs, bots and development servers.
- 2 vCores
- 4 GB RAM
- 40 GB NVMe
- 500 Mbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-2
Production apps, WordPress and online stores.
- 4 vCores
- 8 GB RAM
- 75 GB NVMe
- 1 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-3
Busy stores, SaaS products and several projects.
- 6 vCores
- 12 GB RAM
- 100 GB NVMe
- 2 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-4
High-traffic apps, large databases and agencies.
- 8 vCores
- 24 GB RAM
- 200 GB NVMe
- 3 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
* Unlimited traffic in Europe and North America. In Mumbai, Singapore and Sydney a monthly allowance applies (VPS-1 500 GB, VPS-2/VPS-3 1 TB, VPS-4 3 TB), then speed is limited to 10 Mbps until the next month.
Prices exclude 18% GST, which is added to invoices for customers in India.
Platform specs and locations
The same KVM platform on every plan; only CPU, RAM, storage and port speed change.
- Virtualisation
- KVM with reserved vCores and RAM
- Storage
- NVMe SSD on every plan
- Network
- Dedicated IPv4 and IPv6, 500 Mbps to 3 Gbps per plan
- Operating systems
- Ubuntu 26.04, 24.04 and 22.04 LTS · Debian 13, 12 and 11 · AlmaLinux · Rocky Linux · Fedora · FreeBSD
- Access
- Full root over SSH, key-based login
- Backups
- Automatic daily backup of the previous 24 hours; snapshots and longer retention on request
- Protection
- Always-on anti-DDoS mitigation
- Availability
- 99.9% uptime SLA
Asia-Pacific
- Mumbai
- Singapore
- Sydney
Europe
- London
- Limburg
- Roubaix
- Gravelines
- Strasbourg
- Milan
- Warsaw
North America
- Beauharnois
Availability per location changes with demand; we confirm your location before setup. In Mumbai, Singapore and Sydney each plan includes a monthly traffic allowance (VPS-1 500 GB, VPS-2 and VPS-3 1 TB, VPS-4 3 TB); beyond it, speed is limited to 10 Mbps until the next month.
Questions before you deploy
Not covered here? Ask an engineer before you order.
Ready when you are
Host Your ASP.NET Core App
Choose a plan and we hand over .NET on a hardened server with HTTPS on your domain.