Docker Compose Deployment Overview🔗
Use this page as the single checklist before diving into the connector-specific guides. It covers host requirements, where to obtain the Compose bundles, and the high-level workflow shared by every DSX-Connect Docker deployment.
Docker Compose is the fastest way to run the full platform on a single host.
Prerequisites🔗
- Docker Engine 20.10+
- Docker Compose v2 (
docker compose) - A Linux host, macOS Docker Desktop, or Windows Docker Desktop
- Network access to the DSXA scanner image repository
- Connector-specific credentials (for example: AWS IAM keys, Azure AD app secrets, GCP service-account JSON)
For environment settings and worker retry policies see:
➡️ Deployment Advanced Settings
Environment mode (APP_ENV)🔗
Set environment mode explicitly for both core and connectors:
- Core:
DSXCONNECT_APP_ENV=dev|stg|prod - Connectors:
DSXCONNECTOR_APP_ENV=dev|stg|prod APP_ENVis also accepted as a fallback.
Why set it:
- Controls DSX-Connect core environment policy (retry/backoff behavior).
- Controls connector log sanitization policy. In
stgandprod, connector startup logs mask identifier fields such as tenant/client IDs.
Example (.env / compose env):
DSXCONNECT_APP_ENV=prod
DSXCONNECTOR_APP_ENV=prod
Environment Configuration🔗
Docker deployments typically use .env files to supply connector configuration and credentials.
Example:
DSXCONNECTOR_ASSET=/mnt/data
DSXCONNECTOR_ITEM_ACTION=move
DSXCONNECTOR_ITEM_ACTION_MOVE_METAINFO=/var/lib/dsxconnect/quarantine
These variables are injected into containers through the Compose file or inclusion on the command line using `--env-file.
Example:
docker compose up --env-file sample.filesystem.env
Recommendations:
- Keep
.envfiles out of source control - Store secrets securely on the host system
- Use different
.envfiles per connector instance
Unlike Kubernetes, Docker Compose does not provide native secret management, so operational environments should consider external secret tooling.
Compose Bundles🔗
The DSX-Connect project provides reference Compose bundles for:
- dsx-connect core
- connectors
- example deployments
Bundles are available in the GitHub release artifacts:
➡️ https://github.com/deep-instinct/dsx-connect/releases
Each connector deployment guide references the specific Compose file used.
Example components include:
| Component | Compose service |
|---|---|
| dsx-connect core | dsx-connect-api, workers, Redis |
| Filesystem connector | filesystem-connector |
| Google Cloud Storage connector | gcs-connector |
| SharePoint connector | sharepoint-connector |
These services communicate using the shared Docker network defined in the Compose project.
Deployment Flow🔗
1️⃣ Prepare environment files
Create .env files containing connector configuration and credentials.
Each connector guide provides a sample.
2️⃣ Start DSX-Connect Core
Follow:
➡️ DSX-Connect Core Deployment
This launches:
- API service
- worker containers
- Redis
- optional syslog collector
Verify the API is reachable and the UI loads.
3️⃣ Start connectors
Choose the connector deployment guide under this section:
- Filesystem
- AWS S3
- Azure Blob Storage
- Google Cloud Storage
- SharePoint
- OneDrive
- M365 Mail
- Salesforce
Each connector runs as a separate container and registers with the DSX-Connect API.
4️⃣ Networking and exposure
Expose the DSX-Connect UI/API using:
- host port mapping
- reverse proxy (NGINX / Traefik)
- optional TLS termination
Connector webhook endpoints should only be exposed where required.
5️⃣ Monitoring and lifecycle
Common operational tasks include:
- reviewing container logs
- restarting connectors
- rotating connector credentials
- updating environment variables
- redeploying containers after configuration changes
Logs can be exported to external collectors via the syslog service.
Scaling Considerations🔗
Docker Compose runs on a single host.
Throughput tuning is primarily achieved through worker concurrency:
DSXCONNECT_SCAN_REQUEST_WORKER_CONCURRENCY
You may also scale worker containers manually:
docker compose up --scale scan-request-worker=3
However Compose does not provide:
- multi-node orchestration
- autoscaling
- cluster-level scheduling
- high-availability Redis
- Kubernetes-style resource management
For large-scale or production environments, consider the Kubernetes deployment model.
Next Steps🔗
- Deploy DSX-Connect Core via Core Deployment
- Choose the connector page that matches your repository
- Configure authentication and TLS if required
- Run your first scan and verify results through the DSX-Connect UI
Once the platform and at least one connector are running, you can monitor scans, adjust concurrency, and experiment with throughput before moving to Kubernetes for production-scale workloads.