코딩/라즈베리파이

라즈베리파이 OpenMediaVault 에 토렌트 설치

드리프트 2021. 10. 27. 18:06
728x170

 

안녕하세요?

 

최근 라즈베리파이에 OpenMediaVault를 설치해서 시놀로지 같은 NAS를 구축해서 쓰고 있는데요.

 

이번에는 토렌트 서버를 구축해 볼까 합니다.

 

OMV는 버전 4에서는 transmission이라는 토렌트 서버를 직접 설치할 수 있었는데요.

 

OMV 버전 5에서는 도커(docker)를 통해서만 transmission을 설정할 수 있습니다.

 

 

자 그럼, 설치해 볼까요?

 

1. OMV-Extras 설치

 

도커를 설치할 수 있게 해주는 플러그인 같은건데요.

 

일단 SSH로 접속해서 root로 계정을 바꿔줍니다.

 

root 비밀번호가 없다면 아래처럼 sudo passwd root로 root 계정의 비밀번호를 지정할 수 있습니다.

 

그리고 마지막으로 su root 명령어로 root 아이디로 계정을 변경하는 겁니다.

ssh pi@192.168.29.159 -p 2002

sudo passwd root

su root

 

 

이제 OMV-Extras를 설치해 볼까요?

 

wget -O - https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install | bash

 

이제 OMV 웹 대시보드로 이동해 보시면 아래와 같이 OMV-Extras가 나옵니다.

 

 

 

두 번째 탭에서 Docker를 눌러보면 Docker 설치할 수 있는 메뉴가 나오는데요.

 

아래 그림과 같이 설치를 누르면 됩니다.

 

 

설치가 완료되면 아래 그림처럼 상태가 "installed and running"로 바뀝니다.

 

이제 Docker를 설치했으니까 Docker를 웹상에서 편하게 관리할 수 있는 Portainer를 설치합시다.

 

아래처럼 Portainer을 설치 버튼을 눌러 설치합시다.

 

 

로그 파일을 잘 보고 계셔야 합니다.

 

아래처럼 DNS 에러가 나왔네요.

 

이 에러를 고치기 위해 SSH 터미널 화면으로 다시 이동해서 다음과 같이 수정합시다.

 

sudo nano /etc/resolv.conf

 

그리고 다음과 명령어를 빈칸에 적어 주시면 됩니다.

 

nameserver 8.8.8.8
nameserver 8.8.4.4

 

이제 다시 Portainer 설치 버튼을 눌러볼까요?

 

아래처럼 DNS OK가 나왔습니다.

 

 

이제  Portainer도 설치됐겠다.

 

이제 본격적인 토렌트 설치를 시작해 보겠습니다.

 

 

 

1. 토렌트 공유폴더 설정

 

아래 그림처럼 접근 권한 폴더에 가셔서 공유 폴더를 클릭합시다.

 

그리고 아래 칸에 이름과 경로를 지정해야 되는데요.

 

torrent라고 합시다.

 

 

권한을 모두: 읽기/쓰기로 지정했습니다.

 

그리고 저장 버튼을 누르면 상단의 경고창과 함께 시스템 설정 반영하시면 됩니다.

 

그러면 실제 라즈베리파이 외장하드에 다음과 같이 torrent 폴더가 생성됩니다.

 

권한이 모두가 읽고 쓰기 가능한 폴더네요.

 

이제, Portainer 웹 UI로 이동해 볼까요?

 

주소는 http://라즈베리파이 주소:9000입니다.

 

브라우저를 열고 http://192.168.29.159:9000으로 접속하면

 

계정을 만들라고 하는데요.

 

아이디는 admin 이라고 하고 비밀번호는 알아서 설정하시면 됩니다.

 

 

이렇게 나오는데요.

 

트랜스미션을 위한 도커 이미지는 다음 이미지가 유명합니다.

 

https://hub.docker.com/r/linuxserver/transmission

 

Docker Hub

 

hub.docker.com

 

 

도커 구성을 위해 아래처럼 Staks를 클릭합시다. 그리고 + Add stack를 눌러 stack을 추가해 볼까요?

 

 

 

아래와 같이 나오는데요.

 

Name 칸에는 아무 이름이나 적으시면 됩니다.

 

저는 transmission이라고 적었습니다.

 

 

 

그리고 Web Editor 이 선택되어 있고 그 밑에 멀 적으라고 하는데요.

 

여기에 붙여 넣기 해야 할 게 있습니다.

 

바로 https://hub.docker.com/r/linuxserver/transmission 페이지에서 아래쪽에 가보면 Usage라고 되어 있습니다.

 

여기서 아래 docker-compose 부분에서 밑에 ---부터 쭉 긁으면 됩니다.

 

 

그리고 최종적으로 필요 없는 걸 빼고 다음과 같이 수정합시다.

 

 

 

자 여기서 중요한 게 있는데요.

 

바로 volumes: 부분입니다.

 

여러분의 외장하드가 실제 어디에 마운트 되어 있는지 알아야 합니다.

 

다시 터미널 창으로 가 볼까요?

 

다음 명령어를 수행해 봅시다.

df -h

 

자 보시면 우리가 외장하드로 마운트 한 게 /dev/sda이고 마운트 위치가 바로 /srv/dev-disk-by-uuid---------- 부분입니다.

 

그래서 Volumes 부분에서 다음과 같이 torrent 폴더를 아래와 같이 설정한 겁니다.

 

