0. 버전 확인

현재(17.07.23) Deluge 홈페이지의 최신 버전은 1.3.15인데, Debian Stretch 리포지토리의 버전은 1.3.13이고 딱 1년 전 버전입니다. WebUI의 경우 1.3.14, 1.3.15 모두 보안 업데이트가 있다하여 욕심은 나는데, 일단은 리포지토리 버전으로 깔아봅니다.



1. 설치

필요한 패키지는 deluge가 아닌 deluged 와 deluge-web 입니다. 그냥 deluge는 서버용이 아니라 단일 client 버전인가보네요.

$ sudo apt-get install deluged deluge-web



2. 서비스 생성하기: http://dev.deluge-torrent.org/wiki/UserGuide/Service/systemd

Debian에서 별로 인기가 없는 패키지인지 설정이 좀 부실한 것 같습니다. daemon 주제에 systemd unit 조차 없으니까요. 덕분에 리눅스 초보에게는 첫 시작이 좀 험란합니다.

우선 deluged를 종료하고 init.d 스크립트를 삭제합니다. init.d 스크립트는 구형 부팅 옵션이라고만 해두지요.

$ sudo /etc/init.d/deluged stop

$ sudo rm /etc/default/deluged

$ sudo rm /etc/init.d/deluged

$ sudo update-rc.d deluged remove


이제 deluged와 deluge-web의 systemd 서비스를 만들어줍니다. systemd는 그냥 신형 부팅 옵션이라고 생각하고 넘어갑시다. 사용은 하지만 설명을 할 능력은 없습니다.

먼저 /etc/systemd/system/deluged.service 를 새로 만들어 아래 내용을 넣어줍니다.

[Unit]
Description=Deluge Bittorrent Client Daemon
Documentation=man:deluged
After=network-online.target
[Service]
Type=simple
User=debian-deluged
Group=debian-deluged
UMask=007
ExecStart=/usr/bin/deluged -d
Restart=on-failure
# Time to wait before forcefully stopped.
TimeoutStopSec=300
[Install]
WantedBy=multi-user.target

여기서 User/Group은 debian package 기준이고, 소스에서 빌드했거나 다른 배포판의 경우 그에 맞춰서 변경해주어야 합니다.

UMask는 Linux 파일 퍼미션의 그 umask인데, deluge daemon이 만드는 파일의 권한을 지정하는 용도입니다. 저는 공용 자료는 그룹 단위의 퍼미션을 이용하므로 007로 설정했습니다. 즉 debian-deluged 사용자와 debian-deluged 그룹 구성원은 deluge 데몬이 만드는 파일에 대한 모든 권한을 가지게 됩니다.


이제 /etc/systemd/system/deluged-web.service 차례입니다.

[Unit]
Description=Deluge Bittorrent Client Web Interface
Documentation=man:deluge-web
After=network-online.target deluged.service
Wants=deluged.service
[Service]
Type=simple
User=debian-deluged
Group=debian-deluged
UMask=077
ExecStart=/usr/bin/deluge-web -d
Restart=on-failure
[Install]
WantedBy=multi-user.target


둘 다 부팅 시 실행되도록 활성화합니다.

$ sudo systemctl enable deluged.service

$ sudo systemctl enable deluged-web.service



3. 설정파일 수정

debian 패키지의 경우 /var/lib/deluged/config 폴더를 설정파일 디렉토리로 사용합니다.

설치 직후에는 비어 있는데, daemon을 실행하면 기본 설정이 들어있는 설정파일이 생깁니다.

아까 만든 deluged 서비스를 한번 시작했다가 종료해서 설정파일을 만들어줍니다.

$ sudo systemctl start deluged.service

$ sudo systemctl stop deluged.service

참고로 바로 서비스를 조료한 이유는 설정 파일을 수정할 때는 반드시 deluged 가 종료되어 있어야하기 때문입니다. deluged가 실행 중일때는 설정 파일을 메모리에 로드했다가, 종료 시 복원하기 때문입니다.


- 로그인 설정

auth 파일에 아이디:패스워드:레벨을 적어줍니다.

데스크탑, 스마트폰용 client를 사용할 때 필요한 사용자이며, localhost에서 접속하거나 web ui로 접속할 때는 추가 사용자가 필요 없습니다. 또한 client 중 web ui를 경유하는 방식(예: 안드로이드용 Transdroid)의 경우 사용자를 추가할 필요가 없습니다.


파일을 열어보면 localclient 라는 사용자가 이미 만들어져 있는데, local client용이며 지우지 말라고 합니다.

대표적으로 web ui가 localclient 사용자를 사용합니다.


여기서 레벨은 관리자가 10, 일반 사용자는 5, 읽기 전용은 1, 권한없음 0 로 정의되어 있습니다.

Web UI를 설치하지 않은 headless 서버의 경우 deluge 옵션 설정을 위해서는 필연적으로 레벨 10짜리 관리자를 하나 만들어주어야 합니다. 다만 원격 client를 사용할 계획이 없으면 그냥 만들지 않는게 좋은 것 같습니다.

아래 명령으로 사용자를 만들어도 되고, 그냥 auth 파일을 열어서 localclient 아래에 따옴표 안의 내용을 한줄 추가해도 됩니다.

echo "신규사용자:패스워드:10" >> /var/log/deluged/config/auth


- 원격 접속 허용

여기서 원격은 localhost를 제외한 다른 모든 컴퓨터에서의 접속을 말합니다. Web UI daemon은 localhost 상에서 동작하므로 여기에 포함되지 않습니다. 즉, 아래 설정은 데스크탑, 스마트폰용 client를 사용할 경우에만 필요합니다. 그런데 저는 윈도우용 client를 아직 발견을 못한데다가, 스마트폰에서는 Web UI를 경유하는 Transdroid를 사용하기 때문에 그냥 false로 남겨두었습니다. 윈도우에서는 Web UI 보다는 transmission-gui 처럼 별도 클라이언트를 사용하고 싶은데, 노오력이 부족해서 찾지를 못했네요. :)

아래 처럼 /var/lib/deluged/config/core.conf 파일에서 "allow_remote" 값을 false에서 true로 바꿉니다.

  "allow_remote": true,

이외에도 각종 설정이 빼곡히 적혀있지만, Web Ui에서 바꿀 수 있기 때문에 지금 건드리지 않습니다. web ui에서 설정을 변경하는 방법은 별도 글에서 정리했으니 아래 글을 참조하시면 됩니다.
- 토렌트 데몬 deluge 옵션 설정하기


- 방화벽 or Port Forwarding

Web UI는 8112, rpc는 58846 tcp 포트를 사용합니다. Web UI와 RPC를 공유기 밖에서 접속하려면 두 포트를 방화벽/포트 포워딩 설정에 추가해주셔야 합니다. 방화벽(공유기) 외부에서 원격 client를 사용하지 않을 경우 58846은 제외해도 됩니다.


- 실행

deluged와 deluge-web daemon을 실행하고 web ui로 접속해서 동작 상태를 확인합니다.

$ sudo systemctl start deluged.service

$ sudo systemctl start deluge-web.service

Web UI의 기본 비밀번호는 deluge 이며, 첫 접속 시 비밀번호 변경 안내를 하니 미루지 말고 바로 비밀번호를 변경합니다. 참고로 설정의 Interface 탭에서 비밀번호를 변경할 수 있습니다.


추가로 deluge 옵션설정 방법은 아래 별도 글로 정리했으니 참조하시기 바랍니다.

- 토렌트 데몬 deluge 옵션 설정하기: http://notme.tistory.com/86