토렌트 자동화하기 (5) – Overseerr

Overseerr는 Sonarr과 Radarr, Plex와 연동하여 watchlist에 있는 미디어를 자동으로 요청하고 한 곳에서 Sonarr와 Radarr에 미디어 요청을 보낼 수 있는 상당히 편리한 도구입니다.

또한, Sonarr과 Radarr를 집 밖에서 편하게 쓰기 위해선 홈 네트워크의 VPN을 이용해 내부 네트워크에 접속해서 IP:Port 기반으로 접속하거나, 도메인과 연동해 외부에 노출시켜야 합니다. 외부에 노출시킬 경우 보안 위협을 감소시키기 위해 Authentik 등의 IAM솔루션을 이용해야 하기도 하죠.

그러나 Overseerr를 이용할 경우, Sonarr나 Radarr는 내부 네트워크에서만 접근하도록 두고 Overseerr만 도메인과 연동해 외부에 노출시킬 수 있다는 장점도 있습니다. UI도 사용자 친화적이기 때문에, 가족이나 친구 등과 Plex를 공유하고 있다면 이보다 더 좋은 솔루션은 없습니다(보고 싶은거 알아서 검색해서 추가하라고 하면 되니까!).

Overseerr 역시 VPN망을 태울 필요가 없습니다. 내부 네트워크를 통해 Sonarr와 Radarr에게 미디어 요청을 보내거나 Plex 라이브러리를 읽어오는 정도의 작업만을 하기 때문에, 별도로 docker compose를 구성해서 사용하면 됩니다.

TrueNAS의 Apps에도 Overseerr가 이미 있긴 하지만, 이미 구축해놓은 토렌트 스택과 연동해야 하므로 docker compose를 이용하도록 하겠습니다.

Docker Compose

토렌트 스택을 구성하면서 여러 개의 폴더를 생성했었는데, overseerr용 폴더는 생성하지 않았었기 때문에, 하나 생성해 주겠습니다.

fentablog@rn428:/mnt/RN428/arr$ mkdir overseerr

.env파일이 있는 경로에서 overseerr.yml이란 파일을 만들겠습니다.

fentablog@rn428:/mnt/RN428/arr/compose$ nano overseerr.yml

기존의 .env값을 그대로 불러서 사용하겠습니다. TimeZone, PUID와 PGID등이 일체화되기 때문에 파일권한 관리 등이 편리합니다.

networks: torrent_default의 경우 이전 글의 Unpackerr와 동일한 이유로 추가해야 합니다.

services:
  overseerr:
    image: lscr.io/linuxserver/overseerr:latest
    container_name: overseerr
    environment:
      - PUID=${UID}
      - PGID=${GID}
      - TZ=${TZ}
    volumes:
      - ${CONFIG}/overseerr:/config
    ports:
      - 5055:5055
    restart: unless-stopped
    networks:
      - torrent_default

networks:
  torrent_default:
    external: true
CONFIG=/mnt/RN428/arr
DOWNLOADS=/mnt/RN428/torrent
DOWNLOADSMOUNT=/mnt/torrent
LIBRARY=/mnt/RN428/media
UID=3001
GID=0
TZ=Asia/Seoul
CAPTCHA_SOLVER=hcaptcha-solver
USER="3001:0"
VPN_PROVIDER=mullvad
FIREWALL_OUTBOUND_SUBNETS=192.168.0.1/24

그리고 역시 TrueNAS Web UI에서 컨테이너를 띄워줍니다.

접속은 TrueNAS IP:5055로 가능합니다.

설정

초기 구성

맨 처음 접속하면 아래와 같은 화면을 만날 수 있습니다. Sign In을 클릭해 Plex계정을 연결해 줍니다(Plex가 없다면 설정창에 진입할 수가 없으므로 Plex는 무조건 필요).

로그인 후에 보유중인 Plex서버를 찾아 연동해 주도록 되어 있습니다.

새로고침 버튼을 클릭하면 보유중인 Plex서버의 접속경로를 선택할 수 있게 됩니다. 현재 이 글에선 제가 보유중인 Plex와 Overseerr가 Local환경이 아니라서 remote를 선택했지만(부득이 IP 가림) 일반적인 경우 내부 IP로 접속가능한 선택지가 있을 겁니다. 그 부분을 선택한 후 Save Changes를 클릭합니다.

그러면 아래처럼 Plex서버의 라이브러리가 몽땅 출력되는데, 여기서 Overseerr와 연동할 라이브러리를 선택해줍니다.

라이브러리를 다 선택했다면 Start Scan을 클릭하여 전체 스캔을 한 번 수행한 뒤 Continue를 클릭해 넘어가 줍니다.

그 다음 페이지에서 Radarr와 Sonarr를 구성할 수 있습니다.

Radarr를 예시로 들겠습니다. 접속 경로는 http://gluetun으로 두시고 아래처럼 API Key까지만 입력한 뒤 Test를 클릭합니다.

