• 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.

.NET 10available in Ubuntu feeds
Kestrelbuilt-in web server
:5000typical Kestrel port, behind NGINX
No licenceLinux, no Windows Server fee
01Why a VPS

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.

02The stack

How an ASP.NET Core Server Is Set Up

NGINX takes public traffic and forwards it to Kestrel, which runs your published app.

  1. Reverse proxy

    NGINX

    HTTPS on your domain, forwarding to Kestrel.

  2. Web server

    Kestrel

    Built into ASP.NET Core; listens on localhost.

  3. Application

    Your app

    A published build run by a systemd service.

  4. Runtime

    .NET runtime

    Installed from apt (aspnetcore-runtime).

04 RUNTIME .NET runtime 03 APPLICATION Your app 02 WEB SERVER Kestrel 01 REVERSE PROXY NGINX

Engineer's notes

  1. Microsoft recommends a reverse proxy such as NGINX in front of Kestrel on Linux.
  2. Turn on forwarded headers in your app so it sees the real scheme and client address.
  3. On Ubuntu, .NET installs from the Ubuntu package feeds; the runtime package is aspnetcore-runtime-10.0.
  4. 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
03Use cases

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.

04Sizing guide

Which Plan for Your .NET App

Pick by what shares the server with your app.

Recommended start

VPS-1

2 vCores and 4 GB RAM.

vCores2
RAM4 GB
NVMe40 GB
See VPS-1
Recommended start

VPS-2

4 vCores and 8 GB RAM.

vCores4
RAM8 GB
NVMe75 GB
See VPS-2
Recommended start

VPS-3

6 vCores, 12 GB RAM and 100 GB NVMe.

vCores6
RAM12 GB
NVMe100 GB
See VPS-3
Recommended start

VPS-4

8 vCores, 24 GB RAM and 200 GB NVMe.

vCores8
RAM24 GB
NVMe200 GB
See VPS-4

A starting point, not a limit: every plan upgrades in place, keeping your data, IP address and configuration.

05After handover

Running ASP.NET Core on Your Server

The steps below follow Microsoft's Ubuntu install and Linux hosting guides.

  1. 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
  2. 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/
  3. 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
  4. 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.

06Cheat sheet

.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
07Compare

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
Choose a VPS plan
08Handover

Your .NET server

Free one-time setup before you get access. Here is what happens, and what you receive.

  1. Pick a plan and a location

    Resources that fit your workload, in the datacentre closest to your users.

  2. Tell us your .NET setup

    Versions, database and domain: at order or right after.

  3. We install and secure it

    Server hardened, the stack installed and tested, HTTPS on your domain.

  4. 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
09Hardening and tuning

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

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.

₹1,008 /mo
Get Started
  • 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-3

Busy stores, SaaS products and several projects.

₹2,748 /mo
Get Started
  • 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.

₹5,274 /mo
Get Started
  • 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.

10Under the hood

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.

.NET VPS FAQs

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.