# Getting Started with RHEL

RHEL에서 OvenMediaEngine Enterprise를 시작하려면 아래 [전제 조건](#undefined)을 확인한 후 [설치 방법](#undefined-2)을 따라 진행하십시오.

## 전제 조건

### OS 요구사항

OvenMediaEngine Enterprise를 설치하려면 아래 RHEL 버전 중 하나가 필요합니다.

* RHEL 8
* RHEL 9

## 설치  경로

기본적으로 OvenMediaEngine Enterprise는 다음 경로에 설치 됩니다.

* 설치 경로: `/usr/share/ovenmediaengine`
* 로그 경로: `/var/log/ovenmediaengine`

## 설치 방법

### `rpm` Repository를 사용하여 설치

새로운 서버에 OvenMediaEngine Enterprise를 처음 설치 할 때, `rpm` Repository를 먼저 설정해야 합니다. 그 이후 Repository를 통해 지속적인 설치 및 업데이트를 할 수 있습니다.

#### OvenMediaEngine 설치용 `rpm` Repository 설정

Repository를 설정하려면 유효한 License Key가 필요합니다.

{% code overflow="wrap" fullWidth="false" %}
```bash
VALID_LICENSE_KEY="Your.License.Key"
​
echo -e "[ovenmediaengine]\nname=OvenMediaEngine Enterprise\nbaseurl=https://buildkite:$VALID_LICENSE_KEY@packages.buildkite.com/ovenmediaengine/rhel/rpm_any/rpm_any/\$basearch\nenabled=1\nrepo_gpgcheck=1\ngpgcheck=0\ngpgkey=https://buildkite:$VALID_LICENSE_KEY@packages.buildkite.com/ovenmediaengine/rhel/gpgkey\npriority=1" | sudo tee /etc/yum.repos.d/ovenmediaengine.repo
```
{% endcode %}

#### 패키지 설치

{% tabs %}
{% tab title="최신 버전" %}
다음 명령어들을 통해 최신 버전을 설치 할 수 있습니다.

```bash
sudo dnf install ovenmediaengine
```
{% endtab %}

{% tab title="특정 버전" %}
특정 버전의 OvenMediaEngine Enterprise를 설치하려면, 먼저 Repository에서 사용 가능한 버전을 확인 하세요.

```bash
# List the available versions
sudo dnf list ovenmediaengine --showduplicates | sort -r
ovenmediaengine.x86_64                0.18.3.3-1                 ovenmediaengine
...
```

원하는 버전을 선택 한 후 설치하세요.

```bash
VERSION=0.18.3.3-1
sudo dnf install ovenmediaengine-$VERSION
```
{% endtab %}
{% endtabs %}

{% hint style="success" %}
설치가 완료되면 [설치 후 단계](#undefined-12)를 확인해 주세요.
{% endhint %}

#### 패키지 삭제

다음 명령어를 통해 OvenMediaEngine Enterpirse를 삭제 할 수 있습니다.

```bash
sudo dnf remove ovenmediaengine
```

### 패키지 파일로 설치

#### 다운로드

OvenMediaEngine Enterprise는 `rpm` 패키지로 제공됩니다. OME Enterprise 팀으로부터 `rpm` 패키지를 다운로드 받을 수 있는 링크를 전달 받았다면, 해당 파일을 다운로드 한 후 아래 가이드를 따라 설치 및 실행하십시오.

#### 설치

다음 명령어를 통해 OvenMediaEngine Enterpirse를 설치 할 수 있습니다.

```bash
sudo rpm -Uvh <ovenmediaengine-enterprise-package>.rpm
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:ovenmediaengine-<version>        ################################# [100%]
​
# If you are upgrading, please run "systemctl daemon-reload"
sudo systemctl daemon-reload
```

{% hint style="info" %}
**`/usr/share/ovenmediaengine`** 경로에 이미 OvenMediaEngine이 설치되어 있는 경우 자동 업그레이드 되며, 기존 설정 파일 또한 유지됩니다.
{% endhint %}

{% hint style="success" %}
설치가 완료되면 [설치 후 단계](#undefined-12)를 확인해 주세요.
{% endhint %}

#### 삭제

다음 명령어를 통해 OvenMediaEngine Enterpirse를 삭제 할 수 있습니다.

```bash
sudo rpm -e ovenmediaengine
```

{% hint style="info" %}
수정 된 각종 설정 파일들은 수동으로 삭제해야 합니다.
{% endhint %}

## 설치 후 단계

### License Key 등록

OvenMediaEngine을 실행하기 전, 유효한 License Key를 등록해야 합니다.

```bash
echo 'Your.License.Key' | sudo tee /usr/share/ovenmediaengine/conf/License
```

### Host IP 설정

Web Console (ovenstudio)을 원활하게 사용하기 위해서는 서버의 Host IP를 설정해야 합니다.

자세한 설정 방법은 [여기](../../web-console/getting-started-with-web-console)를 확인해 주세요.

```bash
echo -e '\nOME_HOST_IP=Your.HOST.IP.Address' | sudo tee -a /usr/share/ovenmediaengine/ovenstudio/system.env
```

### 실행

다음 명령어들을 통해 OvenMediaEngine Enterprise를 실행 할 수 있습니다.

```bash
# Start OvenMediaEngine
sudo systemctl start ovenmediaengine
# Start Web Console (OvenStudio)
sudo systemctl start ovenstudio
# Start OvenMediaEngine Delivery Module
sudo systemctl start ovenmediaengine-delivery

# If you want to auto-start on boot
sudo systemctl enable ovenmediaengine
sudo systemctl enable ovenstudio
sudo systemctl enable ovenmediaengine-delivery
```

## 기본 설정 포트

OvenMediaEngine Enterprise는 기본적으로 아래 나열된 포트를 사용하므로 방화벽 설정이 필요합니다.

### OvenMediaEngine

<table><thead><tr><th width="200">Port</th><th>Purpose</th></tr></thead><tbody><tr><td>1935/TCP</td><td>RTMP Input</td></tr><tr><td>9999/UDP</td><td>SRT Input</td></tr><tr><td>4000/UDP</td><td>MPEG-2 TS Input</td></tr><tr><td>9000/TCP</td><td>Origin Server (OVT)</td></tr><tr><td><p>3333/TCP</p><p>3334/TLS</p></td><td><p>Low Latency HLS (LLHLS) Streaming</p><p><em><mark style="color:red;">* Streaming over non-TLS is not allowed with modern browsers.</mark></em></p></td></tr><tr><td><p>3333/TCP</p><p>3334/TLS</p></td><td>WebRTC Signaling (both ingest and streaming)</td></tr><tr><td>3478/TCP</td><td>WebRTC TCP relay (TURN Server, both ingest and streaming)</td></tr><tr><td>10000 - 10009/UDP</td><td>WebRTC Ice candidate (both ingest and streaming)</td></tr><tr><td><p>20080/TCP</p><p>20081/TLS</p></td><td>Thumbnail Extraction</td></tr></tbody></table>

### Web Console (OvenStudio)

<table><thead><tr><th width="200">Port</th><th>Purpose</th></tr></thead><tbody><tr><td>8080/TCP</td><td>Running Web Console</td></tr></tbody></table>

### 방화벽 설정 예제

다음 예제와 같이 방화벽을 열 수 있습니다.

```bash
$ sudo firewall-cmd --add-port=3333/tcp --permanent
$ sudo firewall-cmd --add-port=3334/tcp --permanent
$ sudo firewall-cmd --add-port=1935/tcp --permanent
$ sudo firewall-cmd --add-port=9999/udp --permanent
$ sudo firewall-cmd --add-port=4000/udp --permanent
$ sudo firewall-cmd --add-port=3478/tcp --permanent
$ sudo firewall-cmd --add-port=9000/tcp --permanent
$ sudo firewall-cmd --add-port=10000-10009/udp --permanent
$ sudo firewall-cmd --add-port=8080/tcp --permanent
```
