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