Manual Installation
DS Server needs no installer. The download archive contains a published ASP.NET Core application, TXTextControl.DocumentServices.dll with its dependencies, and you install it by copying a folder to the server and starting it with dotnet. On Linux, you run the Core build, usually as a systemd service. On Windows, you run Core or Classic from the command line, as a Windows service or in IIS.
The sections below cover each of these ways, from extracting the archive to the first sign-in to the admin portal. For containers, use the Docker guides instead.
Get the Archive
The current release is DS Server 5.0.2, in the archive DS Server 5.0.2.zip. Licensed customers download it from their Text Control account. To evaluate DS Server, sign in on the DS Server download page and download the 30-day trial version.
The archive has two folders:
| Folder | Build | Runs on |
|---|---|---|
| core | Core, cross-platform | Linux and Windows |
| classic | Classic | Windows only |
Install the runtimes that Requirements lists for your build before you start DS Server.
Remove or Configure the HTTPS Address
The file hostsettings.json in each folder sets the addresses DS Server listens on:
{
"urls": "http://*:5000;https://*:5001"
}
The HTTPS address needs a certificate. On a server with only the .NET runtime, DS Server ends at startup with this message:
Unhandled exception. System.InvalidOperationException: Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found or is out of date.
Important
HTTPS Address. Before the first start, either remove the HTTPS address, so that the file contains
"urls": "http://*:5000", or configure a certificate as described in HTTPS. The file is not used when IIS hosts DS Server.
Install on Linux
Install the ASP.NET Core Runtime 10.0 for your distribution, as described in Microsoft's Install .NET on Linux. Check it with
dotnet --list-runtimes, which must listMicrosoft.AspNetCore.AppandMicrosoft.NETCore.Appwith a version 10.0.x.Extract the Core build, for example to /opt/dsserver/core:
sudo mkdir /opt/dsserver sudo unzip "DS Server 5.0.2.zip" "core/*" /opt/dsserverEdit hostsettings.json as described above.
Start DS Server in its folder:
cd /opt/dsserver/core sudo dotnet TXTextControl.DocumentServices.dllThe console shows two lines about plugins and nothing else. DS Server writes its start messages to a log file in the logs folder of the working directory, one file per day, such as logs/log_20260929.log:
[2026-09-29 07:39:56] [Information] Now listening on: http://[::]:5000 [2026-09-29 07:39:56] [Information] Application started. Press Ctrl+C to shut down.Open the admin portal at
http://<server>:5000and sign in, as described in Sign In to the Admin Portal.
DS Server creates Admin.db and Admin-log.db in its own folder and the logs folder in the working directory of the process, so the user that runs it needs write access to both. The example uses sudo because /opt/dsserver belongs to root; for a permanent installation, run DS Server as a service with its own user.
Run DS Server as a systemd Service
A systemd service starts DS Server with the machine and restarts it after a failure. Create a user for the service and give it the folder:
sudo useradd dsserver
sudo chown dsserver /opt/dsserver/core
Save the unit file /etc/systemd/system/dsserver.service:
[Unit]
Description=TX Text Control DS Server
[Service]
WorkingDirectory=/opt/dsserver/core
ExecStart=/usr/bin/dotnet /opt/dsserver/core/TXTextControl.DocumentServices.dll
Restart=always
RestartSec=10
User=dsserver
[Install]
WantedBy=multi-user.target
WorkingDirectoryis the DS Server folder. DS Server creates the logs folder in the working directory, not in its own folder.ExecStartstarts DS Server with dotnet.which dotnetshows the path of dotnet on your machine.- Ports come from hostsettings.json. DS Server ignores the environment variable
ASPNETCORE_URLS; to use another address, change hostsettings.json or add--urls http://*:8080toExecStart. See Configuration.
Enable and start the service, and check its state:
sudo systemctl daemon-reload
sudo systemctl enable dsserver.service
sudo systemctl status dsserver.service
The same unit works for the Core build on any systemd-based distribution. Microsoft's Host ASP.NET Core on Linux with Nginx describes how to put nginx in front of such a service.
Install on Windows
Install the runtimes and components from Requirements: the .NET 10 Hosting Bundle and the Visual C++ Redistributable, and for Classic also the .NET Desktop Runtimes 10.0 and 8.0.
Extract the build you chose, for example to C:\DSServer\classic or C:\DSServer\core.
Edit hostsettings.json as described above.
Start DS Server from a command prompt in the folder:
cd C:\DSServer\classic dotnet TXTextControl.DocumentServices.dllThe Classic build can also be started with TXTextControl.DocumentServices.exe.
Open the admin portal at
http://localhost:5000and sign in.
Run DS Server as a Windows Service
Since version 3.0, DS Server can be registered as a Windows service, which starts with Windows and runs without a signed-in user. A service doesn't start in the DS Server folder: its working directory is C:\Windows\System32. DS Server keeps Admin.db in its own folder, but it creates the logs folder in the working directory, so set an absolute log folder in appsettings.json first:
{
"Logging": {
"DSServerFile": {
"Options": {
"FolderPath": "C:\\DSServer\\logs",
"FileName": "log_{dateTime}.log"
}
}
}
}
Change only FolderPath and keep the other settings of the file. Then register and start the service in an administrative PowerShell, here for the Classic build:
New-Service -Name DSServer -BinaryPathName "C:\DSServer\classic\TXTextControl.DocumentServices.exe" -DisplayName "TX Text Control DS Server" -StartupType Automatic
Start-Service -Name DSServer
The service reads its ports from hostsettings.json in the DS Server folder. Stop-Service -Name DSServer stops it, and sc.exe delete DSServer removes it (Remove-Service needs PowerShell 6 or later). Microsoft's Host ASP.NET Core in a Windows Service describes service accounts and recovery options.
Host DS Server in IIS
IIS hosts DS Server in-process with the ASP.NET Core Module, as set by the web.config in each folder. The steps below add the Classic build as a new website on a Windows server with IIS enabled, as listed in Requirements. Install the .NET 10 Hosting Bundle after IIS, so that it adds the ASP.NET Core Module.
Extract the classic folder to a location on the server, for example C:\DSServer\classic.
Open the Internet Information Services (IIS) Manager. Right-click Sites and choose Add Website....

