์์์ ์ค์นํ Transmission
์ผ๋ก ์๋ฅ์ด๋ ๋๋ผ๋ง๋ฅผ ๋ค์ด ๋ฐ๊ณ Nextcloud
์์ ํ์ผ์ ๋ถ๋ฅํ ์ ์์ต๋๋ค.
๊ทธ๋ผ ์ด์ ์ ๋ค์ด๋ฐ์ ๋์ ๋ฏธ๋์ด๋ค์ ์์ฒญํด์ผ ํฉ๋๋ค.
์ด ๋ ์ ์ฉํ ํ๋ก๊ทธ๋จ์ด ๋ฐ๋ก Plex
๋ผ๊ณ ์์ต๋๋ค.
Plex
๋ ๋์์ ํ์ผ๊ณผ ๊ทธ ํ์ผ์ ์ด๋ฆ์ ์ ๋ณด๋ค์ ํ ๋๋ก Daum
์น์ฌ์ดํธ์์ ๊ฒ์ํ ํ ์ถ์ฐ์ง, ์ค๊ฑฐ๋ฆฌ ๋ฑ์ ๊ฐ์ ธ์ ๊น๋ํ๊ฒ ๋ถ๋ฅ๋ฅผ ํด์ฃผ์ด์ ๊ฐ์ํ๊ธฐ์ ๋งค์ฐ ํธ๋ฆฌํด์ง๋๋ค.
์ค๋งํธํฐ, ์ค๋งํธTV, ์น ๋ธ๋ผ์ฐ์ ๋ฑ์ ๊ฐ๋ฆฌ์ง ์๊ณ ๋ค์ํ ๊ธฐ๊ธฐ์์ ์ง์์ด ๋๋ฉฐ ํธ๋์ค์ฝ๋ฉ๊น์ง ์ข์์ ์ธํฐ๋ท ํ๊ฒฝ์ ๊ณ ๋ คํด ํ์ง ์ ํ๋ ์์ ๋กญ์ต๋๋ค.
์ฐ์ ๋ณดํธ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก๋ Plex ๊ณต์ ํํ์ด์ง์์ .deb
ํ์ผ์ wget
๋ช
๋ น์ด๋ก ๋ค์ด ๋ฐ์์ dpkg
๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํด์ ์ค์น๋ฅผ ํ๋ฉด ๋ฉ๋๋ค.
ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ ์ถํ ์
๋ฐ์ดํธ๋๋ ์ด๋ ๊ฒ ํด์ผ ํ๋ฉฐ ๊ท์ฐฎ์์ ์
๋ฐ์ดํธ๋ฅผ ์ํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก Plex
์ ํจํค์ง ์ ์ฅ์ ์ ๋ณด๋ฅผ ํ์๋ฒ apt
์ ์ถ๊ฐํ๋ฉด ์
๋ฐ์ดํธ๋ ํญ์ ์ฐ๋ ๋ช
๋ น์ด sudo apt update && sudo apt upgrade -y
๋ก ์์ฝ๊ฒ ์
๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
์ฐธ๊ณ ๋งํฌ: https://support.plex.tv/articles/235974187-enable-repository-updating-for-supported-linux-server-distributions/
Plex ๊ณต์ ํํ์ด์ง์์ ์ ๊ณตํ๋ ์ฌํญ๋๋ก ์งํํด๋ณด๊ฒ ์ต๋๋ค.
echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
sudo apt update
sudo apt install plexmediaserver -y
Plex
์ค์น ๋์ค ์งํ๋ 64% ์ฏค ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋ฐ ๊ฒ์
๋๋ค.
Configuration file '/etc/apt/sources.list.d/plexmediaserver.list'
==> File on system created by you or by a script.
==> File also in package provided by package maintainer.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** plexmediaserver.list (Y/I/N/O/D/Z) [default=N] ?
Enter
ํค๋ฅผ ์
๋ ฅํด์ ํ์ฌ ์ค์น ๋ฒ์ ์ ์ ์งํ๋ฉด ๋ฉ๋๋ค.
32400
๋ฒ ํฌํธ๋ Plex
์ ์ฃผ ํต์ ํฌํธ์
๋๋ค.
๋์ค์ ๋ฆฌ๋ฒ์ค ํ๋ก์๋ฅผ ๊ตฌ์ฑํด ๊ฒฐ๊ตญ https๋ก ์ ์ํ๊ฒ ์ง๋ง ๊ทธ๊ฒ์ ์น ๋ธ๋ผ์ฐ์ ๋ง ํด๋นํ๋ ์ฌํญ์ด๊ณ , ์ค๋งํธํฐ์ด๋ ์ค๋งํธTV ๋ฑ์ ๋ค๋ฅธ ๊ธฐ๊ธฐ๋ค์ ์ด ํฌํธ๋ก ์ ๊ทผํด์ผ ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.
ํฌํธํฌ์๋ฉ์ ๊ฐ์์ ๊ณต์ ๊ธฐ 32000/tcp ๋ฅผ ํ์๋ฒ์๊ฒ ๊ฐ๋๋ก ์ค์ ํ๋ฉด ๋ฉ๋๋ค.
sudo iptables -A INPUT -p tcp --dport 32400 -j ACCEPT
sudo netfilter-persistent save
sudo netfilter-persistent reload
๊ฐ์์ ๋๋ฉ์ธ ๊ด๋ฆฌ ํ์ด์ง์์ Plex์ฉ ๋๋ฉ์ธ์ ์ถ๊ฐํ๊ธธ ๋ฐ๋๋๋ค.
์ ๋ ํธ์คํ
์ผ์ด์์์ ํ์ต๋๋ค.
ํ์๋ฒ์ ๊ฐ์ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋์ด ์๋ PC์์ ์น ๋ธ๋ผ์ฐ์ ๋ก ์๋ ์ฃผ์์ ์ ์ํด๋ณด์ธ์.
http://[ํ์๋ฒ ๋ด๋ถ IP์ฃผ์]:32400/web
๋ง์ฝ ๋ด๋ถ ๋คํธ์ํฌ ํ๊ฒฝ์ ์ ๊ทผํ ์ ์๋ ์ธ๋ถ ํ๊ฒฝ์ด๋ผ๋ฉด PuTTY์ SSH Tunneling ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
์๋์ฒ๋ผ
Source port
์Destination
์ ๋๊ฐ์ด ์จ์ฃผ์๊ณAdd
๋ฒํธ์ ํด๋ฆญํ ํ SSH ์ฐ๊ฒฐ๊ณผ ๋ก๊ทธ์ธ์ ํ์ธ์.
์ด์ PuTTY๊ฐ ์ผ์ ธ์๋ ์ํ ๊ทธ๋๋ก ๋ ๋ค ์นํ์ด์ง๋ฅผ ์ด์ดhttp://127.0.0.1:32400/web
์ผ๋ก ์ ์ํ๋ฉด ๋ฉ๋๋ค.
์ ์ํ๋ค๋ฉด ์ด์ ์ด๊ธฐ ์ค์ ์ ์งํํด๋ณด๊ฒ ์ต๋๋ค.
์๋ ํ๋ฉด ์ฒ๋ผ ๋์ฌ ๋ Plex
์ฌ์ดํธ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ์ ํด์ฃผ์ธ์.
์ด ๊ณ์ ์ผ๋ก ๋ค๋ฅธ ๊ธฐ๊ธฐ๋ค์์๋ ์ ์ํ ์ ์์ต๋๋ค.
์ดํ ๊ทธ๋ฆผ์ ๋ฐ๋ผ ์งํํ์๋ฉด ๋ฉ๋๋ค.
์ด์ ์ด๊ธฐ ์ค์ ์ด ๋๋ฌ์ต๋๋ค.
ํ์๋ฒ ๋ด๋ถ ์ค์ ์ ํด์ฃผ๋๋ก ํฉ์๋ค.
์ฐ์ ํ ๋ ํธ ์ฑํฐ์์ ๋ง๋ค์ด๋ Nextcloud
๋ฐ์ดํฐ ํด๋์์ Plex
ํด๋๋ฅผ ์ฌ์ฉํ ๊ฒ์
๋๋ค.
์ด ํด๋๋ Transmission
์ค์นํ ๋์ฒ๋ผ ํด๋์ ์์ ์์ ๊ทธ๋ฃน์ www-data
๋ก ์ง์ ํ์ฌ Nextcloud
์์ ํ์ผ์ ๊ด๋ฆฌํ ์ ์๋๋ก ํด์ฃผ๊ณ plex
๊ณ์ ์ www-data
๊ทธ๋ฃน์ ์ถ๊ฐํ์ฌ Plex
์์ ์ฝ๊ธฐ ๊ฐ๋ฅํ ์ํ๋ฅผ ๊ฐ์ง TvShow
์ Movie
ํด๋๋ฅผ ๋ง๋ค์ด ์ฃผ๊ฒ ์ต๋๋ค.
์ด ์์
๋ํ root
๊ณ์ ์ผ๋ก ํ๋ ๊ฒ์ด ์ข๊ธฐ์ ๊ถํ ์์น์ ๋จผ์ ์์ผ์ค์๋ค.
su -
cd /srv/nextcloud/[Nextcloud๊ณ์ ๋ช
]/files/Plex
sudo -u www-data mkdir -m 770 Movie TvShow
usermod -a -G www-data plex
๊ถํ๊ณผ ์์ ์ ๊ทธ๋ฃน ์ค์ ํ์ธ
ls -l
... drwxrwx--- 2 www-data www-data 4096 Mar 8 09:45 Movie drwxrwx--- 2 www-data www-data 4096 Mar 8 09:45 TvShow
plex ๊ณ์ ์ด www-data ๊ทธ๋ฃน์ ์ถ๊ฐ๋์๋์ง ํ์ธ
id plex
uid=997(plex) gid=997(plex) groups=997(plex),33(www-data),44(video),109(render)
Transmission
์ฒ๋ผ ๋ฆฌ๋ฒ์ค ํ๋ก์๋ฅผ ๊ตฌ์ฑํด์ 32400
๋ฒ ํฌํธ๋ก ์ ๊ทผํ๋ ๋์ https
๋ก ์ ๊ทผํ ์ ์๊ฒ ๊ตฌ์ฑํด๋ณด๊ฒ ์ต๋๋ค.
vim /etc/nginx/sites-available/[Plex๋๋ฉ์ธ]
server { listen 80; server_name [Plex๋๋ฉ์ธ]; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; server_name [Plex๋๋ฉ์ธ]; ssl_certificate /etc/letsencrypt/live/[๋๋ฉ์ธ]/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/[๋๋ฉ์ธ]/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/[๋๋ฉ์ธ]/chain.pem; ssl_dhparam /etc/ssl/dhparam.pem; ssl_session_timeout 10m; ssl_session_cache shared:SSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256; ssl_ecdh_curve secp384r1; ssl_stapling on; ssl_stapling_verify on; add_header Strict-Transport-Security max-age=15552000; add_header X-Content-Type-Options "nosniff" always; gzip on; gzip_vary on; gzip_min_length 1000; gzip_proxied any; gzip_types text/plain text/css text/xml application/xml text/javascript application/x-javascript image/svg+xml; gzip_disable "MSIE [1-6]\."; client_max_body_size 0; location / { proxy_pass http://127.0.0.1:32400; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions; proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key; proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version; proxy_redirect off; proxy_buffering off; } }
์๋ฒ ๋ธ๋ก ์ ์ฉ ๋ฐ ์ฌ์์์ ํด์ค๋๋ค.
ln -s /etc/nginx/sites-available/[Plex๋๋ฉ์ธ] /etc/nginx/sites-enabled/
service nginx restart
Plex ํด๋์ ์์์ด ์ถ๊ฐ๋๋ฉด ํ์ผ๋ช
์ ํ ๋๋ก Daum ์ํ ์ฌ์ดํธ์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋๋ก ์ค์ ํด์ฃผ๋ ์์
์ ํ ๊ฒ์
๋๋ค.
Github์ hojel๋๊ป์ ์ ์ํ์ DaumMovie ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ ๊ฒ์
๋๋ค.
apt install git -y
cd /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins
git clone https://github.com/axfree/DaumMovie.bundle
chown plex:plex DaumMovie.bundle/
ํ๋ฌ๊ทธ์ธ ํ์ธ
์ ๋ฐ์์ก๋์ง ํ์ธํด๋ด ์๋ค.
ls -l
... drwxr-xr-x 4 plex plex 4096 Mar 14 12:10 DaumMovie.bundle
์ด์ ์๋น์ค๋ฅผ ์ฌ์์ ํ์ฌ ํ๋ฌ๊ทธ์ธ ๋ณ๋์ฌํญ์ ์ ์ฉํด ์ค์๋ค.
service plexmediaserver restart
์น ๋ธ๋ผ์ฐ์ ๋ก https://[Plex๋๋ฉ์ธ]
์ฃผ์๋ก ์ ์ํ ํ Plex์ฉ์ผ๋ก ๋ง๋ ํด๋๋ฅผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ฑ๋ก์์ผ๋ด
์๋ค.
์๋ ๊ทธ๋ฆผ์ ๋ฐ๋ผ ์งํํ์๋ฉด ๋ฉ๋๋ค.
/srv/nextcloud/[Nextcloud๊ณ์ ๋ช
]/files/Plex/Movie
๋ฅผ ์ง์ ์
๋ ฅํด๋ ๋ฉ๋๋ค.
์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ ๋ ์ฒ๋ผ ํด๋๋ฅผ /srv/nextcloud/[Nextcloud๊ณ์ ๋ช
]/files/Plex/TvShow
๋ก ์ง์ ํด์ฃผ๊ณ ๊ณ ๊ธ ํญ์์ ์์ด์ ํธ๋ฅผ Daum Movie
๋ก ๋ฐ๊ฟ์ค ๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ๋ฅผ ํ๋ฉด ๋ฉ๋๋ค
์ด์ ๋ฅ๋ ฅ๊ป ์๋ํ์ผ์ ๊ตฌํ ๋ค Transmission
์์ ๋ค์ด๋ก๋ ๋ฐ์ต๋๋ค.
Transmission
์ฑํฐ ๋ ์ค์ ์ ์ ํ๋๋ผ๋ฉด ์ฐ์ธก ์๋จ์ ๋นจ๊ฐ ๋ฐ์ค ์ฒ๋ผ ์
๋ก๋๊ฐ 0KB/s ์ผ ๊ฒ์
๋๋ค.
๋ค์ด๋ก๋๊ฐ ์๋ฃ๊ฐ ๋๋ฉด ์๋์ผ๋ก ์๋ํญ๋ชฉ์ด ์ฌ๋ผ์ง ๊ฒ์
๋๋ค.
์ด์ Nextcloud ์์ ํ์ผ์ ํ์ธํด๋ณด์ธ์.
์ฌ๊ธฐ์ ํ์ผ์ ์ฐํด๋ฆญ ํ ๋ค ์๋ ๊ทธ๋ฆผ์ ๊ฒฝ๋ก๋๋ก ์ด๋ํด์ฃผ์ธ์.
TvShow ํ์์ ํด๋๋ฅผ ์์๊ฒฝ์ฐ ๋ง๋์๋ฉด ๋ฉ๋๋ค.
์ด ๋ ๊ทธ ํด๋ ์ด๋ฆ์ ๋ณดํต ํ๋ก๊ทธ๋จ์ ์ ๋ชฉ์ ์
๋ ฅํ์๋ฉด ์ข์ต๋๋ค.
์ด์ Plex
์น์ผ๋ก ์ ์ํด ๋ณด์ธ์.
ํ์ผ๋ง ๋ฃ์ด๋์ ๋ฟ์ธ๋ฐ ์ธ๋ค์ผ๊ณผ ์ค๊ฑฐ๋ฆฌ, ์ ๋ชฉ ๋ฑ ์ฌ๋ฌ๊ฐ์ง ์ ๋ณด๋ฅผ ํตํด ์ ๋ฆฌ๊ฐ ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๊ณ ์ํ์
จ์ต๋๋ค. ์ด๋ก์จ ๋ฏธ๋์ด ์ํ์ ์ง์ด ํ์ธต ๋ ๋์์ก์ต๋๋ค.
์ฌ๋ฌ ํ๊ฒฝ์์ Plex์ ์ฐ๋ํ์ฌ ์ฌ์ฉํ์ค ์ ์์ผ๋ ์ฌ๊ฑด์ด ๋์ ๋ค๋ฉด ๊ผญ ํด๋ณด์๊ธธ ๋ฐ๋๋๋ค.
์ ๋ง ํธ๋ฆฌํ๊ณ ์ข์ต๋๋ค.
์ฌ์ค ์ฌ๊ธฐ์ ๋์ด ์๋๋๋ค.
flexget
์ ์ฌ์ฉํด์ ๋งค์ฃผ ์ฌ๋ผ์ค๋ ๋๋ผ๋ง or ์๋ฅ์ ์๋์ผ๋ก ๋ค์ด๋ฐ์ Plex
์ ๋ฃ์ด์ค ์ ์์ต๋๋ค.
๋ค์ ์ฑํฐ์์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์๋ ํ์ธ์, ์ ๋ฐฐ์ ์ต๋๋ค. ์ธ๋ถ๋ง์์ ํ๋ ์ค ์๋ฒ์ ์ ์ํด์ full remote access๋ฅผ ์ป์ผ๋ ค๋ฉด, ๋ค์์ ํฌํธ๋ฅผ ๋ชจ๋ ์ด์ด์ฃผ์ ์ผ ํฉ๋๋ค. (iptables ๋์ ufw๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ๋์ผ)
sudo iptables -I INPUT 1 -p tcp -m multiport --dports 32400,3005,8324,32469,40784,1384,40784,32600,32401 -j ACCEPT
sudo iptables -I INPUT 2 -p udp -m multiport --dports 1900,32410,32412,32413,32414,32815,34030,35425,1901 -j ACCEPT
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ธ๋ถ๋ง์์ ํ๋ ์ค ์๋ฒ์ ์ ์ํ๋ ๊ฒฝ์ฐ plex relay service๋ฐ์ ์ด์ฉํ์ง ๋ชปํด์ streaming speed๊ฐ 1mb/s์ธ ์์ตํ ์ํฉ์ด ๋ฒ์ด์ง๊ฒ ๋ฉ๋๋ค.
๋ค๋ฅธ ๋ถ๋ค๊ป ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.