Linux Requirements
A Linux server or container runs TX Text Control .NET Server when it offers what the Core engine's native libraries and the Document Editor backend expect: an x64 processor, the GNU C Library, the .NET runtime and a few system files that minimal images leave out. The tables and sections below list these requirements for administrators and developers who choose a distribution or a base image, or who look for the cause when something fails on Linux only.
The requirements apply to the Core engine in TXTextControl.TextControl.Core.SDK, the only engine that runs on Linux.
At a Glance
| Requirement | Linux |
|---|---|
| Engine | Core (TXTextControl.TextControl.Core.SDK) |
| Processor architecture | x64, runtime identifier linux-x64; 64-bit process |
| C library | GNU C Library (glibc) 2.34 or later; musl, as in Alpine Linux, doesn't work |
| C++ runtime | libstdc++ with the symbol version GLIBCXX_3.4.29 (GCC 11) or later |
| .NET | ASP.NET Core Runtime 8.0 or later, with the dotnet command available |
| System files | glibc's gconv modules; ICU unless the application runs in globalization-invariant mode |
| Fonts | None on the system; the application brings a Fonts folder |
| Network | The HTTP port of your application; TCP port 4283 of the Document Editor backend, used only by your application |
Distributions
Which distributions Text Control lists as tested and supported is described in Operating Systems. The distributions must meet the requirements on this page.
An ASP.NET Core application with the version 34.0 packages has been run on the following systems:
| System | glibc | Result |
|---|---|---|
Ubuntu 24.04 LTS, image mcr.microsoft.com/dotnet/aspnet:10.0 | 2.39 | Document processing, Document Editor and Document Viewer work |
Ubuntu 24.04 chiseled, image mcr.microsoft.com/dotnet/aspnet:10.0-noble-chiseled | 2.39 | Works after the gconv modules are added |
| Debian 12 | 2.36 | Document processing and Document Editor work |
| Debian 13 | 2.41 | Document processing, Document Editor and Document Viewer work |
Alpine Linux, image mcr.microsoft.com/dotnet/aspnet:10.0-alpine | musl | The application process ends when a document is created |
The .NET runtime has its own list of supported distributions and versions; .NET Versions describes the versions TX Text Control supports.
Processor Architecture and C Library
The Core package contains native Linux libraries only for the runtime identifier linux-x64, 14 shared objects such as tx34core.so, tx34_pdf.so and txfntmgr.so. There are no libraries for linux-arm64 or linux-musl-x64, so ARM64 servers and Alpine Linux can't run TX Text Control. The Document Editor backend also refuses to start in a 32-bit process.
The native libraries link only against the GNU C Library, libstdc++ and libgcc_s. Their highest required symbol versions, read from the libraries of version 34.0.5, are GLIBC_2.34, GLIBCXX_3.4.29 and CXXABI_1.3.9. Distributions with an older glibc or C++ runtime, such as Debian 11, don't meet them. On Debian and Ubuntu, the packages libc6, libstdc++6 and libgcc-s1 provide these libraries, and the .NET runtime needs them as well.
The libraries don't link against fontconfig, FreeType, X11, libgdiplus or OpenSSL, so none of these has to be installed.
.NET Runtime
- The application. A framework-dependent application needs the ASP.NET Core Runtime of its target framework on the server. The NuGet packages target .NET 8 and work in .NET 8, .NET 9 and .NET 10 projects.
- The Document Editor backend.
TXTextControl.Web.Server.Coreis built for .NET 8 and rolls forward to the newest installed major version. A server or image with only the .NET 10 runtime runs it. - The
dotnetcommand. The hosted serviceDocumentEditorWorkerManagerstarts the backend with thedotnetcommand, and the backend starts its worker processes the same way. The command is found next to the runningdotnethost or on the search path. An application that is started through its own executable, or that is published self-contained, needsdotneton the search path; otherwise it ends at startup with "Error starting TXTextControl.Web.Server.Core: An error occurred trying to start process 'dotnet'".
Applications without the Document Editor, which only process documents or show them in the Document Viewer, start no additional processes.
System Files
gconv Modules
TX Text Control converts character sets with the iconv functions of glibc, which load the gconv modules from /usr/lib/x86_64-linux-gnu/gconv. Standard installations contain them; on Debian 13, they belong to the package libc6.
Warning
Chiseled Images. Ultra-minimal chiseled container images leave the gconv modules out. In such an image, the application process ends without an error message as soon as
ServerTextControlcreates a PDF document, and the Document Editor closes its connection when it exports a PDF document. Copy the gconv folder into the image with a multi-stage build, as the blog article Using TX Text Control with Ultra-Minimal Chiseled Linux Containers shows. Dockerfile describes the image.
ICU and Globalization-Invariant Mode
The chiseled image mcr.microsoft.com/dotnet/aspnet:10.0-noble-chiseled contains no ICU libraries and runs .NET in globalization-invariant mode with DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true. In this mode, the Document Editor backend logs errors such as "en is an invalid culture identifier." for each editor. The image variant 10.0-noble-chiseled-extra contains ICU and doesn't set the mode; with the gconv modules added, the editor runs without these errors.
Fonts
The Core engine doesn't use the fonts installed on the system. The Core package adds a Fonts folder to the build and publish output, and the engine loads its fonts from the Fonts folder in the application's base directory, whatever the working directory is. Deploy the folder with the application, and add company fonts to it. Fonts describes custom fonts in containers.
Files and Permissions
- Read access to the application folder. It contains the assemblies, the native libraries, the Fonts folder and the files of the Document Editor backend.
- The configuration file of the backend. The backend reads TXTextControl.Web.Server.Core.config.json from its own folder, in exactly this spelling; Linux file names are case-sensitive.
- Backend logs. The configuration file in the package sets
LogTargettoConsole, so the backend's messages go to the logging of your application and nothing is written to disk. Without the file, or with aLoggingsection that has noLogTarget, the backend writes log files to the folder inFolderPath, by default ./logs relative to the working directory, and the user running the application needs write access there. - appsettings.json. ASP.NET Core reads it from the content root, which is the working directory. Set the working directory of a service to the application folder, or the application doesn't find the file.
Network Ports
| Port | Used by | Reachable from |
|---|---|---|
| The HTTP port of your application, for example 5000 behind nginx or 8080 in a container | Browsers, through a reverse proxy or load balancer | The proxy or the network of your users |
| TCP 4283, the default port of the Document Editor backend | The WebSocket middleware of your application | Your application only |
Without configuration, the backend listens on port 4283 on all network interfaces, for IPv4 and IPv6. Bind it to the loopback address with DocumentEditorWorkerOptions when it runs on the same machine, as Ubuntu shows, or restrict the port with the firewall. In the backend's configuration file, TcpPort sets the port and SupportedIpVersions sets IPv4, IPv6 or Both; the backend ignores keys with a different spelling, such as SupportedIPVersions. The backend and its worker processes communicate over pipes and need no further ports.
Processes
An application with the Document Editor runs these processes on Linux:
| Process | Started by | Count |
|---|---|---|
Your application, for example dotnet MyApp.dll | systemd, the container runtime or you | 1 |
dotnet TXTextControl.Web.Server.Core.dll | DocumentEditorWorkerManager in your application | 1 per application process |
dotnet TXTextControl.Web.Server.Core.Process.dll | The backend | 1 per connected editor, plus short-lived processes for ribbon content |
When your application shuts down, it stops the backend and all of its worker processes. Each open editor needs memory on the backend; Document Editor Architecture gives Text Control's sizing guidance.
Not Available on Linux
- The Classic engine.
TXTextControl.TextControl.ASP.SDKandTXTextControl.Web.DocumentViewer.Classicrun on Windows only. - The DOC format. The Core engine doesn't load or save the legacy Word binary format, on any operating system. See Supported File Formats.
- The trial setup. The setup that installs the trial version is a Windows installer.