The SimpleOrch Agent that runs on Manager and Worker nodes in your cluster
220
The SimpleOrch node agent — connects your Docker Swarm nodes to the SimpleOrch control plane.
This image runs on every node in your Docker Swarm cluster and acts as the communication layer between your infrastructure and the SimpleOrch control plane. A single image handles both manager and worker node roles, differentiated by a single environment variable.
You do not install this image manually on worker nodes. Once a manager node registers with the control plane, SimpleOrch automatically deploys this agent as a Docker Swarm global service across all worker nodes. You only need to run this image manually on your manager nodes.
SimpleOrch Control Plane
│
│ WebSocket (with polling fallback)
│
┌────┴────┐
│ Agent │ NODE_ROLE=manager ← You install this manually on manager nodes
│(manager)│ Full Swarm API access
└────┬────┘
│ Docker Swarm Global Service (automatic)
│
┌────┴────┐
│ Agent │ NODE_ROLE=worker ← Deployed automatically on all worker nodes
│ (worker)│ Metrics + execution
└─────────┘
The manager agent has access to the Docker socket and can issue Swarm commands — deploying services, scaling, restarting containers, and pushing NGINX configuration updates. The worker agent collects node metrics and reports them back through the manager to the control plane.
Do this on each Docker Swarm manager node. Get the registration command from the SimpleOrch control plane dashboard under Clusters → your cluster → Add Manager Node.
docker run -d \
--name simpleorch-agent \
--restart unless-stopped \
-e CONTROL_PLANE_URL=https://<your-control-plane-ip> \
-e CLUSTER_ID=<your-cluster-id> \
-e REGISTRATION_TOKEN=<token-from-dashboard> \
-e NODE_ROLE=manager \
-v /var/run/docker.sock:/var/run/docker.sock \
-v simpleorch-agent-data:/data \
simpleorch/agent:latest
docker run -d `
--name simpleorch-agent `
--restart unless-stopped `
-e CONTROL_PLANE_URL=https://<your-control-plane-ip> `
-e CLUSTER_ID=<your-cluster-id> `
-e REGISTRATION_TOKEN=<token-from-dashboard> `
-e NODE_ROLE=manager `
-v //./pipe/docker_engine://./pipe/docker_engine `
-v simpleorch-agent-data:/data `
simpleorch/agent:latest
The agent will register with the control plane, appear in your dashboard, and automatically deploy worker agents across all Swarm worker nodes.
| Variable | Description |
|---|---|
CONTROL_PLANE_URL | Full HTTPS URL of your SimpleOrch control plane (e.g. https://192.168.1.10) |
CLUSTER_ID | The cluster ID from the SimpleOrch dashboard |
REGISTRATION_TOKEN | One-time registration token from the dashboard. Valid for 60 minutes. |
NODE_ROLE | manager or worker. Manager nodes connect directly to the control plane. Worker nodes report metrics and receive instructions. |
| Variable | Default | Description |
|---|---|---|
HEARTBEAT_INTERVAL | 30 | Seconds between metric reports to the control plane |
WS_RECONNECT_INITIAL | 5 | Initial WebSocket reconnect delay in seconds |
WS_RECONNECT_MAX | 60 | Maximum WebSocket reconnect delay in seconds (exponential backoff caps here) |
LOG_LEVEL | INFO | Logging verbosity: DEBUG, INFO, WARNING, ERROR |
| Volume | Description |
|---|---|
simpleorch-agent-data | Persists the node UUID across container restarts. Do not delete this volume — if the UUID is lost the node must be re-registered. |
NODE_ROLE=manager)NODE_ROLE=worker)A node running both roles (common in smaller clusters where Swarm managers also run workloads) requires two agent containers — one with NODE_ROLE=manager and one with NODE_ROLE=worker. The control plane detects both are on the same host and counts it as one licensed node, not two.
The agent communicates with the control plane over HTTPS. Only outbound connections are made from the agent to the control plane — no inbound ports need to be opened on your Swarm nodes.
Connection behavior:
| Platform | Architecture | Status |
|---|---|---|
| Linux | amd64 | ✓ Supported |
| Windows Server 2022 | amd64 | ✓ Supported |
| Windows Server 2025 | amd64 | ✓ Supported |
Mixed Windows and Linux nodes in the same Swarm cluster are fully supported.
Worker node agents are upgraded automatically by the SimpleOrch control plane when a new version is available — the global Swarm service is updated and Docker Swarm rolls out the new image across all worker nodes without manual intervention.
Manager node agents must be updated manually:
docker pull simpleorch/agent:latest
docker stop simpleorch-agent
docker rm simpleorch-agent
# Re-run the original docker run command with the new image
The node UUID persists in the simpleorch-agent-data volume so the node re-registers automatically using its existing identity — no new registration token needed.
Agent is not appearing in the dashboard after running the join command:
CONTROL_PLANE_URL is reachable from the node: curl -k https://<control-plane-ip>docker logs simpleorch-agentNode shows as Disconnected in the dashboard:
docker logs simpleorch-agent --tail 50Worker agents not appearing after manager registration:
-v /var/run/docker.sock:/var/run/docker.sock mount must be present-v //./pipe/docker_engine://./pipe/docker_enginedocker service ls | grep simpleorchsimpleorch-agent container using Docker's standard security mechanisms appropriate for your environmentSimpleOrch is a product of MW Consulting.
Content type
Image
Digest
sha256:1be3cd1d5…
Size
47.1 MB
Last updated
3 months ago
docker pull simpleorch/agent