Skip to main content

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.

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_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:
  • 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 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

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’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.

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
en
Java 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 connects to
ENACTOR_DB_JDBC_URL=Database 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://{StoreServerAddressAdd the DNS address for the local store server
ENACTOR_RMI_SERVERHOSTstore-server-1This 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