Configuring Store Server Docker Guide
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.
Prerequisite
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 are 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.
| Parameters | Data | Notes |
|---|---|---|
Volumes
| ss1 | These 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-1 | This is the name of a service, essentially the name of a Docker container. |
| Image: | enactor.azurecr.io/enactorstandard/lin/ss:<REPLACE_DOCKER_TAG> | To deploy an 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:
| HTTP:39848HTTPS:52258 | Unique Tomcat ports can be configured for HTTP and HTTPS. |
Enactor ENV files
Env files allows you to externalise configuration value, such as device Ids, database details, and service end points, 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 YMAL file.
Search the env file for any placeholders beginning with "<REPLACE_ME>"
and substitute them with the appropriate values.
Common.env
| Parameters | Example Value | Notes |
|---|---|---|
ENACTOR_COMMON_PARENTPROCESSSET= | NextGen | Only 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= | NextGen | Only 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.Driver | Specifies the JDBC database driver class required for Store Server database connectivity. |
ENACTOR_DB_PASS= | password | Database password credentials used for Store Server authentication. For enhanced security, passwords stored in .env files can be encrypted using Docker Secrets. |
ENACTOR_DB_USER= | user | Database user credentials used to authenticate the Store Server with the database. |
ENACTOR_QUERYTRANSLATOR_DATABASEIDENTIFIER= | MYSQL | Specifies 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-manager | Add the central estate manager address. Although some URLs are not currently required in the store server, it’s 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.
| Parameters | Example Value | Notes |
|---|---|---|
ENACTOR_PROCESSCONNECTIONS_DEFINITIONID= | StandardPosBackOfficeEstateManager | Standard process connection when an environment is deployed with store servers. |
JXMS= | 2048m | Minimum Java Memory. |
JXMX= | 4098m | Maximum Java Memory (8196m Recommended). |
ENACTOR_DOCUMENTPROCESSING_NUMBEROFTHREAD= | 4 | Document processing threads. |
JAVA_COUNTRY=JAVA_LANGUAGE= | GBen | Java Language. |
TIMEZONE= | Europe/London | Deployed environment's timezone. |
ss1.env - unique for each deployment
Individual store environment configuration
| Parameters | Example Value | Notes |
|---|---|---|
| ENACTOR_COMMON_DATABASESCHEMA= | enactorss1 | Customised process connection or other process connects to |
| ENACTOR_DB_JDBC_URL= | Database String | |
| ENACTOR_CONTAINER_DEVICEID-= | BO@0001.enactor | Configured store server device ID, should match the device configuration setup in the estate manager |
| ENACTOR_SERVICE_DEVICEID= | BO@0001.enactor | Configured store server device ID, this will match the device configuration setup in the estate manager |
| ENACTOR_SERVICE_LOCATIONID= | 0001 | Configured 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_SERVERHOST | store-server-1 | This should match the services name in the YMAL |
Deployment
If the deployment is successful, you should be able to navigate to the store server.
http://{StoreAddress}:39848/WebStoreManagement/Layout/Standard/DesktopLayout.layout