(4K Server는 4K 미디어 라이브러리를 꾸리실 경우에 사용하시면 됩니다)

연결이 정상적으로 수립되었을 경우 Radarr에 설정된 Root Folder, Quality Profile 등이 불러와지고 이를 선택할 수 있게 됩니다.

맨 아래 상단의 체크 3개는 모두 사용하는 걸 권장합니다.

  • Enable Scan : 주기적으로 Radarr(Sonarr)를 스캔하여 미디어 라이브러리 상태를 체크
  • Enable Automatic Search : Overseerr에서 미디어 추가 요청을 보냈을 때, Radarr(Sonarr)에서 해당 미디어를 바로 찾기 시작
  • Tag Request : Overseerr를 통해 추가된 미디어의 경우 요청자의 ID를 표시해주는 기능(하단 예시)

같은 방식으로 Sonarr도 추가해 주세요. Anime설정이 있어 좀 더 복잡해 보이지만 크게 어렵지 않습니다.

추가를 완료했다면 Finish Setup을 클릭합니다.

그러면 아래처럼 메인페이지에 진입할 수 있게 됩니다.

이 곳에서 최근 추가된 미디어, Plex Watchlist 등 뿐만 아니라 갖고 있지 않은 미디어들에 대한 정보도 얼마든지 포스터 형식으로 볼 수 있고, 클릭 몇 번으로 간단하게 추가할 수 있게 됩니다.

예시로 아무 작품이나 클릭해보면 아래와 같은 화면을 볼 수 있고,

최우측의 Request버튼을 클릭하면 시리즈물일 경우 알아서 시즌까지 파악해서 띄워주고 선택을 완료하면 알아서 Radarr 혹은 Sonarr에 추가되어 미디어를 찾게 됩니다.

심지어, Plex처럼 감독이나 배우를 클릭해 해당 감독이나 배우의 작품만을 모아서 볼 수도 있어, 매우 유용합니다.

향후 나올 예정인 작품도 포스터 및 정보를 파악하고 request를 요청해 놓을 수 있으므로, 날짜에 맞춰 검색할 필요도 없습니다. 사실상 미디어 관리의 완전체라고 할 수 있겠습니다.

리버스 프록시(도메인) 연동하기

좌측 메뉴의 Settings를 클릭해서 제일 먼저 만나는 General탭의 3번째 항목에 Application URL이 있습니다.

리버스 프록시를 구성할 경우 이 URL에 리버스 프록시 주소를 입력하고 아래 2개의 체크항목을 켜준 뒤, Save Changes를 클릭합니다.

변경사항을 적용하기 위해 컨테이너를 한 번 재시작 해줍니다. TrueNAS Web UI에서 해도 되고,

TrueNAS 쉘에서 간단하게 수행해도 됩니다.

fentablog@rn428:~$ sudo docker restart overseerr

재시작 이후에는 리버스 프록시 주소로만 제대로 된 접근 및 작동이 보장되고, 내부 IP로는 접속은 가능하되 옵션 변경 등이 되지 않습니다.

체크박스 중 CSRF Protection기능 덕분인데, 이 상태 그대로 쓰는 것이 더 보안에 좋습니다.

Plex Users Import

Settings – Users 탭으로 이동합니다.

Overseerr는 로컬 계정(Enable Local Sign-In)과 Plex 계정(Enable New Plex Sign-In) 로그인 두 가지 방식을 지원합니다.

저는 로컬 계정은 비활성화하고 Plex계정 로그인만 사용중입니다. 이 경우 제 Plex서버에 로그인이 허용된 Plex유저만 로그인이 가능하고,

해당 유저는 좌측의 Users탭에서 확인할 수 있습니다. Plex에 등록된 유저는 Import Plex Users 버튼을 통해 불러올 수 있습니다.

해당 기능을 통해 불러와지려면 아래처럼 Plex홈에 접근가능한 사용자로 등록이 되어 있어야 합니다.

정리하면, 별도의 본인의 Plex서버에서 다른 사용자를 홈 유저로 초대해 라이브러리 접근 권한을 주는 것까지 완료된 사람만 Overseerr에서 불러올 수 있습니다.

로컬 계정으로 사용하려면 크게 신경쓰시지 않아도 됩니다.

유저 권한 설정

마찬가지로 Settings – Users탭의 로그인 아래 부분에 대한 내용입니다.

그 아래를 보면 제일 먼저 Global Request Limit이 있습니다. 이건 요청갯수 전역 제한 기능으로 숫자를 설정할 경우 다른 유저들이 해당 숫자만큼만 요청을 보낼 수 있게 됩니다.

혹시나 무분별한 요청을 보내는 경우 사용할만합니다.

Admin은 관리자 권한을 부여하는 것으로, 모든 사용자들에게 권한을 부여할 일은 없으니 기본적으로 비활성화되어 있습니다.

