> ## Documentation Index
> Fetch the complete documentation index at: https://globaliptv.misidev.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Requirements

> Everything you need before building and sideloading the GlobalTV Roku channel.

<CardGroup cols={2}>
  <Card title="Hardware" icon="tv">
    A physical Roku device with developer mode enabled. Developer mode is required for sideloading; it cannot be done on a software emulator.
  </Card>

  <Card title="Software" icon="terminal">
    `make`, `zip`, and `curl` — standard Unix tools used by the Makefile to build and deploy the channel.
  </Card>

  <Card title="Network" icon="wifi">
    Your Roku and development machine must be on the same local network (LAN). The Makefile communicates with the Roku over HTTP on port 80.
  </Card>

  <Card title="Credentials" icon="key">
    A Roku developer password, set when you enable developer mode. Required for every `make install` and `make pkg` invocation.
  </Card>
</CardGroup>

***

## Hardware: Roku device in developer mode

You need a physical Roku device. Developer mode is activated directly on the device using a remote key sequence.

**To enable developer mode:**

1. On your Roku remote, press the following sequence:

   ```text theme={null}
   Home × 3  →  Up × 2  →  Right  Left  Right  Left  Right
   ```

2. A **Developer Settings** screen appears on the TV. Select **Enable Installer and Restart**.

3. After reboot, the screen displays your Roku's local IP address and the developer web portal URL (e.g., `http://192.168.1.45`). You are prompted to create a developer password.

4. Note down the **IP address** and the **password** — these are your `ROKU_IP` and `ROKU_PASS` values.

<Warning>
  Enabling developer mode disables automatic channel updates from the Roku Channel Store for sideloaded channels. Re-enter the key sequence and select **Disable Installer** when you no longer need developer access.
</Warning>

***

## Software: make, zip, curl

All three tools must be available in your terminal's PATH.

<Tabs>
  <Tab title="macOS">
    `curl` ships with macOS. Install `make` and `zip` via Homebrew:

    ```bash theme={null}
    brew install make zip curl
    ```

    Alternatively, `make` and `curl` are included with Xcode Command Line Tools:

    ```bash theme={null}
    xcode-select --install
    ```

    Verify installation:

    ```bash theme={null}
    make --version && zip --version && curl --version
    ```
  </Tab>

  <Tab title="Linux">
    **Debian / Ubuntu:**

    ```bash theme={null}
    sudo apt-get update && sudo apt-get install -y make zip curl
    ```

    **Fedora / RHEL / CentOS:**

    ```bash theme={null}
    sudo dnf install make zip curl
    ```

    **Arch Linux:**

    ```bash theme={null}
    sudo pacman -S make zip curl
    ```

    Verify installation:

    ```bash theme={null}
    make --version && zip --version && curl --version
    ```
  </Tab>

  <Tab title="Windows">
    The Makefile uses Unix commands (`rm`, `grep`, `sed`). You have two options:

    **Option A — Git Bash (recommended):**

    Download and install [Git for Windows](https://git-scm.com/downloads). Git Bash includes `make`, `zip`, and `curl`. Run all `make` commands from Git Bash.

    **Option B — Chocolatey:**

    ```bash theme={null}
    choco install make zip curl
    ```

    Run from a terminal with these tools on the PATH. Note that some Makefile targets that rely on `rm`, `grep`, or `sed` may still require Git Bash even with Chocolatey.

    <Note>
      PowerShell is not supported without significant Makefile adaptation. Git Bash is the path of least resistance on Windows.
    </Note>
  </Tab>
</Tabs>

***

## Network: same LAN, Roku IP address

The `make install`, `make pkg`, and `make screenshot` targets communicate with your Roku over HTTP. Both devices must be reachable on the same local network.

**Find your Roku's IP address:**

* It is displayed on the TV when you enable developer mode.
* Alternatively, go to **Settings → Network → About** on the Roku home screen.

**Pass the IP to make:**

```bash theme={null}
make install ROKU_IP=192.168.1.45 ROKU_PASS=yourpassword
```

<Info>
  If your router uses DHCP, the Roku's IP address can change between sessions. Assign a static IP or DHCP reservation in your router settings to keep the address stable.
</Info>

***

## Credentials: Roku developer password

You set the developer password when you enable developer mode for the first time. It is used as HTTP basic auth credentials (`rokudev:<password>`) for all requests to the plugin installer.

* **Username:** always `rokudev` (fixed by Roku)
* **Password:** the value you set during developer mode activation (`ROKU_PASS`)

To reset the password, re-enter the developer mode key sequence on the Roku and follow the prompts.

***

## Optional: signing key for `make pkg`

The `make pkg` target generates a signed `.pkg` file for submission to the Roku Channel Store. This requires a signing key generated on the Roku device itself.

**Generate a signing key with `genkey`:**

1. Connect to the Roku over Telnet (port 8080):

   ```bash theme={null}
   telnet 192.168.1.45 8080
   ```

2. At the BrightScript prompt, run:

   ```text theme={null}
   genkey
   ```

3. The command outputs a **DevID** and a **signing password**. Save both. The signing password becomes your `SIGN_PASSWORD`.

**Use it with make:**

```bash theme={null}
make pkg ROKU_IP=192.168.1.45 ROKU_PASS=yourpassword SIGN_PASSWORD=yoursigningpassword
```

The signed package is saved to:

```text theme={null}
out/GlobalTV-1.0.7.pkg
```

<Warning>
  The signing key is tied to the specific Roku device where `genkey` was run. Packages signed with one device's key cannot be verified with a different device's key. Keep the `SIGN_PASSWORD` secure — do not commit it to source control.
</Warning>
