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

# Install Red5 Pro on Linux, macOS, or Windows Servers

> Install Red5 Pro on Linux, macOS, or Windows, configure your license key, run it as a systemd service, and upgrade from previous versions.

A standalone installation places a single Red5 Pro server on one machine. This is the fastest way to get up and running for development, testing, or a single-origin production setup. Follow the instructions below for your operating system, then continue to the license key and upgrade sections as needed.

## Prerequisites

* **Java 21** (Red5 Pro 14.0.0+) or Java 11 (Red5 Pro 9.0.0–13.x)
* A valid Red5 Pro license key from [account.red5.net](https://account.red5.net/overview)
* A 64-bit operating system
* `unzip` available on the system path

<Warning>
  Red5 Pro only supports 64-bit operating systems. Attempting to run it on a 32-bit system will fail.
</Warning>

***

## Install Red5 Pro

<Tabs>
  <Tab title="Linux (Ubuntu)">
    ### Install dependencies

    Ubuntu 22.04 is the recommended platform for production deployments. Install Java 21 and the required native libraries:

    ```bash theme={null}
    sudo apt-get update
    sudo apt-get install -y openjdk-21-jdk unzip libva2 libva-drm2 libva-x11-2 libvdpau1 jsvc ntp
    ```

    <Note>
      If you are hosting on AWS, choose the Ubuntu 22.04 AMI rather than the Amazon Linux AMI. Amazon Linux may be missing libraries that Red5 Pro depends on.
    </Note>

    For **CentOS 8 Stream**, run the following instead:

    ```bash theme={null}
    sudo yum -y update
    sudo yum -y install java-21-openjdk unzip libva libvdpau
    ```

    Then edit `red5pro/red5.sh` and set `JAVA_HOME="/usr/lib/jvm/jre-21"`.

    ### Download and unzip

    <Steps>
      <Step title="Download Red5 Pro">
        Log in to [account.red5.net](https://account.red5.net/login) and download the server ZIP distribution.
      </Step>

      <Step title="Transfer to your server">
        Copy the ZIP to your server. A common approach is SFTP into the `/tmp` directory:

        ```bash theme={null}
        sftp user@your-server:/tmp
        put red5pro-server-x.x.x.zip
        ```
      </Step>

      <Step title="Create the installation directory">
        ```bash theme={null}
        sudo mkdir /usr/local/red5pro
        ```
      </Step>

      <Step title="Unzip the distribution">
        ```bash theme={null}
        sudo unzip /tmp/red5pro-server-x.x.x.zip -d /usr/local/red5pro
        ```
      </Step>

      <Step title="Add your license key">
        Your `LICENSE.KEY` file is included in the root of the ZIP. It is automatically placed at `/usr/local/red5pro/LICENSE.KEY`. Verify it is present:

        ```bash theme={null}
        ls /usr/local/red5pro/LICENSE.KEY
        ```

        If you need to replace it, copy your key file to the same location and restart the server.
      </Step>

      <Step title="Start Red5 Pro">
        ```bash theme={null}
        cd /usr/local/red5pro
        sudo ./red5.sh
        ```

        To keep the process running after you close your terminal:

        ```bash theme={null}
        sudo ./red5.sh &
        ```
      </Step>

      <Step title="Verify the server is running">
        Open a browser and navigate to `http://localhost:5080`. You should see the Red5 Pro landing page.
      </Step>
    </Steps>

    ### Run as a systemd service

    Running Red5 Pro as a `systemd` service ensures it starts automatically on reboot. This requires `jsvc`, which was installed in the dependencies step above.

    <Steps>
      <Step title="Copy the service file">
        The `red5pro.service` file is included in the root of the server distribution:

        ```bash theme={null}
        sudo cp /usr/local/red5pro/red5pro.service /lib/systemd/system/
        ```

        The service file uses these defaults:

        ```ini theme={null}
        [Unit]
        Description=Red5 Pro
        Wants=network-online.target
        After=network.target network-online.target

        [Service]
        Type=forking
        User=root
        LimitNOFILE=1000000
        Environment=JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
        Environment=RED5_HOME=/usr/local/red5pro
        WorkingDirectory=/usr/local/red5pro
        ExecStart=/usr/local/red5pro/red5pro.sh start
        ExecStop=/usr/local/red5pro/red5pro.sh stop
        ExecReload=/usr/local/red5pro/red5pro.sh restart

        [Install]
        WantedBy=multi-user.target
        ```

        If your `JAVA_HOME` or `RED5_HOME` paths differ from the defaults, edit the file before proceeding.
      </Step>

      <Step title="Set permissions and reload">
        ```bash theme={null}
        sudo chmod 644 /lib/systemd/system/red5pro.service
        sudo systemctl daemon-reload
        ```
      </Step>

      <Step title="Enable and start the service">
        ```bash theme={null}
        sudo systemctl enable red5pro.service
        sudo systemctl start red5pro
        ```
      </Step>

      <Step title="Check status">
        ```bash theme={null}
        sudo systemctl status red5pro
        ```
      </Step>
    </Steps>

    **Common service commands:**

    ```bash theme={null}
    sudo systemctl start red5pro
    sudo systemctl stop red5pro
    sudo systemctl restart red5pro
    sudo systemctl status red5pro
    ```

    <Note>
      When running as a systemd service, console output is suppressed. Server logs are written to `/usr/local/red5pro/log/red5.log`. To tail logs after starting:

      ```bash theme={null}
      sudo systemctl start red5pro && tail -f /usr/local/red5pro/log/red5.log
      ```
    </Note>

    ### OpenSSL compatibility workaround

    If you encounter OpenSSL or `libcrypto` compatibility errors at startup, open `conf/network.properties` and uncomment this line:

    ```properties theme={null}
    crypto.override=SUNJCE
    ```

    Then restart Red5 Pro for the change to take effect.
  </Tab>

  <Tab title="macOS">
    On macOS, Red5 Pro is distributed as a Docker image. Install Docker Desktop if you have not already, then pull and run the server:

    ```bash theme={null}
    docker pull red5pro/server
    docker run -p 5080:5080 -p 443:443 -p 1935:1935 -p 8554:8554 \
      -p 40000-65535:40000-65535/udp \
      red5pro/server
    ```

    You can find the full image documentation and available tags on the [Red5 Pro Docker Hub](https://hub.docker.com/r/red5pro/server).

    <Info>
      For a 30-day trial, register an account at [account.red5.net](https://account.red5.net/login). Trial licenses support up to 10 concurrent connections.
    </Info>
  </Tab>

  <Tab title="Windows">
    <Warning>
      Red5 Pro is supported on Windows for development purposes. For production WebRTC workloads, Linux is strongly recommended due to CPU and memory performance differences.
    </Warning>

    ### Install dependencies

    1. Download and install [Java SE Development Kit 21](https://www.oracle.com/java/technologies/downloads/#jdk21-windows).
    2. Set the `JAVA_HOME` environment variable:
       * Open **System Properties → Advanced System Settings → Environment Variables**
       * Under **System variables**, click **New**
       * Variable name: `JAVA_HOME`
       * Variable value: the path to your JDK, for example `C:\Program Files\Java\jdk-21`
    3. Install [Microsoft Visual C++ Redistributables](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist) — required for WebRTC support.

    ### Install and start

    <Steps>
      <Step title="Download Red5 Pro">
        Log in to [account.red5.net](https://account.red5.net/login) and download the server ZIP.
      </Step>

      <Step title="Extract the distribution">
        Copy the ZIP to your chosen directory (for example, `C:\Program Files`) and extract it. Rename the extracted folder to `red5pro` for convenience.
      </Step>

      <Step title="Verify your license key">
        Confirm that `C:\Program Files\red5pro\LICENSE.KEY` exists. If it is missing, download it from your [account overview page](https://account.red5.net/overview) and place it in the root of the installation directory.
      </Step>

      <Step title="Start Red5 Pro">
        Double-click `red5.bat`. A Command Prompt window opens and displays startup logs. Do **not** run it as administrator — simply double-click the file.
      </Step>

      <Step title="Verify the server is running">
        Open a browser and navigate to `http://localhost:5080`.
      </Step>
    </Steps>

    To stop the server, either close the Command Prompt window or double-click `red5-shutdown.bat`.

    <Note>
      If the Command Prompt window closes immediately when you run `red5.bat`, open the file in a text editor and add `pause` on the final line. This keeps the window open so you can read any error messages.
    </Note>

    ### Required ports on Windows

    Open these ports on both the Windows Firewall and your cloud security group (if applicable):

    | Port            | Purpose                                    |
    | --------------- | ------------------------------------------ |
    | 5080            | HTTP / WebSocket for WebRTC                |
    | 443             | HTTPS / secure WebSocket                   |
    | 1935            | RTMP                                       |
    | 8554            | RTSP                                       |
    | 3939            | Windows Remote Desktop (cloud-hosted only) |
    | 40000–65535 UDP | WebRTC ICE                                 |
  </Tab>
</Tabs>

***

## License key

Red5 Pro will not start without a valid license key. Your `LICENSE.KEY` file is bundled in the server ZIP and is automatically placed in the root of the installation directory. You can also view and download your key from the [account overview page](https://account.red5.net/overview).

If you replace the license key file, restart Red5 Pro for the new key to take effect.

<Note>
  In an autoscaling deployment, the `LICENSE.KEY` file must be baked into the AMI or image used for node provisioning. See the Stream Manager documentation for details.
</Note>

***

## Upgrade from a previous version

<Warning>
  Do **not** unzip the new distribution into the same directory as the running server. Unzip it to a separate location first.
</Warning>

<Steps>
  <Step title="Copy the new distribution to your server">
    Upload the new ZIP to `/tmp` or another staging directory.
  </Step>

  <Step title="Unzip to a separate directory">
    ```bash theme={null}
    sudo unzip /tmp/red5pro-server-x.x.x.zip -d /usr/local/
    ```
  </Step>

  <Step title="Copy custom web applications">
    If you have custom apps in `red5pro/webapps/`, copy them from the old installation to the new one.
  </Step>

  <Step title="Re-apply configuration changes">
    Do **not** copy configuration files wholesale. Instead, open each modified config in the old installation and apply the same changes to the corresponding file in the new distribution. Common files to check:

    * `conf/red5.properties` — SSL settings, port overrides
    * `conf/red5-common.xml` — FLV-to-MP4 and S3 storage
    * `conf/cluster.xml` — clustering
    * `conf/webrtc-plugin.properties` — WebRTC settings
    * `conf/simple-auth-plugin.properties` and `simple-auth-plugin.credentials`
    * `webapps/live/WEB-INF/red5-web.xml`
    * `webapps/api/WEB-INF/red5-web.properties`
  </Step>

  <Step title="Stop the old server">
    ```bash theme={null}
    sudo systemctl stop red5pro
    ```
  </Step>

  <Step title="Swap directories">
    ```bash theme={null}
    sudo mv /usr/local/red5pro /usr/local/red5pro-old
    sudo mv /usr/local/red5pro-x.x.x /usr/local/red5pro
    ```
  </Step>

  <Step title="Update Java if upgrading to v14+">
    If you are upgrading to v14.0.0 or later and were previously on v13.x, update `JAVA_HOME` in the service file to point to Java 21:

    ```bash theme={null}
    sudo cp /usr/local/red5pro/red5pro.service /lib/systemd/system/
    sudo systemctl daemon-reload
    ```
  </Step>

  <Step title="Start and verify">
    ```bash theme={null}
    sudo systemctl start red5pro
    ```

    Open `http://your-server-ip:5080` and confirm the new version number appears in the top-left corner.
  </Step>
</Steps>

**Java version requirements by release:**

| Red5 Pro version | Required Java |
| ---------------- | ------------- |
| 14.0.0 and later | Java 21       |
| 9.0.0–13.x       | Java 11       |
| 8.x and earlier  | Java 8        |

***

## Reduce server footprint by disabling unneeded OS services

After installing Red5 Pro on Ubuntu or Debian, you can disable background OS services that are not needed to improve performance and reduce attack surface. Verify each service against your organization's requirements before disabling.

```bash theme={null}
sudo systemctl disable --now unattended-upgrades
sudo systemctl disable --now fwupd-refresh.timer
sudo systemctl disable --now apt-daily.timer
sudo systemctl disable --now apt-daily-upgrade.timer
sudo systemctl disable --now snapd.snap-repair.timer
sudo systemctl disable --now apport-autoreport.timer
sudo systemctl disable --now motd-news.timer
sudo systemctl disable --now update-notifier-download.timer
sudo systemctl disable --now update-notifier-motd.timer
sudo systemctl disable --now ua-timer.timer
sudo systemctl disable --now snapd
```

<Warning>
  Disabling `snapd` will prevent Snap packages from running. If you installed `certbot` via Snap for SSL, leave `snapd` enabled or use an alternative certbot installation method.
</Warning>