Enter DocumentServices as the Site name, and select the classic folder as the Physical path. Set the binding of the site, its type, IP address, port and host name.

Click OK. IIS creates the site and an application pool with the same name.
Select Application Pools, select the pool DocumentServices and open Advanced Settings....

Set .NET CLR Version to No Managed Code and click OK. ASP.NET Core applications don't use the .NET Framework runtime of the pool.

Give the identity of the application pool write access to the classic folder. DS Server creates Admin.db and its logs there.
Make sure the port of the binding, for example 80 or 443, is reachable through the firewall, and open the site in a browser, for example https://yourdomain.com/. If you add DS Server as an application below an existing site instead of as a site of its own, its address includes the application name, for example https://yourdomain.com/DocumentServices. That address is the service URL your applications connect to.
In IIS, the site bindings set the ports and HTTPS, not hostsettings.json. The web.config also sets request limits for IIS; see Configuration.
Sign In to the Admin Portal
The admin portal is at the root of the service URL. The browser asks for a user name and password in its own sign-in dialog. Enter the default credentials:
- User name:
admin - Password:
admin
The welcome page opens:

A new installation is not registered: the Web API answers every DocumentProcessing request with "DS Server is not registered." until you register a serial number. Complete the installation in this order:
- Default Admin Password: replace the default password.
- Licensing: register the server with your serial number.
- Creating Security Profiles: create the credentials for your first application.
Next Steps
- Configuration: ports, logging, the admin database and the folders of the installation.
- HTTPS: serve DS Server over HTTPS with Kestrel.
- Getting Started: connect a first application to your server.
- Installation: what to check when DS Server doesn't start.