# Installing With Official Image From Docker Hub

> Run the txtextcontrol/dsserver-core image from Docker Hub: tags, docker run on port 5000, admin sign-in, licensing and a volume that keeps Admin.db and logs.

- **Product:** DS Server
- **Section:** Documentation
- **Kind:** Topic
- **Path:** DS Server > Installation Guide > Installing With Official Image From Docker Hub
- **1510 words**
- **Web URL:** https://docs.textcontrol.com/ds-server/installation/docker-hub/
- **LLMs URL:** https://docs.textcontrol.com/ds-server/installation/docker-hub/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/ds-server/installation/docker-hub/llms-full.txt

---

Text Control publishes the Core build of DS Server as a ready-made Linux container image, [txtextcontrol/dsserver-core](https://hub.docker.com/r/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](https://docs.docker.com/get-started/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](https://www.textcontrol.com/product/ds-server/download/). The [Licensing Overview](https://docs.textcontrol.com/ds-server/overview/licensing/llms-full.txt) explains both.

### What the Image Contains

|  |  |
|---|---|
| Build | Core, the contents of the *core* folder of the DS Server archive |
| Base image | `mcr.microsoft.com/dotnet/aspnet:10.0` (Ubuntu 24.04 with the ASP.NET Core Runtime 10.0) |
| Platform | `linux/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 |
| Port | 5000, HTTP only: the *hostsettings.json* of the image contains `http://*:5000` |
| Start command | `dotnet TXTextControl.DocumentServices.dll` |
| Volumes | None. The admin database and the logs are written into */app*. |

#### Tags

| Tag | DS Server version | Last updated on Docker Hub |
|---|---|---|
| `latest` | 5.0.1 | June 18, 2026 |
| `5.0.1` | 5.0.1 | June 18, 2026 |
| `5.0.0` | 5.0.0 | March 12, 2026 |
| `4.1.0` | 4.1.0 | September 26, 2025 |
| `4.0.0` | 4.0.0 | April 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)](https://docs.textcontrol.com/ds-server/installation/docker-linux/llms-full.txt).

### Pull and Run the Image

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

    ```bash
    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:

    ```bash
    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.](https://docs.textcontrol.com/assets/img/ds-server/portal-welcome.63bc002c.webp)

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](https://docs.textcontrol.com/ds-server/administration/admin-password/llms-full.txt).
2. **Register the serial number.** Open **Licensing**, enter the serial number under **Registration** and click **Register**. See [Licensing](https://docs.textcontrol.com/ds-server/administration/licensing/llms-full.txt).
3. **Create a security profile** for your application. See [Creating Security Profiles](https://docs.textcontrol.com/ds-server/administration/security-profiles/llms-full.txt).

### 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:

```bash
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](https://docs.textcontrol.com/ds-server/installation/configuration/llms-full.txt) 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](https://docs.textcontrol.com/ds-server/installation/https/#configure-https-with-environment-variables) shows.

### Next Steps

- [Default Admin Password](https://docs.textcontrol.com/ds-server/administration/admin-password/llms-full.txt): change the default password first.
- [Licensing](https://docs.textcontrol.com/ds-server/administration/licensing/llms-full.txt): register the serial number online or manually.
- [Getting Started](https://docs.textcontrol.com/ds-server/getting-started/llms-full.txt): connect a first application to the server.
- [Multiple Servers with Load Balancing](https://docs.textcontrol.com/ds-server/installation/load-balancing/llms-full.txt): run several containers behind a load balancer.

---

## Nearby

- **Previous:** [Requirements](https://docs.textcontrol.com/ds-server/installation/requirements/llms-full.txt)
- **Next:** [Installing Using Docker (Core on Linux)](https://docs.textcontrol.com/ds-server/installation/docker-linux/llms-full.txt)
