# Linux

> Run TX Text Control .NET Server applications on Linux: publish for linux-x64, install the ASP.NET Core Runtime and host on Ubuntu or Debian with systemd.

- **Product:** TX Text Control .NET Server
- **Section:** Documentation
- **Kind:** Topic
- **Path:** TX Text Control .NET Server > Deployment Guide > Linux
- **735 words**
- **Web URL:** https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/
- **LLMs URL:** https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/llms-full.txt

---

Since version 33.0, applications built with TX Text Control .NET Server run on Linux servers: the Core engine processes documents there, renders them for the Document Viewer and runs the backend of the Document Editor. Nothing of TX Text Control is installed on the server itself. You publish the application for Linux, install the ASP.NET Core Runtime and let a service manager and a reverse proxy take care of the rest.

### How a Linux Deployment Works

- **The Core engine.** Only `TXTextControl.TextControl.Core.SDK` runs on Linux. The Classic engine is Windows only.
- **Publish for `linux-x64`.** `dotnet publish -c Release -r linux-x64 --self-contained false` puts the native Linux libraries, the *Fonts* folder and the files of the Document Editor backend into the output, next to your application.
- **The ASP.NET Core Runtime on the server.** It runs your application and the Document Editor backend, which your application starts as a separate `dotnet` process.
- **A service and a reverse proxy.** systemd starts the application and restarts it when it ends. nginx accepts the requests of the browsers and passes HTTP requests and the WebSocket connections of the Document Editor to the application.

```text
Browser ---> nginx ---> your application (systemd) ---> Document Editor backend
```

Every server or virtual machine that runs the application needs a [runtime license](https://docs.textcontrol.com/tx-text-control-dotnet-server/installation/licensing/runtime/llms-full.txt).

### Test on Linux Before You Deploy

A Windows development machine can run the application on Linux before it reaches a server: with the **WSL** startup profile of Visual Studio, it runs with the native Linux libraries of the Core engine, and problems that appear only on Linux show up on your machine. [Development Environments](https://docs.textcontrol.com/tx-text-control-dotnet-server/installation/requirements/ide/#visual-studio-2026-and-visual-studio-2022) describes how to enable WSL and the alternative of a Linux container.

### Find the Right Page

| If you want to | Read |
|---|---|
| Deploy an application to an Ubuntu server with systemd and nginx, step by step | [Ubuntu](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/ubuntu/llms-full.txt) |
| Deploy to Debian 12 or 13, where .NET comes from Microsoft's package repository | [Debian](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/debian/llms-full.txt) |
| Check whether a distribution or a container image offers the processor architecture, libraries, ports and files TX Text Control needs | [Linux Requirements](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/requirements/llms-full.txt) |
| Run the application in a Linux container instead of directly on the server | [Docker](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/docker/llms-full.txt) |
| Host the application on Azure App Service on Linux | [Azure App Service Linux](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/azure/app-service-linux/llms-full.txt) |

### Where to Start

1. [Linux Requirements](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/requirements/llms-full.txt): make sure your distribution qualifies. Debian 11, Alpine Linux and ARM64 servers don't.
2. [Ubuntu](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/ubuntu/llms-full.txt) or [Debian](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/debian/llms-full.txt): deploy the application. The Ubuntu page explains each step; the Debian page adds what differs.
3. [WebSocket Architecture](https://docs.textcontrol.com/tx-text-control-dotnet-server/integration/websockets/llms-full.txt): the connection of the Document Editor through proxies and load balancers.
4. [Troubleshooting Linux](https://docs.textcontrol.com/tx-text-control-dotnet-server/troubleshooting/linux/llms-full.txt): when something works on Windows but not on Linux.

---

## In This Section

- [Debian](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/debian/llms-full.txt): Deploy an ASP.NET Core app with TX Text Control to Debian: set up sudo, the ASP.NET Core Runtime from Microsoft's package repository, systemd, nginx and ufw.
- [Linux Requirements](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/requirements/llms-full.txt): Check a Linux server or container for TX Text Control .NET Server: x64 and glibc 2.34, the .NET runtime, gconv and ICU, fonts, files, ports and processes.
- [Ubuntu](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/ubuntu/llms-full.txt): Deploy an ASP.NET Core app with TX Text Control to Ubuntu: install the ASP.NET Core Runtime, publish for linux-x64, run it with systemd behind nginx.

---

## Nearby

- **Previous:** [.NET Framework Applications](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/windows/dotnet-framework/llms-full.txt)
- **Next:** [Ubuntu](https://docs.textcontrol.com/tx-text-control-dotnet-server/deployment/linux/ubuntu/llms-full.txt)
