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 aarch64 or x86_64 box
  • 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 bash

This 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-gateway

Your 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-project

Define 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-id

SSH: 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