Deploying to a Gateway

You compiled. Now you put the artifacts on the gateway. Two paths, pick one.

Path A: ship the whole bundle

The simplest deploy. Copy bundle.tar.gz to the gateway and let it pick up everything in one shot.

scp out/bundle.tar.gz [email protected]:/etc/scadable/bundle.tar.gz
ssh [email protected] sudo systemctl restart scadable-gateway

The gateway extracts the bundle, finds the new driver configs, and starts the right driver subprocesses.

Path B: ship individual driver configs

Useful when you only changed one device and do not want to push the whole bundle. Copy the YAML to the device's config directory.

scp out/drivers/line-sensor.yaml \
    [email protected]:/etc/scadable/devices/line-sensor/config.yaml

The driver subprocess for that device is restarted automatically by the gateway watcher (the watcher polls every 5 seconds for config changes).

Confirm it worked

SSH into the gateway and check the service:

sudo systemctl status scadable-gateway

Tail the logs:

sudo journalctl -u scadable-gateway -f

You should see lines like:

gateway: loaded driver config /etc/scadable/devices/line-sensor/config.yaml
gateway: spawned driver subprocess for line-sensor (modbus_tcp, host=192.168.1.50)
driver[line-sensor]: connected
driver[line-sensor]: poll ok (registers=3, latency=12ms)

Or in the dashboard, the device card flips to online and telemetry starts streaming on the topic chart.

When deploys fail

SymptomLikely causeFix
Driver shows no driver after deployYAML is for a protocol the gateway does not implement yetCheck protocol against Modbus; other protocols are preview
Driver loops on connection refusedWrong host or firewallping and nc -vz <host> <port> from the gateway
Driver loops on timeoutWrong slave IDCheck device DIP switches or vendor config tool
Driver shows wrong valuesWrong scale or dtypeSee the Modbus page on scaling and dtype

Production tip

For fleets, do not scp from your laptop. Push to a central artifact store (S3, GCS, internal Nexus) and let the gateway pull. The dashboard's deploy flow does this automatically when you click Deploy in a project.

Next steps

  • Modbus: tune your device config when telemetry is wrong
  • Error Catalog: for compile-time problems