Manage Users권한은 말 그대로 유저 관리 권한을 주는 것으로 관리자 권한이 있는 유저 이외의 유저들을 관리할 수 있습니다.

그 다음은 미디어 추가 요청과 관련된 부분입니다.

Request는 말 그대로 미디어 요청을 할 수 있는 권한입니다. 만일 이 권한이 없다면, 해당 유저는 미디어 요청을 할 수 없게 되므로 Overseerr를 사용할 의미가 퇴색됩니다 =ㅅ=..

이렇게 개별 유저가 요청한 Request는 바로바로 추가되는 것이 아니고 Admin의 승인이 있어야 하는데, Admin의 승인 없이 바로 추가할 수 있도록 해주는 권한이 Auto-Approve입니다. 이 권한을 가진 유저의 미디어 요청은 Admin의 승인이나 확인 없이 바로바로 다이렉트로 전송됩니다.

Manage Requests는 조금 더 상승괸 권한을 갖습니다. 이 권한이 있는 경우 기본적으로 Auto-Approve가 적용됩니다.

그 하위의 Advanced Requests는 더 세분화된 요청을 할 수 있게 해주는 권한입니다.

무슨 뜻이냐면, 이 권한이 없는 유저가 Request를 날릴 시엔, Root Folder, Quality Profile 등의 옵션은 하나도 보이지 않고 Default 옵션이 적용된 채로 요청하게 됩니다. 예를 들어, 연동된 Sonarr의 기본 Root Folder는 드라마 폴더로 잡혀 있는데, 다른 유저가 애니메이션을 추가할 경우 해당 애니메이션도 드라마 폴더로 들어가 버리게 되는 것이죠. 관리자가 승인할 때도 Root Folder를 수정할 수 있는 옵션이 없기 때문에, 일단 승인해주고 Sonarr에 가서 폴더를 확인해야 하는 귀차니즘도 발생합니다.

반면, 이 권한이 있는 유저가 Request를 날릴 땐, 어느 Root Folder에 배치할 지, 어떤 Quality Profile을 사용할 지 선택할 수 있게 됩니다.

View Requests는 Overseerr에서 발생한 다른 미디어 요청 리스트를 볼 수 있는 권한, View Recently Added는 메인 페이지에서 최근에 추가된 미디어를 확인할 수 있는 권한, View Plex Watchlists는 Overseerr에 등록된 다른 Plex유저의 Watchlists를 볼 수 있는 권한입니다.

제일 하단의 Auto-Request는 Plex Watchlist와 관련된 기능으로 해당 Plex유저의 Watchlist에 있는 미디어가 로컬 라이브러리에 없을 경우 자동으로 추가해주는 기능입니다.

이 기능은, 외부에서 공유받은 Plex라이브러리의 미디어를 시청했을 때 작동합니다.

이 아래로는 4K미디어에 대한 동일옵션입니다.

Manage Issues는 기타 문제 사항이나 건의 사항을 제출할 수 있는 권한입니다. 메뉴 상으론 좌측의 Issues에서 확인할 수 있습니다.

여기서 설명한 모든 권한은 좌측의 Users탭에서 각 유저마다 개별적으로 달리 설정할 수 있습니다.

기타 그 외 설정

Plex

이 탭에선 기존 Plex서버 접속 설정정보를 변경할 수 있습니다.

하단에서 연동할 LIbrary를 수정하거나 Manual Scan을 수행할 수 있으며

최하단에서는 Tautulli 설정을 해줄 수 있습니다.

Tautulli에 저장된 재생내역을 갖고오는 용도입니다.

Tautulli의 API Key값은 Tautulli에서 Settings – Web Interface 탭의 최하단에 있습니다.

Services

Services탭에선 Sonarr와 Radarr의 설정을 변경하거나 추가할 수 있습니다. 기본적으로 각 서비스 당 최대 2개의 서비스를 추가할 수 있습니다.

Overseerr는 기본적으로 4K와 non-4K 라이브러리 관리를 별도로 하는 것을 전제하고 있기 때문으로, 제 실사용 환경도 아래처럼 각각 2개의 Sonarr와 Radarr로 이루어져 있습니다.

이건 실제로 컨테이너를 한개씩만 더 띄우면 되는 부분이므로 추가적인 설명은 넘어가겠습니다.

Notifications

Email, Discord, Telegram 등 많은 클라이언트를 지원하고 있습니다.

저는 간단하게 Telegram을 통해 알람을 구성하고 있습니다.

다른 사용자들의 Request도 알람을 통해 전달받을 수 있으므로 하나쯤 구성해두는 것이 좋습니다.

이 외의 기능은 직접 사용해보며 자신의 환경에 맞게 셋팅하시면 됩니다.

Plex가 아닌 Jellyfin을 사용하신다면 Overseerr가 아닌 Jellyseerr라는 선택지가 있으니 참고하셔도 됩니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