미디어서버 1부 : 개념설명과 환경 구성

집에 NAS를 들이는 가장 주된 이유가 미디어 관리와 토렌트 다운로드가 아닐까 합니다. 그래서 이번 포스팅은 NAS 에서 빼려도 뺄 수 없는 토렌트와 미디어 서버 만들기입니다.

NAS 는 보통 24시간 돌아갑니다. 그러니 자동화 할 수 있으면 편하겠죠. 그러니 되는 만큼 자동화 해보겠습니다. 자동으로 미디어를 다운로드 하고, 정리하고, 스티리밍 할 수 있는 올인원 미디어 서버를 만들겠습니다. 토렌트 클라이언트는 여기 포함됩니다.

미디어 서버를 구성하는 프로그램은 아래 5개입니다.

  • SonarrRadarr 은 각각 시리즈 (드라마나 TV 쇼 등) 와 영화를 자동으로 검색하고, 다운로드 받고, 정리하고, 모니터링 하는 프로그램입니다.
  • Jackett 은 토렌트 인덱서입니다. 여러 토렌트 사이트의 자료들을 인덱싱해 제공해 줍니다.
  • GreenTunnel 은 nodejs 기반의 DPI 우회 프로그램입니다. 토렌트 사이트를 우회하여 검색할 수 있게 해 줍니다.
  • Transmission 은 매우 유명하고 호환성 높고 가벼운 토렌트 클라이언트입니다.
  • PLEX 는 트랜스코딩 기능이 있는 대표적인 미디어 서버 프로그램입니다. PLEX-PASS 라는 유료 플랜을 구독하시는 걸 추천합니다.

본 포스팅은 PLEX-PASS 를 기준으로 진행됩니다.

유저가 Sonarr 에 어떠한 시리즈를 추가하면 Sonarr 은 Jackett 을 통해 토렌트를 검색하고 Transmission 을 이용해 다운로드 받은 다음 자동으로 정리합니다. 그리고 PLEX 에서 보면 되는 거죠.

정리하면 대충 이런 형태입니다.

Jail 만들기

이름은 Media

자동 시작 체크해 주세요.

Dataset 만들기

임시 파일들이 저장될 dataset 을 만들겠습니다.

Temp/temp/transcoding_1

트랜스코딩 시 임시 파일을 저장할 dataset 입니다.

Temp/temp/transcoding_2

PLEX가 Sync 작업 등을 할 경우 트랜스코딩 디렉토리가 아닌 Cache 디렉토리를 임시 디렉토리로 사용합니다. 그곳에 마운트 할 dataset 입니다.

Temp/tmp_download/torrent

토렌트 다운로드시 미완료된 파일을 저장할 dataset 입니다.

마운트 포인트 설정

iocage console Media

감옥으로 로그인 해 주세요.

mkdir /mnt/Movie /mnt/Drama

미디어가 마운트 될 디렉토리를 만들었습니다. 다른 미디어를 마운트하려면 디렉토리를 더 만들어 주면 됩니다.

mkdir /mnt/Transcoding

트랜스코딩시 임시 파일이 저장될 디렉토리입니다.

mkdir -p /usr/local/plexdata-plexpass/Plex\ Media\ Server/Cache/

plex-pass 를 설치한다는 가정 하에, 캐시 파일이 저장되는 기본 위치입니다. 만약 plex-pass 를 구독하고 있는 것이 아니라면 /usr/local/plexdata/Plex\ Media\ Server/Cache/ 디렉토리를 만들어 주면 됩니다.

생성한 디렉토리에 마운트 포인트를 잡아 줘야 하는데, 자신의 시스템 환경에 따라 경로가 88자가 넘어가면 마운트가 불가능 할 수도 있습니다.

필자와 동일한 환경이라면 /mnt/System/iocage/jails/PLEX/root/usr/local/plexdata\ plexpass\ Plex-Media-Server/Cache 가 전체 경로이고, ‘\ ‘ 는 공백문자 하나로 처리되니 총 86자로 아슬아슬하게 마운트가 가능합니다.

mkdir /mnt/tmp_download

토렌트 다운로드 시 임시 저장 위치입니다.

mkdir /mnt/downloads

미디어 외의 다운로드 받은 파일을 저장할 디렉토리입니다.

exit

iocage stop Media

필요한 디렉토리를 모두 만들었다면 감옥에서 나와 감옥을 정지해 줍니다.

그 후 WebUI 에서 마운트 포인트를 잡아 줍니다.

  • /mnt/Data/Media/Movie/mnt/Movie
  • /mnt/Data/Media/Drama/mnt/Drama
  • /mnt/Data/Downloads/mnt/Downloads
  • /mnt/Temp/Transcoding_1/mnt/Transcoding
  • /mnt/Temp/Transcoding_2/usr/local/plexdata-plexpass/Plex\ Media\ Server/Cache/
  • /mnt/Temp/tmp_download/torrent/mnt/tmp_download

모두 연결해 줍니다.

그룹 만들기

권한 문제를 막기 위해 그룹을 미리 만들어 두겠습니다.

iocage console Media

감옥에 로그인 해 줍니다.

pw groupadd downloader -g 3000

pw groupadd media -g 8675309

downloadermedia 그룹을 만들었습니다. GID 를 일치시켜 줌으로서 호스트와 권한이 일치하도록 하였습니다.

패키지 설치

필요한 패키지를 설치합니다.

pkg install sonarr radarr jackett transmission plexmediaserver-plexpass npm

만약 plex-pass 를 구독하고 있지 않다면 plexmediaserver-plexpass 대신 plexmediaserver 패키지를 설치해 주면 됩니다.

그룹에 유저 추가

프로그램에서 권한 문제가 발생하지 않도록 앞서 만든 그룹에 여러 프로그램의 유저를 추가해 주겠습니다.

pw user mod radarr -G downloader -G media
pw user mod sonarr -G downloader -G media
pw user mod transmission -G downloader -G media
pw user mod plex -G media

radarr, sonarr, transmission 에는 downloadermedia 그룹을 보조 그룹으로 설정했고

plexmedia 를 보조 그룹으로 설정하였습니다.

디렉토리 권한 설정

chown -R plex:plex "/usr/local/plexdata-plexpass/Plex Media Server/Cache"
chonw -R plex:plex /mnt/Transcoding

PLEX 서버가 트랜스코딩에 사용할 디렉토리의 소유자를 plex 로 바꿔 주었습니다.

마치면서

다음 포스팅에서는 PLEX 에 대해 간단하게 다룰 것입니다.

시리즈 네비게이션<< 사설 인증서 발급하기미디어 서버 2부 – PLEX 서버 >>

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다