Skip to main content

How To Configure Store Server Docker Deployment

Overview

This document provides the prerequisites, configuration steps, and deployment guidance for running the Enactor Store Server using Docker and Docker Compose. It explains how to prepare stack files, configure .env files, and update registry and image settings for each environment.


Prerequisites

Docker Installed on the Host Machine

Docker must be installed and running on the machine where the Store Server containers will be deployed. This provides the container runtime required for executing Enactor services.

Docker Compose Installed (Version 2.1+ Required)

Only required if you need to run multiple containers on a single host or import the .env files during the deployment.

Docker Compose v2.1 or higher must be installed on the local machine. Compose is used to manage multi-container deployments through YAML stack files.

Repository for Stack and .env Files

A central repository (Git, Azure DevOps, GitHub, etc.) should exist to store and version-control:

  • Docker Stack / Compose YAML files
  • All .env configuration files used for each deployment

This ensures consistent deployments across stores, environments, and teams.

Access to the Enactor Docker Registry

You must have valid credentials to pull images from the Enactor Docker Registry. The stack file will reference images stored in this registry, and deployments cannot proceed without authenticated access.


Database

For Cloud Store Server deployments, the recommended database architecture is to use an RDS instance configured with separate schemas per store location, ensuring isolation and resilience across multiple availability zones.


YAML Stack Files

Certain values in the stack file should be updated before deployment. For example, database endpoints and credentials must be replaced with the correct values for your environment.

You must also configure the Custom Docker Registry and Docker Image Tags. The stack file's image property should point to the Enactor images hosted in a secure registry. You must replace the {ImageRepository} placeholder with the specific Image Repository URL provided by Enactor, and replace {Version} with the exact Docker image version specified in your official release notes. For example:

image: {ImageRepository}/enactorstandard/lin/ss:{Version}

After these replacements, the stack file will be correctly configured to pull the required Enactor Store Server image from your custom registry.

What the YAML Stack File Does

It lets you define:

  • Services (containers)
  • Images to use
  • Ports to expose
  • Volumes to mount
  • Networks
  • Environment variables
  • Startup order and dependencies

Store Server YAML Stack File

If you want to deploy multiple store-server Docker containers (or a single one) on the same VM, the flexibility comes from a few specific properties in your Docker Compose / Docker Stack (Swarm) file. Below is a clear list of which properties you can amend, and how they allow per-store or multi-store deployments.

ParametersDataNotes
Volumes
enactor-data-ss1-home:
external: true
name: enactor-data-ss1-home
enactor-data-ss1-extensions-home:
external: true
name: enactor-data-ss1-extensions-home
ss1These volumes are used to persist important Enactor Store Server files outside the container, so they are not lost when the container is removed, redeployed, or upgraded. This would include logs, received configuration and application updates files.
Services:
store-server-1:
store-server-1This is the name of a service, essentially the name of a Docker container.
Image:enactor.azurecr.io/enactorstandard/lin/ss:REPLACE_DOCKER_TAGTo deploy Enactor Store Server containers, update the download address in your stack or Compose file to point to the correct Enactor Docker Registry location. In addition, replace the placeholder REPLACE_DOCKER_TAG with the exact Docker image version provided in your official Enactor release notes.
Ports:
target: 39848
published: 39848
mode: ingress
target: 52258
published: 52258
mode: ingress
HTTP:39848
HTTPS:52258
Unique Tomcat ports can be configured for HTTP and HTTPS.

Enactor ENV Files

Env files allow you to externalise configuration values, such as device IDs, database details, and service endpoints, so they remain separate from the stack files. This keeps deployments clean, consistent, and easier to manage, especially when running multiple containers or multiple Enactor Store Servers. Docker Compose automatically reads the env files, enabling seamless reuse of the same deployment templates across different stores or environments simply by switching files. This data can also be included as configuration in the YAML file.

Search the env file for any placeholders beginning with "<REPLACE_ME>" and substitute them with the appropriate values.

Common.env

ParametersExample ValueNotes
ENACTOR_COMMON_PARENTPROCESSSET=NextGenOnly apply overrides if you have customisations in place that require this change. Ensure you fully understand the impact of overriding these settings before making changes.
ENACTOR_COMMON_PROCESSSET=NextGenOnly apply overrides if you have customisations in place. Ensure you fully understand the impact of overriding these settings before making changes.
ENACTOR_DB_DRIVERCLASSNAME=com.mysql.jdbc.DriverSpecifies the JDBC database driver class required for Store Server database connectivity.
ENACTOR_DB_PASS=passwordDatabase password credentials used for Store Server authentication. For enhanced security, passwords stored in .env files can be encrypted using Docker Secrets.
ENACTOR_DB_USER=userDatabase user credentials used to authenticate the Store Server with the database.
ENACTOR_QUERYTRANSLATOR_DATABASEIDENTIFIER=MYSQLSpecifies the database type used by the Query Translator, ensuring correct SQL translation for the underlying database engine.
ENACTOR_SERVER_EMAPP_URL_BASE= ENACTOR_SERVER_EMPDP_URL_BASE= ENACTOR_SERVER_EMPROC_URL_BASE= ENACTOR_SERVER_EMWS_URL_BASE= ENACTOR_SERVER_IMPROC_URL_BASE= ENACTOR_SERVER_IMWS_URL_BASE= ENACTOR_SERVER_CMPROC_URL_BASE= ENACTOR_SERVER_CMWS_URL_BASE= ENACTOR_SERVER_OMPROC_URL_BASE= ENACTOR_SERVER_OMWS_URL_BASE= ENACTOR_SERVER_OMBP_URL_BASE=https://em-managerAdd the central estate manager address. Although some URLs are not currently required in the store server, it is best practice to populate all of them, as this provides flexibility for any future changes.

Common-ss.env

This section documents only the parameters that may need adjustment. All remaining values should be left as originally provided.

ParametersExample ValueNotes
ENACTOR_PROCESSCONNECTIONS_DEFINITIONID=StandardPosBackOfficeEstateManagerStandard process connection when an environment is deployed with store servers.
JXMS=2048mMinimum Java Memory.
JXMX=4098mMaximum Java Memory (8196m Recommended).
ENACTOR_DOCUMENTPROCESSING_NUMBEROFTHREAD=4Document processing threads.
JAVA_COUNTRY= JAVA_LANGUAGE=GB enJava Language.
TIMEZONE=Europe/LondonDeployed environment's timezone.

ss1.env - Unique for Each Deployment

Individual store environment configuration.

ParametersExample ValueNotes
ENACTOR_COMMON_DATABASESCHEMA=enactorss1Customised process connection or other process connections.
ENACTOR_DB_JDBC_URL=Database connection string.
ENACTOR_CONTAINER_DEVICEID=BO@0001.enactorConfigured store server device ID. Should match the device configuration setup in the Estate Manager.
ENACTOR_SERVICE_DEVICEID=BO@0001.enactorConfigured store server device ID. This will match the device configuration setup in the Estate Manager.
ENACTOR_SERVICE_LOCATIONID=0001Configured store server location ID. This will match the location configuration setup in the Estate Manager.
ENACTOR_SERVER_EMREPORTS_URL_BASE=https://{StoreServerAddress}Add the DNS address for the local store server.
ENACTOR_RMI_SERVERHOSTstore-server-1This should match the services name in the YAML file.

Deployment

If the deployment is successful, you should be able to navigate to the store server.

http://{StoreAddress}:39848/WebStoreManagement/Layout/Standard/DesktopLayout.layout