Your First Gateway in 3 Minutes
Register a gateway, install the binary, and watch it come online. Three steps, three minutes.
Prerequisites
- A Linux machine: Raspberry Pi, Ubuntu server, Debian, any
aarch64orx86_64box - An account on dashboard.scadable.com
ESP32 and RTOS targets are coming soon. For now, Scadable runs on any Linux machine with systemd.
Step 1: Create a gateway on the dashboard
Log into dashboard.scadable.com. If you don't have a project yet, create one (two clicks).
Inside your project, click Add Gateway. Give it a name (e.g. "factory-floor-1"). You'll get an install command with a registration code baked in. Copy it.
Step 2: Install on your machine
SSH into your Linux machine and paste the install command:
curl -sSL https://get.scadable.com/install.sh | sudo REGISTRATION_CODE=your_code_here bashThis does everything:
- Downloads the Scadable gateway binary for your architecture
- Enrolls with the cloud and gets mTLS certificates automatically
- Registers as a systemd service that starts on boot
- Connects to MQTT and reports online
Verify it's running:
sudo systemctl status scadable-gatewayYour gateway should now show as online in the dashboard.
Step 3: Define your devices
On your development machine (not the gateway), install the SDK and scaffold a project:
pip install scadable-sdk
scadable init linux my-project
cd my-projectDefine a device in devices/sensor.py:
from scadable import Device, Register, modbus_tcp, every, SECONDS
class TempSensor(Device):
id = "temp-1"
connection = modbus_tcp(host="192.168.1.100", port=502, slave=1)
poll = every(5, SECONDS)
registers = [
Register(40001, "temperature", unit="C", scale=0.1),
Register(40002, "pressure", unit="bar", scale=0.01),
]Compile and push to the gateway:
scadable compile
scp out/bundle.tar.gz admin@your-gateway-ip:/etc/scadable/The gateway picks up the device config and starts polling. Telemetry flows to the cloud automatically.
Verify it works
Dashboard: your gateway shows as online at dashboard.scadable.com. Click into it to see status, uptime, and connected devices.
API: query your telemetry programmatically:
curl -H "X-API-Key: your_api_key" \
https://api.scadable.com/v1/gateways/your-gateway-idSSH: access your gateway remotely through the browser. No VPN, no port forwarding.
What you got without building anything
All of this is running the moment the gateway connects:
- mTLS certificates that enroll automatically and rotate before they expire
- Encrypted MQTT from gateway to cloud, no plaintext ever
- Offline buffering: if the internet drops, data queues locally and forwards on reconnect
- Audit log: every connection, disconnection, and command is tracked
- Fleet dashboard: status, uptime, and health across all your gateways
- Remote SSH: shell into any gateway from the browser
- OTA updates: push new firmware to your fleet with automatic rollback
Next steps
- How Scadable Moves Your Data: understand the full device-to-cloud pipeline
- SDK Reference: all device types, protocols, triggers, and controller logic
- API Reference: REST API for telemetry, commands, and fleet management
Updated about 2 hours ago
