Outbound-only connection
Works behind firewalls, NAT, home networks, and corporate proxies. No inbound ports needed.
The Reoclo Runner is a small agent that lives on your server and gives Reoclo a secure way to deploy, observe, and operate it — without opening a single inbound port.
Install it once with a one-line command. It opens an outbound WebSocket to Reoclo and stays connected. When you deploy from the dashboard, Reoclo sends instructions through that connection; the Runner executes them locally, streams output back, and keeps health and metrics flowing in real time.
No SSH keys to rotate. No bastion hosts. No firewall exceptions. The server connects out; Reoclo talks in. If the network flaps, the Runner reconnects itself. If a new version ships, it upgrades itself. You mostly forget it’s there.
This page walks through what the Runner gives you as a tenant. For installation steps, see Install the Runner.
Works behind firewalls, NAT, home networks, and corporate proxies. No inbound ports needed.
Every build command and container output streams back to the dashboard in real time as it runs.
Secrets are encrypted at rest and delivered only when a deployment runs — never stored on the server.
Any script from your Saved Scripts library can be executed on any Runner-connected server, on demand.
CPU, memory, disk, and network usage (IPv4 + IPv6) refreshed on the heartbeat interval.
Tail any container’s logs from the dashboard with configurable retention.
OS, kernel, Docker version, listening ports, and firewall rules — reported automatically every 60 seconds.
Heartbeat-backed “active” / “unreachable” state that updates within seconds of a network change.
Open a real PTY-backed shell into any container straight from the dashboard.
Start, stop, restart, inspect, and prune containers from the dashboard UI.
Exponential backoff with linear fast-retries. Network flaps self-heal without manual intervention.
The Runner pulls and installs new versions automatically when they ship — no manual SSH required.
The Runner is a background process on your server that maintains a single outbound WebSocket connection to Reoclo. That connection is the entire control plane — no SSH sessions, no inbound HTTP API, no agent pull loop.
Here’s what happens when you click Deploy in the dashboard:
Between deploys the Runner is still busy: health heartbeats every few seconds, system metrics pushed on an interval, and container logs tailed so they appear in the dashboard. If the connection ever drops — laptop closes, modem resets, ISP blip — the Runner reconnects with exponential backoff and picks up where it left off.
You don’t manage any of this. You just see the dashboard update.
sequenceDiagram actor User as You participant Dashboard participant Reoclo participant Runner as Runner (your server) Note over Runner: WebSocket stays open<br/>(outbound only) Runner-->>Reoclo: heartbeat + metrics + logs Reoclo-->>Dashboard: live health & metrics User->>Dashboard: click Deploy Dashboard->>Reoclo: enqueue deployment Reoclo->>Runner: deploy command Runner->>Runner: git pull · build · start Runner-->>Reoclo: stream stdout/stderr Reoclo-->>Dashboard: live output