> For the complete documentation index, see [llms.txt](https://docs.signius.eu/manuals/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.signius.eu/manuals/signius-sealing-server-and-client/signius-sealing-client/installation/docker.md).

# Docker

### Regular deployment

* Download the **SIGNIUS Sealing Client** installation package from the official website or using the link provided by the manufacturer.&#x20;
* Add docker image to Your repository
  * schema:
    * docker load -i \<docker\_image\_file>
  * example:
    * docker load -i sseal\_client\_image\_v1.5.1.tar
* Build and run container (alternatively can be done with docker compose)
  * schema:
    * docker run -itd --name \<docker\_container\_name> \<docker\_image:tag>
  * example:
    * docker run -itd --name signius-sealing-client-container sseal-client-image:v1.5.1
* \*Copy files to host (useful for setting up docker compose later)
  * schema:
    * docker cp \<docker\_container\_name>:\<container\_file\_location> \<location\_on\_host>
  * example (signius\_log.txt will be needed for generating license and appsettings.json for configuration):
    * docker cp signius-sealing-client-container:/usr/local/bin/start.sh ./start.sh
    * docker cp signius-sealing-client-container:/opt/sseal/client/appsettings.json ./appsettings.json
    * docker cp signius-sealing-client-container:/opt/sseal/client/signius\_log.txt ./signius\_log.txt
* Stop container
  * schema:
    * docker stop \<docker\_container\_name>
  * example:
    * docker stop signius-sealing-client-container
* Remove container
  * schema:
    * docker rm \<docker\_container\_name>
  * example:
    * docker rm signius-sealing-client-container

### Quick deployment

* Download attached bash script file

{% file src="/files/orXOp9nOWEJJEkvUnJZf" %}

* Change \<version> value in the script to version number from installation package (docker image file) received from manufacturer
* Save changes
* Run bash script file using below command:
  * bash -x initialbuild.sh

{% hint style="info" %}
Provided script does essentially the same actions as steps described in "Regular initialization" with one minor difference - sleep (10s) step before collecting signius\_logs.txt to ensure correct log collection.

Script needs to be in the same location as docker image file (.tar).
{% endhint %}

### License generation

* Once initialization is complete copy **Hardware ID** from signius\_log.txt
* send the copied **Hardware ID** to the software supplier (Vendor) to generate a license.
* Once you have received your license file, please follow the provider's instructions to activate **SIGNIUS Sealing Client**.

### Software activation

* After receiving the license file, return to the **SIGNIUS Sealing Client** root directory (directory with image, configuration and log files).&#x20;
* Place license file in the **SIGNIUS Sealing Client** root directory.

### Setting up container

* Create and adjust docker-compose.yml file
  * nano docker-compose.yml

content example:

{% code title="docker-compose.yml" overflow="wrap" lineNumbers="true" %}

```yaml
version: '3.8'

services:
  sseal_client:
    image: sseal-client-image:<tag/version>  # Use the pre-built image
    container_name: sseal-client-container
    volumes:
      - ./client/appsettings.json:/opt/sseal/client/appsettings.json
      - ./client/sseal_client.license:/opt/sseal/client/sseal_client.license
      - ./client/processes:/opt/sseal/processes
      - ./client/start.sh:/usr/local/bin/start.sh
    ports:
      - 8089:8089
```

{% endcode %}

* build and run container with compose in detached mode (from the directory where docker-compose.yml is located)
  * docker compose up -d
