Skip to main content
1

Verify prerequisites

Before you begin, make sure the following tools are available on your machine:
ToolPurpose
makeRuns build and deploy targets
zipPackages the app into a Roku-compatible archive
curlUploads the ZIP to the Roku device
rm, grep, sedUsed internally by the Makefile
Verify each tool is installed:
make --version
zip --version
curl --version
On Windows, install these tools via Chocolatey or use Git Bash, which includes make, zip, and curl out of the box.
choco install make zip curl
2

Enable developer mode on your Roku

Developer mode must be active on your Roku device before you can sideload apps.
  1. On your Roku remote, press the following sequence: Home × 3 → Up × 2 → Right → Left → Right → Left → Right
  2. A Developer Settings screen appears. Select Enable Installer and set a password.
  3. Note the IP address shown on screen — you’ll use it as ROKU_IP in later steps.
Your Roku must be on the same local network as your development machine. The sideload process uses the Roku’s local HTTP server at http://<ROKU_IP>/plugin_install.
3

Get the project

Clone or download the GlobalTV Roku repository to your machine:
git clone https://github.com/gianfranco25-pro/GlobalTV_Roku.git
cd GlobalTV_Roku
The project structure looks like this:
manifest              ← Channel metadata (version 1.0.6, splash, resolutions)
Makefile              ← All build and deploy targets
source/               ← BrightScript entry point and utilities
components/           ← SceneGraph screens, tasks, ads, overlays
images/               ← Icons and splash screen assets
out/                  ← Build output (created by make zip)
4

Build the ZIP

Package the app into a Roku-compatible ZIP archive:
make zip
Expected output:
>>> [zip] Empaquetando GlobalTV v1.0.6...
>>> [zip] OK → out/GlobalTV.zip
The ZIP is created at out/GlobalTV.zip. It contains the manifest, source/, components/, and images/ directories — with secrets, build artifacts, and editor files excluded automatically.
5

Sideload to your Roku

Push the ZIP directly to your Roku device. Replace x.x.x.x with your Roku’s IP address and xxxx with the developer password you set in step 2:
make install ROKU_IP=x.x.x.x ROKU_PASS=xxxx
The Makefile builds the ZIP first (if needed), then uploads it via HTTP:
>>> [install] Sideload en http://x.x.x.x...
>>> [install] HTTP 200
>>> [install] Resultado: Install Success
>>> [install] Listo. Revisar el Roku.
The GlobalTV channel launches automatically on your Roku after a successful install.
The full install response from the Roku is saved to out/_install_response.html. If installation fails, open that file in a browser for the detailed error from the Roku Developer Application Installer.
6

Verify with make check

Run the built-in certification checker to confirm the project is in good shape:
make check
Expected output:
>>> [check] Verificando manifest para certificación Roku 2026...

  ✓ OK:    title=
  ✓ OK:    major_version=
  ✓ OK:    minor_version=
  ✓ OK:    build_version=
  ✓ OK:    mm_icon_focus_hd=
  ✓ OK:    mm_icon_focus_fhd=
  ✓ OK:    splash_screen_fhd=
  ✓ OK:    splash_screen_hd=
  ✓ OK:    splash_screen_sd=
  ✓ OK:    ui_resolutions=fhd
  ✓ OK:    rsg_version=1.2
  ✓ OK:    supports_input_launch=1
  ✓ OK:    splash_rsg_optimization=1
  ✓ OK:    splash_color=
  ✓ OK:    splash_min_time=

  → manifest OK — todos los campos de certificación presentes.

>>> [check] COMPLETO.
make check validates the manifest fields required for Roku certification, checks that required images exist, scans for prohibited patterns (eval(), file://), and confirms deep link and beacon requirements. Use it as a quick sanity check during development — it is not a substitute for Roku’s official certification review.

Next steps

Requirements

Full details on system, device, backend, and network requirements

Makefile targets

All available build, packaging, and screenshot targets

AppConstants

Configure endpoints, timeouts, and feature flags

Architecture overview

Understand how screens, tasks, and state fit together

Build docs developers (and LLMs) love