DS Server

Installing With Official Image From Docker Hub

Topic

Text Control publishes the Core build of DS Server as a ready-made Linux container image, txtextcontrol/dsserver-core on Docker Hub. With Docker installed, one command gives you a running server with its admin portal, so this is the quickest way to evaluate DS Server on your own machine.

Follow the steps below to pull and start the image, sign in to the admin portal, register a license and keep the admin database when the container is replaced.

Prerequisites

  • Docker, running Linux containers. See Get Docker.
  • A serial number for DS Server: the serial number of your license, or the trial serial number that your Text Control account lists under Manage Products after you request the trial version on the DS Server download page. The Licensing Overview explains both.

What the Image Contains

BuildCore, the contents of the core folder of the DS Server archive
Base imagemcr.microsoft.com/dotnet/aspnet:10.0 (Ubuntu 24.04 with the ASP.NET Core Runtime 10.0)
Platformlinux/amd64 only. On a machine with an ARM64 processor, the image runs only in x64 emulation, which Docker Desktop provides on a Mac with Apple silicon.
Folder/app, which is also the working directory
Port5000, HTTP only: the hostsettings.json of the image contains http://*:5000
Start commanddotnet TXTextControl.DocumentServices.dll
VolumesNone. The admin database and the logs are written into /app.

Tags

TagDS Server versionLast updated on Docker Hub
latest5.0.1June 18, 2026
5.0.15.0.1June 18, 2026
5.0.05.0.0March 12, 2026
4.1.04.1.0September 26, 2025
4.0.04.0.0April 30, 2025

The newest DS Server release, 5.0.2, is available as the download archive only. To run 5.0.2 in a container, build the image yourself as described in Installing using Docker (Core on Linux).

Pull and Run the Image

  1. Pull the image. Use a version tag to get a defined version, or latest for the newest one:

    docker pull txtextcontrol/dsserver-core:5.0.1
    
  2. Start a container and map port 5000 of your machine to port 5000 of the container:

    docker run -d -p 5000:5000 --name dsserver txtextcontrol/dsserver-core:5.0.1
    

    -d runs the container in the background, and --name gives it a name for later commands such as docker logs dsserver or docker stop dsserver.

  3. Open http://localhost:5000 in a browser. The browser asks for a user name and password in its own sign-in dialog. Enter the default credentials of the admin portal:

    • User name: admin
    • Password: admin

The admin portal opens with the welcome page. A red box asks you to change the default admin password.

The welcome page of the DS Server admin portal with the navigation Security Profiles, Licensing, Authentication and Plugins, a red box that asks to change the default admin password, and the tiles Security Profiles, Licensing and Authentication Servers.

Docker Desktop can start the same image without a terminal: search for txtextcontrol/dsserver-core in its Docker Hub view, click Run and enter 5000 as the host port.

Secure and License the Server

A new container is not registered. Until you register a serial number, the admin portal works, but every DocumentProcessing request is answered with "DS Server is not registered.", and the Document Editor and Document Viewer show the same message.

  1. Change the admin password. Open the user icon at the upper right, choose Admin Password and set a new password of at least 8 characters. See Default Admin Password.
  2. Register the serial number. Open Licensing, enter the serial number under Registration and click Register. See Licensing.
  3. Create a security profile for your application. See Creating Security Profiles.

Keep the Admin Database

Warning

Admin Database in the Container. DS Server stores the admin password, the security profiles and the OAuth setting in the file Admin.db, which it creates in /app on its first start. The file lives in the container: it survives docker stop and docker start, but it is lost when you remove the container, for example to update to a new image, and the next container starts with the default password and no security profiles.

To keep it, move the database and the logs to a Docker volume with two environment variables:

docker run -d -p 5000:5000 --name dsserver \
  -v dsserver-data:/data \
  -e LiteDbOptions__DatabaseFileName=/data/Admin.db \
  -e Logging__DSServerFile__Options__FolderPath=/data/logs \
  txtextcontrol/dsserver-core:5.0.1
  • -v dsserver-data:/data creates the named volume dsserver-data and mounts it at /data.
  • LiteDbOptions__DatabaseFileName sets the path of the admin database. DS Server creates Admin.db there, with its journal Admin-log.db beside it.
  • Logging__DSServerFile__Options__FolderPath sets the folder of the log files.

The environment variables override the settings of the same name in appsettings.json. Configuration lists the settings.

Serve HTTPS

The image listens on HTTP only. To serve HTTPS, either put the container behind a reverse proxy or load balancer that terminates TLS, or give DS Server a certificate: mount the certificate file into the container and set the Kestrel endpoint with environment variables, as HTTPS shows.

Next Steps