Installation Overview (DREX-M-specific)

This page explains only the pieces unique to DREX-M that you may need to adjust after the Common Core base installer has finished.

General installation steps (running Installer.exe, reboot cycle, etc.) are covered in the separate Common Core Installation

Where Drex Lives on Disk

Tier | Container | Config folder inside container | File you edit (host path)

Site | drex-message | C:/app/config | C:\abs\config\drex\appsettings.json

Central | drex-central-msg | C:/app/config | C:\abs\config\drex-central\appsettings.json

The installer places a volume mount so you can edit the JSON directly on the host; a container restart is not required—Drex detects file-watcher events and reloads settings on the fly.

Site-tier appsettings.json

{

"ConfigFileMaxSizeInMB": 1,

"LocalMessageBus": { // local RabbitMQ (plain AMQP)

"Host": "rabbitmq-vessel",

"Port": 5672,

"Protocol": "amqp",

"vHost": "commoncore"

},

"CentralMessageBus": { // remote RabbitMQ (AMQPS + cert)

"Host": "$RMQ_CENTRAL_HOST",

"Port": 5671,

"Protocol": "amqps",

"vHost": "commoncore"

},

"VesselImo": "$VESSEL_IMO", // site identifier (string)

"PrefetchCountIncoming": 5,

"PrefetchCountOutcoming": 5,

"RemoteConnectionRetryDelaySeconds": 5,

"ConcurrencySettings": {

"NumberOfWorkers": 2,

"MaxParallelism": 10

},

"SkipCertificateImport": false

}

Key items you might edit:

Key | Why change it?

LocalMessageBus.Host | Different container name or external RMQ.

CentralMessageBus.Host | DNS name / IP of Central RabbitMQ.

VesselImo | Must match site registration on Central.

PrefetchCount | Tune throughput vs. memory.

SkipCertificateImport | Set true only for lab environments without mutual-TLS.

Central-tier appsettings.json

{

"VesselsFolderPath": "C:/app/config/vessels",

"HistoryFolderPath": "C:/app/config/history",

"CloudParameters": {

"CentralHostName": "$CENTRAL_HOST_NAME"

},

"LocalMessageBus": { // local RabbitMQ (AMQPS)

"Host": "rabbitmq-central",

"Port": 5671,

"Protocol": "amqps",

"Username": "guest",

"Password": "guest",

"vHost": "commoncore"

},

"PrefetchCountIncoming": 5,

"PrefetchCountOutcoming": 5,

"RemoteConnectionRetryDelaySeconds": 5,

"ConcurrencySettings": {

"NumberOfWorkers": 2,

"MaxParallelism": 10

},

"SkipCertificateImport": false

}

Important knobs:

Key | Purpose / Notes

VesselsFolderPath | Folder Drex watches for Site registration files.

HistoryFolderPath | Where Drex archives superseded files.

CloudParameters.CentralHostName | Public DNS name used by cloud components to reach this Central.

LocalMessageBus.* | TLS port/creds for the Central RabbitMQ container.

SkipCertificateImport | true disables auto-import of TLS certs—use only in test labs.

Applying Configuration Changes

Drex watches its key configuration files and triggers automatic container restarts when a change requires it.

File you modify | What Drex does | Downtime

Adapter JSON (adapters\*.json) | Hot-reload queues and bindings via file-watcher; no container restart | 0 s

Site JSON (vessels\*.json) | Hot-reload shovels; no container restart | 0 s

appsettings.json | Drex detects the write event and self-restarts the container to re-read settings | 2-3 s (typical)

You therefore do not need to issue docker restart manually; the platform handles lifecycle events for you.

Troubleshooting Config Issues

Symptom | Likely Cause / Fix

Drex container stays in Restarting status | Syntax error in appsettings.json → validate with a JSON linter.

Adapter queues not created | Registration file too large (over ConfigFileMaxSizeInMB) or malformed JSON.

Messages pile up in shovel queue | CentralMessageBus host/port unreachable, or certificate mismatch.

Bad-Tenant feedback in Cloud tier | Tenant headers missing or unrecognised → verify adapter code and tenant registration on Central.

For general installation or uninstall instructions, refer to the Common Core Installation