Control devices over the internet

Remote Server

A lightweight Node.js server that runs on a computer at a remote location so Roku Dev Studio can control Roku devices over the network — no physical access needed, and you don't have to be on the same LAN.

Architecture

Desktop App
(Your Computer)
Remote Server
Roku Device
(Remote Location)
Shared stack: The desktop app and remote server both use the same roku-dev-studio-api library for discovery and ECP. Local traffic talks to the Roku directly; remote traffic goes through a relay client hosted on the server.

1. Run the relay server

Option A — from this repo

git clone https://github.com/paramount-engineering/roku-dev-studio.git
cd roku-dev-studio
npm install
npm run remote-server     # listens on port 4951 by default

Option B — from npm

npm install -g roku-dev-studio-remote-server
roku-remote-server        # or: roku-remote-server 4951

Package: npmjs.com/package/roku-dev-studio-remote-server

2. Configure the network

3. Connect from the desktop app

Capabilities

Internet Bridge

All ECP commands work through the server

Device Discovery

Automatically finds devices on the remote network

Telnet Relay

Console access (ports 8085 & 8080) via WebSocket

File Upload

Sideload dev apps from your desktop to remote devices

Swagger API

Interactive API documentation, powered by Swagger/OpenAPI 3.0, at http://localhost:4951/api-docs.

Remote server Swagger UI at /api-docs

Running as a service

Starter service files ship with the package for all three platforms:

Full step-by-step service setup, the complete API endpoint reference, and security considerations are in the remote server package README.