웹사이트 검색

CentOS 7에 Streama를 설치하는 방법


이 페이지에서

  1. 1단계 - Streama 설치

Streama는 무료 오픈 소스 미디어 스트리밍 애플리케이션입니다. Netflix의 자체 호스팅 대안입니다. 쉬운 드래그 앤 드롭 미디어 관리, 아름다운 미디어 플레이어, 라이브 동기화 시청, 다중 사용자, 자막 및 재개 기능 등과 같은 다양한 기능이 있습니다.

이 튜토리얼에서는 CentOS 7 서버에 Streama를 설치합니다.

전제 조건

  • 최소 CentOS 7 서버
  • 루트 권한\n

1단계 - Streama 설치

기존 패키지와 리포지토리가 업데이트되도록 패키지를 설치하기 전에 서버를 업데이트하는 것이 좋습니다.

yum -y update

OpenJDK 또는 Oracle JAVA 모두에 Streama를 설치할 수 있습니다. 이 자습서에서는 최신 버전의 Oracle Java를 서버에 설치합니다. 동일하게 다음 명령을 실행하십시오.

wget --no-cookies --no-check-certificate --header "Cookie:oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.rpm"

wget이 설치되어 있지 않은 경우 yum -y install wget을 실행하여 wget을 설치할 수 있습니다. 이제 다음 명령을 사용하여 다운로드한 RPM을 설치합니다.

yum -y localinstall jdk-8u131-linux-x64.rpm

다음 명령을 실행하여 Java가 설치되어 있는지 확인할 수 있습니다.

java -version

위의 명령은 설치한 JAVA 버전을 인쇄합니다. 아래와 비슷한 출력이 표시되어야 합니다.

[ ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

Java를 성공적으로 설치했으므로 이제 다음 링크를 사용하여 Streama War 패키지를 다운로드할 수 있습니다.

wget https://github.com/dularion/streama/releases/download/v1.1/streama-1.1.war

War 패키지 또는 웹 아카이브에는 웹 프로젝트의 모든 파일이 포함되어 있습니다. Streama 다운로드 페이지를 사용하여 최신 버전의 Streama에 대한 링크를 항상 확인할 수 있습니다.

war 파일의 이름을 바꾸고 다음 명령을 사용하여 안전한 위치로 이동합니다.

mkdir /opt/streama
mv streama-1.1.war /opt/streama/streama.war

이제 애플리케이션을 즉시 시작할 수 있습니다. 다음 명령을 실행하십시오.

java -jar /opt/streama/streama.war

Ctrl + C를 눌러 실행을 중지합니다. 다음을 입력하여 Streama에 업로드된 미디어 파일을 저장할 새 디렉터리를 만듭니다.

mkdir /opt/streama/media

다음 명령을 사용하여 디렉토리에 적절한 권한을 제공하십시오.

chmod 664 /opt/streama/media

이제 환경이 준비되었으므로 Streama 서버를 실행할 systemd 서비스를 만들 수 있습니다. Streama를 서비스로 실행하면 서버가 백그라운드에서 실행됩니다. 시스템 재부팅 및 프로세스 실패 시 자동으로 시작됩니다. 새 systemd 서비스 파일을 생성하려면 다음을 입력하십시오.

nano /etc/systemd/system/streama.service

이제 텍스트 파일에 다음 줄을 추가합니다.

[Unit]
Description=Streama Server
After=syslog.target
After=network.target

[Service]
User=root
Type=simple
ExecStart=/bin/java -jar /opt/streama/streama.war
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Streama

[Install]
WantedBy=multi-user.target

파일을 저장하고 편집기를 종료합니다. 이제 다음 명령을 사용하여 Streama 서버를 직접 실행할 수 있습니다.

systemctl start streama

응용 프로그램이 부팅 시 자동으로 시작되도록 하려면 다음 명령을 실행합니다.

systemctl enable streama

서비스 상태를 확인하려면 다음 명령을 실행하십시오.

systemctl status streama

다음 출력이 표시될 수 있습니다.

[ ~]# systemctl status streama
? streama.service - Streama Server
Loaded: loaded (/etc/systemd/system/streama.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2017-06-22 19:02:32 UTC; 19s ago
Main PID: 20053 (java)
CGroup: /system.slice/streama.service
??20053 /bin/java -jar /opt/streama/streama.war

Jun 22 19:02:32 ip-172-31-0-204 systemd[1]: Started Streama Server.
Jun 22 19:02:32 ip-172-31-0-204 systemd[1]: Starting Streama Server...
Jun 22 19:02:37 ip-172-31-0-204 Streama[20053]: INFO streama.Application - Starting Application on ip-172-31-0-204...in /)
Jun 22 19:02:37 ip-172-31-0-204 Streama[20053]: DEBUG streama.Application - Running with Spring Boot v1.3.8.RELEAS...LEASE
Jun 22 19:02:37 ip-172-31-0-204 Streama[20053]: INFO streama.Application - The following profiles are active: production
Jun 22 19:02:47 ip-172-31-0-204 Streama[20053]: Configuring Spring Security Core ...
Jun 22 19:02:48 ip-172-31-0-204 Streama[20053]: ... finished configuring Spring Security Core
Hint: Some lines were ellipsized, use -l to show in full.

기본적으로 Streama는 포트 8080에서 실행됩니다. Streama 애플리케이션이 포트 8080에서 실행되도록 Apache로 역방향 프록시를 만들 수 있지만 Apache는 기본 HTTP 및 HTTPS 포트인 포트 80 및 443을 수신합니다. 또한 Let’s Encrypt 무료 SSL을 사용하여 서버에 대한 연결을 보호합니다. 다음 명령을 사용하여 Apache 웹 서버 및 mod_ssl을 설치합니다.

yum -y install httpd mod_ssl

이제 Apache 웹 서버를 시작하고 다음 명령을 사용하여 부팅 시 자동으로 시작되도록 합니다.

systemctl start httpd
systemctl enable httpd

이제 Let’s Encrypt 클라이언트에서 SSL 인증서를 생성해야 합니다. Let’s Encrypt 인증서 클라이언트인 Certbot은 기본 YUM 리포지토리에서 사용할 수 없습니다. 이를 위해서는 EPEL 저장소를 설치해야 합니다. EPEL을 설치하려면 다음을 입력하십시오.

yum -y install epel-release
yum -y update

이제 다음 명령을 사용하여 Certbot을 설치합니다.

yum -y install python-certbot-apache

설치가 완료되면 아래 명령을 실행하여 인증서만 가져옵니다. Let’s Encrypt 클라이언트는 인증서를 제공하기 전에 도메인 권한을 확인합니다. 따라서 도메인이 서버의 IP 주소를 가리키는지 확인하십시오.

certbot certonly --apache -d streama.yourdomain.com

위의 명령은 Certbot 유틸리티를 실행하여 인증서만 가져옵니다. 인증서는 Certbot에 의해 설치되지 않으며 서버의 구성을 변경하지도 않습니다. 인증 중에 사용할 SSL 구성을 묻는 메시지가 나타나면 ssl.conf를 선택하십시오. 마지막으로 이메일 주소를 제공하고 이용약관에 동의합니다. 인증서가 생성되면 다음 디렉터리에 저장될 수 있습니다.

/etc/letsencrypt/live/streama.yourdomain.com

여기서 streama.yourdomain.com은 실제 도메인입니다. 디렉터리에서 도메인의 SSL 인증서인 cert.pem과 SSL 인증서의 개인 키인 privkey.pem을 찾을 수 있습니다.

Let’s Encrypt SSL은 90일 후에 만료되므로 인증서 자동 갱신을 설정하는 것이 좋습니다. 다음 명령을 실행하여 crontab 파일을 엽니다.

crontab -e
Enter the following line into the crontab file.
30 1 * * 1 /usr/bin/certbot renew >> /var/log/le-renew.log

위의 크론 작업은 매주 월요일 오전 1시 30분에 자동으로 실행되며 인증서 만료 예정인 경우 자동으로 갱신됩니다.

이제 SSL 인증서가 생성되었으므로 애플리케이션을 위한 새 가상 호스트 생성을 진행합니다. 다음 명령을 입력하여 새 가상 호스트를 만듭니다.

nano /etc/httpd/conf.d/streama.yourdomain.com.conf

streama.yourdomain.com을 실제 도메인으로 바꿉니다. 파일에 다음 줄을 추가합니다.

<VirtualHost *:80>
    ServerName streama.yourdomain.com
    Redirect permanent / https://streama.yourdomain.com/
    TransferLog /var/log/httpd/streama.yourdomain.com_access.log
    ErrorLog /var/log/httpd/streama.yourdomain.com_error.log
</VirtualHost>

<VirtualHost *:443>
    ServerName streama.yourdomain.com
    ServerAdmin 
    SSLEngine On
    SSLCertificateFile /etc/letsencrypt/live/streama.yourdomain.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/streama.yourdomain.com/privkey.pem
    ProxyPreserveHost On
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
    TransferLog /var/log/httpd/streama.yourdomain.com_ssl_access.log
    ErrorLog /var/log/httpd/streama.yourdomain.com_ssl_error.log
</VirtualHost>

위 구성에서 streama.yourdomain.com을 실제 도메인으로 변경합니다. 또한 SSL 인증서의 경로가 올바른지 확인해야 합니다. 구성에 오류가 있으면 Apache 웹 서버가 시작되지 않습니다.

완료되면 구성 변경 사항이 적용될 수 있도록 Apache 웹 서버를 다시 시작하십시오.

systemctl restart httpd

또한 SELinux를 비활성화해야 합니다. 서버를 다시 시작하지 않고 SELinux를 일시적으로 비활성화하려면 다음 명령을 실행합니다.

setenforce 0

SELinux를 완전히 비활성화하려면 /etc/selinux/config 파일을 편집해야 합니다.

nano /etc/selinux/config

다음 줄을 찾으십시오.

SELINUX=enforcing

다음으로 변경:

SELINUX=disabled

새 구성은 서버를 다시 시작하면 적용됩니다. 이제 실행 중이 아닌 경우 다음 명령을 사용하여 Streama 서비스를 시작할 수 있습니다.

systemctl start streama

다음 명령을 사용하여 포트 80 및 443을 허용하도록 방화벽을 구성합니다.

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

이제 선호하는 브라우저에서 다음 URL을 탐색할 수 있습니다.

https://streama.yourdomain.com

다음 로그인 인터페이스가 표시됩니다. 사용자 이름 admin 및 암호 admin을 사용하여 로그인합니다.

처음 로그인에 성공하면 Streama 서버에 대한 몇 가지 설정을 구성해야 합니다. 설정 페이지로 자동 리디렉션됩니다.

미디어를 저장하기 위해 생성한 업로드 디렉토리의 경로를 제공합니다. 애플리케이션의 기본 URL을 제공하십시오. 응용 프로그램 이름과 응용 프로그램 로고를 구성할 수도 있습니다. 완료되면 설정 저장을 클릭하여 설정을 저장합니다. 이제 대시보드에 액세스할 수 있습니다.

새 TV 프로그램 또는 영화를 추가하려면 콘텐츠 관리 탭을 클릭합니다.

콘텐츠 관리 페이지의 파일 관리자 탭을 클릭하여 파일을 관리할 수 있습니다.

이제 Streama를 사용하여 좋아하는 TV 프로그램과 영화를 스트리밍할 수 있습니다.