---
version: "2.1"
services:
  transmission:
    image: lscr.io/linuxserver/transmission
    container_name: transmission
    environment:
      - PUID=1000
      - PGID=100
      - TZ=Asis/Seoul

      - USER=transmission #optional
      - PASS=transmission #optional
    volumes:
      - /srv/dev-disk-by-uuid-e06063db-8e38-4520-b126-b53c9f9f1c83/torrent/config:/config
      - /srv/dev-disk-by-uuid-e06063db-8e38-4520-b126-b53c9f9f1c83/torrent/downloads:/downloads
      - /srv/dev-disk-by-uuid-e06063db-8e38-4520-b126-b53c9f9f1c83/torrent/watch:/watch
    ports:
      - 9091:9091
      - 51413:51413
      - 51413:51413/udp
    restart: unless-stopped

 

폴더는 세 개가 필요한데요.

 

config 폴더는 transmission 설정 파일이 있을 곳이고,

 

downloads 폴더는 말 그대로이고요.

 

watch 폴더는 이 폴더에 torrent 파일을 업로드하면 transmission 이 자동으로 torrent 파일을 다운로드합니다.

 

이제 맨 밑에 Deploy the stack 버튼을 누르면 도커 이미지가 pull 되면서 transmission 도커가 완성됩니다.

 

이제 Portainer메뉴에서 transmission 쪽으로 가볼까요?

 

 

transmission 컨테이너가 보이네요.

 

그걸 클릭해 볼까요?

 

아래처럼 잘 실행되고 있네요.

 

그리고 중요한 게 있습니다.

 

위 사진에서 맨 밑에 Logs를 클릭해서 로그 기록을 봐주십시오.

 

일부 라즈베리파이에서 에러가 생길 수 있습니다.

 

로그 기록에서 다음 그림과 같이 libseccomp 관련 에러가 나오면 이걸 해결해야 하는데요.

 

 

 

이걸 해결 안 하면 도커 안에서의 네트워크가 작동을 안 합니다.

 

libseccomp 문제는 libseccomp 버전이 낮아서 그런 겁니다.

 

그래서 다음과 같이 신형 버전을 설치해주면 됩니다.

 

wget http://ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.2-2_armhf.deb

sudo dpkg -i libseccomp2_2.5.2-2_armhf.deb

 

이제 다시 transmission을 restart 버튼을 눌러서 실행해 볼까요?

 

 

다시 시작되었으면 로그 기록을 잘 살펴보십시오.

 

이제 에러가 없을 겁니다.

 

그럼 transmission 웹으로 접속해 볼가요?

 

http://192.168.29.159:9091/

 

포트가 기본적으로 9091 포트입니다.

 

접속하면 아래와 같이 나오는데요.

 

우리가 위에서 설정한 아이디와 비밀번호는 transmission/transmission이었습니다.

 

로그인 성공하면 다음과 같이 나옵니다.

 

 

이제 토렌트 파일을 업로드해볼까요?

 

맨 왼쪽 폴더 오픈 버튼을 클릭해 봅시다.

 

여기서 찾아보기를 눌러서 파일을 업로드해볼까요?

 

라즈 비안 OS 토렌트를 올렸습니다.

 

시간이 지나면서 다운이 되는데요.

 

잘 되고 있습니다. 완료됐네요.

 

 

그럼 다운로드한 파일은 어디에 있을까요?

 

바로 아래 그림처럼 torrent 폴더 밑에 downloads 폴더 밑 complete 폴더에 있네요.

 

 

 

삼바로 연결해 볼까요?

 

SMB로 연결하시려면 OMV 대시보드에서 SMB 부분에서 공유 추가를 해주시기 바랍니다.

 

 

 

제 맥에서 Finder로 공유 폴더에 접근해서 봤을 때도 잘 저장되어 있네요.

 

 

 

 

 

Transmission Remote GUI

 

웹상에서 토렌트 진행 상황을 보는게 불편하다면 GUI 앱을 통해 훨씬 편하게 보는 방법도 있습니다.

 

우리가 사용하는 토렌트 앱이 Transmission Daemon 인데요.

 

자가 토렌트 서버(Transmission Daemon )에 GUI 형식으로 접속하여 관리할 수 있는 앱이 있습니다.

 

바로 Transmission Remote GUI 앱입니다.

 

깃헙에 공개되어 있는 오픈소스이고요.

 

https://github.com/transmission-remote-gui/transgui/releases

 

Releases · transmission-remote-gui/transgui

🧲 A feature rich cross platform Transmission BitTorrent client. Faster and has more functionality than the built-in web GUI. - transmission-remote-gui/transgui

github.com

 

윈도우, 리눅스, 맥을 모두 지원하는 크로스 플랫폼 애플리케이션입니다.

 

다운받아서 설치하면 다음과 같이 나오는데요.

 

 

일단 우리의 경우 어떻게 서버 연결을 하는지 살펴 보겠습니다.

 

일단 메뉴에서 Torrent로 가시고 Connect to Transmission 으로 가시고 New connection 을 선택합니다.

 

그럼 다음과 같이 서버 연결 화면이 나오는데요.

 

우리의 라즈베리파이 주소를 넣으시고 유저네임과 패스워드는 아까 설정한 걸 넣으시면 됩니다.

 

 

그리고 연결해 보면 현재 상태가 나오는데요.

 

 

이 앱이 좋은 점은 확장자가 .torrent인 파일을 이 앱으로 드래그만 해도 실행됩니다.

 

물론 라즈베리파이에 다운 받게 되죠.

 

그리고 마그넷 주소만 클릭해도 브라우저에서 이 앱을 연결시켜 줍니다.

 

그래서 사실 웹상에서 토렌트서버에 접근하는 거 보다 이 transmission remote gui를 사용하는게 훨씬 편합니다.

 

그럼.

그리드형