What is .NET?

.NET is Microsoft's open-source runtime for building and running web apps and services in C#, hosted on TurboStack behind a managed Nginx reverse proxy.

.NET is Microsoft's free, open-source, cross-platform development platform for building web applications, APIs, and background services. Modern .NET applications are typically written in C# and run on the .NET runtime, with ASP.NET Core as the web framework.

On Linux, a .NET web application is published as a self-contained process that listens on a local HTTP port. A web server in front of it handles public traffic, Transport Layer Security (TLS), and request forwarding, leaving your application to focus on the business logic.

On TurboStack

TurboStack runs your .NET application as a managed background service and places an Nginx reverse proxy in front of it. Your app listens on a local port (5000 by default) and Nginx forwards public HTTP and HTTPS traffic to it, terminating TLS for you.

You enable .NET per application and pick the runtime version (for example 8.0, or newer). TurboStack provisions the matching runtime, registers the service so it starts on boot and restarts on failure, and wires up the reverse proxy automatically. You only declare the runtime in your host YAML - the service and proxy plumbing is handled for you.

A common workload is nopCommerce, the open-source ASP.NET Core e-commerce platform, which runs on this exact pattern.

Best practices

  • Target a current, supported .NET version (LTS releases are a safe default) and plan upgrades before a version reaches end of life.
  • Build and publish your app in Release configuration so it runs optimized.
  • Keep your app listening only on the local port; let Nginx handle public traffic and TLS.
  • Store secrets and connection strings in environment variables or configuration outside source control, not in appsettings.json committed to your repo.
  • Run database migrations as part of your deploy step, not on every application start.
  • Watch memory and CPU after deploys, since the runtime is long-lived and leaks accumulate over time.