이 글의 원 글은 이글루스에 있는데, 2.0 에 맞게끔 수정했다. 1.3.x 를 위한 설정은 원 글을 참고하면 된다.
아래 내용은 Deluge 홈페이지 사용자 안내서를 주로 참고했고, 오류가 발생하는 부분은 적절히(구글~) 해결했다.
1. 설치
일단, 2개를 설치해야 한다. 주의할 점! deluge 가 아니고, deluged (daemon) 이다.
2019년 7월 현재, Deluge 2.x 를 설치하려면 PPA 가 필요하다.
Transdroid 최신판을 사용한다면, deluge-web 을 설치하지 않아도 된다.
$ sudo add-apt-repository ppa:deluge-team/stable $ sudo apt install deluged deluge-web
2. 사용자 추가
System Service 로 실행하려면, 그걸 실행할 주체(사용자)가 설정되어 있어야 한다. 그냥 놔두면 root 가 되지만, Deluge 설명서에는 사용자/그룹 ‘deluge’ 를 만들라고 권장하고 있다.
$ sudo adduser --system --gecos "Deluge Service" --disabled-password --group --home /var/lib/deluge deluge
간단하게 설명하면.. (man adduser 에 자세한/장황한 설명이 있지만..)
- –system : 일반 사용자가 아닌, 시스템 사용자를 뜻한다. 이렇게 되면 uid/gid 가 시스템 영역에서 할당된다. (일반 사용자는 1000 부터 시작)
- –gecos “Deluge Service” : 사용자 정보(이름, 전화번호 등등) 필드에 “Deluge Service” 를 자동 입력한다. 다른 내용(주소 등등)은 adduser 가 묻지 않고 넘긴다.
- –disabled-password : password 로 인증할 수 없게 만든다. 로그인은 가능하다고 man page 에 나와있으나, 일반 로그인 개념은 아닌 듯?
- –group : –system 과 같이 쓰였을 경우, user 명과 같은 이름(여기서는 deluge)으로 시스템 그룹을 만든다.
- –home /var/lib/deluge : /var/lib/deluge 를 deluge 사용자 홈디렉토리로 만든다. 일반 사용자들은 /home/userX 를 집으로 삼지만, 특수 사용자들(?)은 이런 식으로 특정 경로를 지정해줄 수 있다.
사용자 deluge 로는 로그인 불가, su 도 불가하다. 따라서, sudo 로 해당 명령등을 실행한 후, chown, chmod 를 해줘야 한다. 그러나, sudo -u 를 사용하면 살짝 불편은 하지만 가능하긴 하다.
# 형식 sudo -u 사용자 명령 # 실제 사용 sudo -u deluge mkdir /opt/Torrent_Silo
그리고, 서버를 관리하는 사용자(sudo 권한을 가진)를 이 그룹 일원으로 참여시킨다. 그래야 관리가 편하기 때문이다. 여기선 그 사용자를 tommy 라 해본다.
$ sudo adduser tommy deluge $ sudo usermod -a -G deluge tommy $ sudo adduser $USER deluge
다른 명령, 모두 같은 결과. adduser 는 사용자를 먼저 쓰고 그룹을 나중에 썼는데, usermod 는 그 반대다.
3. Deluge Daemon(deluged) Service 등록.
혹시나 이전에 init.d 를 사용했다면, 공식 문서 해당 영역을 참고하여 삭제해줘야 한다.
/etc/systemd/system/deluged.service
파일을 만들고, 다음 내용을 넣는다. 여기선 log 파일까지 만드는 것으로 설정했다. 로그가 필요없다면 -l 이하는 넣지 않으면 된다.
[Unit] Description=Deluge Bittorrent Client Daemon After=network-online.target [Service] Type=simple # User/Group 항목은 아래 5. User 참고. #User=deluge #Group=deluge UMask=002 # Log 기능까지. ExecStart=/usr/bin/deluged -d -l /var/log/deluge/daemon.log -L warning # log rotation 필요시, #ExecStart=/usr/bin/deluged -d -l /var/log/deluge/daemon.log -L warning --logrotate Restart=on-failure # Configures the time to wait before service is stopped forcefully. TimeoutStopSec=300 [Install] WantedBy=multi-user.target
Umask 조정이 필요하다면 적절히 해주면 되는데, 이 권한은 deluge 가 다운받은 파일에게 주어진다.
- 007 : 사용자와 그룹(위에서 생성한 deluge:deluge)에 모든 권한을, Others 에게는 아무 권한도 주지 않음.
- 002 : 사용자/그룹은 모든 권한을, 기타사용자는 읽기/실행만 가능.
- 022 : 사용자는 모든 권한을, 그룹과 기타사용자는 읽기/실행만 가능.
- 000 : 모든 사용자에게 전권을!
바로 실행하지 말고, 어차피 deluge-web 도 같이 할 것이므로(그래야 스마트폰등에서 접근이 된다.) 다음 설정으로 넘어간다.
4. Deluge Web UI(deluge-web) Service 등록.
** Transdroid 2.5.16 부터 Deluge2 RPC 이용이 가능해졌다. 따라서, 굳이 Web 서비스를 사용할 필요는 없다.
/etc/systemd/system/deluge-web.service
를 생성하고, 다음 내용을 입력한다. 마찬가지로 로그를 생성하게끔 했다.
(이전에 쓴 내용과 살짝 달라진 부분이 있는데, deluge-web 서비스는 deluged 가 먼저 실행되어야만 의미가 있으므로, 그 상관관계를 추가했다. 물론, 내가 한건 아니고, 델루지 문서 내용이 그렇게 개선되었다.)
또한, 2.x 가 되면서 -d 를 붙여줘야 Active 로 실행이 된다. (해주지 않으면 Inactive 상태가 된다.)
이 내용은 아직 Deluge 문서에는 없지만, 포럼을 통해 알 수 있었다.
-d 는 ‘Do not Daemonize’ 인데, 아마도 Systemd 를 통해서 실행될 때는 이걸 붙여줘야 제대로 돌아가는 모양이다. (deluged 에도 마찬가지로 -d 를 붙인다. 이건 1.x 때부터 이랬다.)
[Unit] Description=Deluge Bittorrent Client Web Interface Documentation=man:deluge-web After=network-online.target deluged.service Wants=deluged.service [Service] Type=simple # User/Group 항목은 아래 5. User 참고. #User=deluge #Group=deluge UMask=002 ExecStart=/usr/bin/deluge-web -d -l /var/log/deluge/web.log -L warning # log rotation 필요시, #ExecStart=/usr/bin/deluge-web -d -l /var/log/deluge/web.log -L warning --logrotate Restart=on-failure [Install] WantedBy=multi-user.target
5. User 설정.
여기가 이전 판과 달라진 부분이다. 이전 판엔 .service 파일에 사용자와 그룹을 명시했었으나, 이제는 따로 사용자를 설정해줘야 한다.
Deluged, Deluge-web 모두 각각 만들어줘야 한다.
그런데, deluge 외 다른 사용자를 할당하면, 오류도 없고, 실행도 되지만, 제대로 작동하진 않는다. 뭔가 권한과 관련된 문제로 보이지만..
그냥 UMASK 를 002 로 주는게 당장은 해법으로 보인다.
Deluged :
$sudo mkdir /etc/systemd/system/deluged.service.d/ # 그리고 /etc/systemd/system/deluged.service.d/user.conf 를 만든 뒤 다음 내용을 넣는다. # Override service user [Service] User=deluge Group=deluge
Deluge-web :
$ sudo mkdir /etc/systemd/system/deluge-web.service.d/ # /etc/systemd/system/deluge-web.service.d/user.conf 에 다음 내용을 입력한다. # Override service user [Service] User=deluge Group=deluge
6. Log Rotation.
Log Rotation 이란, 낡은 로그를 압축하여 보관하게끔 하는 기능을 말한다.
이전에는 /etc/logrotate.d/deluge
를 만들라고 했었는데, 이젠 불필요하게 됐다.
그냥 ExecStart 에 –logrotate 만 추가하면 된다.
7. log 파일 저장 디렉토리 생성.
위에서 로그를 deluged, deluge-web 모두 /var/log/deluge 에 만들기로 했으므로, 이 디렉토리를 만들어줘야 한다.
** 한가지 문제! Armbian 일 경우.
Armbian 은 /var/log 디렉토리를 SD 카드가 아닌 램에 저장하게끔 하고 있다. 이를 위해서 /var/log.hdd 가 따로 있는데, 아마도 어떤 특정 시점에 /var/log 가 /var/log.hdd 로 반복되면서 복사가 되는 모양이다. SD 카드에 ‘쓰기’를 최소화하려는 목적이라고 한다. 그런데, 이것 때문인지, /var/log/deluge 를 만들고 재부팅하면 이 디렉토리가 사라지는 현상이 있다. Armbian Forum에 해당 내용이 있는데, 확실한 해결책은 아니지만, 다음과 같이 하니 제대로 되는 것 같다.
- 먼저 log2ram.service 를 정지시킨다.(sytemctl stop log2ram.service)
- var/log/deluge 를 만들고 권한 작업등을 마친다.
- 다시 log2ram.service 를 시작한다.
만약 이렇게 해서 되지 않으면, disable/stop 후 mkdir 작업을 하고, 다시 enable/start 하거나, 아니면 그냥 disable/stop 으로도 괜찮을 듯 하다. 제작자가 disable 하라고 했으니 뭐..
자.. 이제 디렉토리를 만들고 소유권, 권한부여 작업을 완료한다.
$ sudo mkdir -p /var/log/deluge $ sudo chown -R deluge:deluge /var/log/deluge $ sudo chmod -R 750 /var/log/deluge
** /var/log/deluge 가 없으면, deluged 가 실행되지 않는다!!
만약 위 문제등등으로 인해 /var/log/deluge 가 없는 상태에서 deluged 가 시동된다면, 오류를 발생시키고 deluged 가 실행되지 않는다. 따라서, 작업이 모두 끝나고 재부팅한 뒤 deluged 가 제대로 작동하는 꼭 확인(systemctl status deluged.service)해야 한다.
8. Service 등록 및 실행 확인
다음 명령으로 deluged, deluge-web 서비스를 시스템 시동시 시작되도록 등록한다.
$ sudo systemctl enable /etc/systemd/system/deluged.service $ sudo systemctl enable /etc/systemd/system/deluge-web.service
이제 재부팅한 후 제대로 작동하는지 확인한다. 다음 명령으로 확인할 수 있다.
$ systemctl status deluged $ systemctl status deluge-web
fail/inactive 등등이 나왔다면… /var/log/deluge 가 존재하는지 살펴보고, 없다면 위에 있는대로 ramlog 관련 작업을 해보고, 멀쩡히 있는데도 안된다면..
열심히 구글을.. 또는 Deluge Forum 을 찾아가보기를.
** Deluge 설정 파일은 어디에?
일반 계정으로 deluge 를 실행하면 ~/.config/deluge
에 설정 파일이 생긴다. 그러나, systemd 로 자동실행되게끔 하면, 위에서 사용자 deluge 의 홈페이지로 지정해준 /var/lib/deluge
아래에 .config/deluge
가 생긴다.
이게 싫다면, ExecStart 행에 원하는 경로를 -c 옵션 이하에 주면 된다.
준다면, deluged, deluge-web 모두 줘야한다.
ExecStart=/usr/bin/deluge-web -l /var/log/deluge/web.log -L warning -c /var/lib/deluge/configurations
여기까지가 ‘설치’ 다. 설치 치곤 기네..
‘설정’은…
설정은 의외로 간단하다. Deluge Thin Client 문서를 참고한다.
먼저, deluge daemon (service) 를 일단 실행시키고(이미 실행되어 있다면 됐고), kill 해야 한다.
$ systemctl kill deluged.service
그러면 Deluge 설정 디렉토리(위에서 한 대로라면 /var/lib/deluge/.config/deluge
) 에 다음 두 파일이 생겨있어야 한다.
- auth
- core.conf
없다면.. deluged 가 여전히 실행 중이거나, 설정 디렉토리가 엉뚱한 곳으로 설정이 되어 있거나..
1. 사용자 추가
auth
파일에 다음 내용을 추가한다.
<username>:<password>:<level>
ID, Password 적당히 넣어주고, level 은 10 이면 된다.
2. 외부에서 접근 허용
설명서에 여러가지 방법이 나와있는데, 간단하게 core.conf
파일을 열고, 다음처럼 항목을 true 로 바꾼다.
"allow_remote": true,
이제 deluged 를 다시 시작하면 끝.
$ systemctl start deluged.service
연결법은 Deluge 문서 참고~ (어려울 건 없다.) 또는 예전 글 참고.
3. Web-UI 설정
일단 웹브라우저에서 서버주소:8112 로 접속한 후(최초 접속 암호는 ‘deluge’ 이다.), 접속 암호를 바꿔준다.
그 후, 기타 설정이 필요하다면 Preferences 로 이동한다.
기본 설정은 Deluge Thin Client 를 그대로 따르므로, 웹인터페이스에 관련된 설정만 해주면 된다.Preferences - Interface
에서 Port, Use SSL 등을 적절히 변경한다.
또는, deluge-web 을 죽인 후, web.conf 를 수동으로 수정해줘도 된다. 직관적으로 알 수 있게 되어 있으니 굳이 여기서 설정을 바꾸진 않아도 된다.
그런데, SSL 을 사용하게끔 설정한 경우, 일반(http)으로 접속한 다음, 같은 브라우저로 SSL(https)을 사용하려 한다면 아예 접근이 안될 경우가 있다. 이때는 캐시(쿠키값)를 지우든가, 아니면 아예 다른 브라우저로 접속해서 다른 문제는 없는지 확인한다.
두번째로, Transdrone/Transdroid 를 위한 설정이 필요하다.
만약 Transdrone 에서, ‘웹인터페이스가 실행 중인 데몬에 연결되어 있지 않습니다’라는 오류가 나오면 다음 사항을 점검해볼 필요가 있다.
서버에서 deluge-web 을 죽인 후, web.conf
에서, default_daemon 부분을 다음처럼 바꿔준다. (기본값은 “” 로, 비어있다.)
Deluge FAQ에 따라, 델루지 설정 디렉토리에 있는 hostlist.conf
를 열고, hosts 부분에 나오는 첫번째 ID 값을 찾아 web.conf 파일에 넣어준다.
예를 들면 이런 식이다.
"default_daemon": "123459d5a5b414159caa1323f6e0c9b240c7abcd",
그런데, 이 부분이 1.3.x 와 2.0.x 가 좀 다르다. hostlist.conf 에 localclient 라는 내용이 추가되었는데, 그게 아니고, 그 위에 있는 첫번째 값을 넣어야 하는 듯 하다. 두번째 값은 넣어보지 않아서 작동하는지 아닌지 여부는 알 수가 없다.
아무튼 지금은 이 정도로만 정리한다.
1 thought on “꽃삽질 : Deluged and Deluge-web Service 설치 & 설정, Deluge 2.x 기준.”