2024. március 29., péntek

Gyorskeresés

[Raspberry] torrent / plex szerver rpi4 alapon

Írta: | Kulcsszavak: raspberry . torrent . plex . rpi4 . szerver . server

[ ÚJ BEJEGYZÉS ]

Mivel újra kellett rakjam a kis szerverem gondoltam levezetem a mikéntjét - hátha vki kedvet kap egy kis fogyasztású 24/7-ben futó rendszer építéséhez. Az egész procedúrát próbálom dokumentálni, fotózni, pár szavas / mondatos magyarázatot mellékelni - de több nap lesz - ahogy időm engedi mindig folytatom :)

Tartalom:
- Hozzávalók
- OS beszerzése, alap beállítása
- SSH
- Qbittorrent fordítása
- Külső meghajtó csatolása
- Router beállítása (port nyitás, fix ip, távoli elérés, ...)
- Samba
- PLEX

Hint. Ide az elejére teszem. Linux-on a sudo parancs (superuser do) rendszergazda jogokkal való futtatásra használatos. Feleslegesen ne használjuk - ne futtassunk rendszergazdaként mindent, ez nem windows - csak gond lesz belőle!

Hozzávalók:
- rpi4 (a gigabites lan és az usb3 miatt mindenképp)
- legalább 32 GB ssd / microsd / hdd / pendrive a rendszernek - ízlés dolga
- telepítés kezdetéhez kijelző, billentyű - van rá mód ezek elhagyására de ne bonyolítsuk sztem
- dhcp képes vezetékes hálózat - szerintem telepítésnél ezt se bonyolítsuk
- külső meghajtó az adatoknak

1. OS beszerzése, kiírása:
Sokféle képen megoldható, én ezt ajánlom:
Keressük fel ezt az oldalt.

Innen töltsük le a szimpatikus image writer-t és telepítsük. Nekem a linux-os verzióra volt szükségem:

Válasszuk ki a megfelelő image-t a bal oldali gombbal (raspberry os other -> lite) a középsővel a cél meghajtót és write.
Ha kész a művelet mehet a pi-be a meghajtó adjunk neki delejt (és kijelzőt, billentyűt, lan kábelt) és várjunk türelemmel (nem sok idő, átparticionálja a meghajtót és egy prompt-al jelzi, h várja az utasításokat).

2. alap beállítások
Ha megvan a prompt írjuk be a felhasználó nevet: pi
majd a jelszót: raspbian - vagy raspberry, komolyan nem tudom... :D
Ha beengedett indítsuk el a konfigurációs alkalmazást:
sudo raspi-config

Itt három dolgot állítsunk be mindenképpen:
1. localization option - billentyűkiosztás, local settings
2. system settings -> password - jelszó módosítás
3. interface - itt kapcsoljuk be az ssh-t

Frissült az app, itt az új külső

Ha normálisan van beállítva a router-ünk nem kell semmivel molylni, megkapja automatice az ip-jét a gép. Kapjon fix ip-t:

Ha nem tudnánk akkor tudjuk meg a gép ip címét:
hostname -I

és módosítsuk ezt a file-t, h megjegyezze a gépünkt:

sudo nano /boot/cmdline.txt

A végére írjuk oda a címünket:

ip=192.168.1.48

Ez az én gépem ip-je, mindenki a sajátját írja, többször nem fogom leírni ;)

Hint: A nano egy nagyon egyszerű szövegszerkesztő. A képernyő alján segít, h mik a bill. parancsok. Pl. a (bal)ctrl+x a kilépés. Terminálban futó programokat ált. a (bal)ctrl + c-vel is megállíthatjuk (exit)

Ha ez megvan jöhet egy újraindítás:
sudo reboot

Húzhatjuk is le a perifériákat, innentől karosszékből intézhetjük a dolgokat :)

4. Szóval üljünk át kedvenc gépünk elé, nyissunk egy terminált majd:
ssh pi@192.168.1.48 paranccsal kapcsolódjunk a pi-hez -> ahol a pi a felhasználó nevünk a @ utáni "számsor" meg a pi IP címe (a példában az enyém)
Windows felhasználóknak nem ennyire egyszerű az életük, nekik szükségük lesz egy ssh kliensre, én az érdekes nevű putty-t ajánlom.

5. kezdjük a programok beszerzését
Mindenekelőtt frissítsük le a rendszert:
sudo apt-get update -y && sudo apt-get upgrade -y

Torrent kliensenk a qbittorrent-et ajánlom ami fent van tárolóban és egy sor beírásával telepíthető:
sudo apt-get install qbittorrent qbittorrent-nox
Majd indítsuk el a web-es interfészt:
qbittorrent-nox
Fogadjuk el amit elkell (y)
Rá is nézhetünk böngészőből:
192.168.1.48:8080
Vissza a terminálba és szakítsuk meg a proces-t: Ctrl+C

Ezzel a lépéssel felkerült egy régebbi verzió (jelenleg 4.1.5) meg a hozzá tartozó függőségek amikre szükségünk lesz. De mi forgatni fogunk egy friss-ropogós verziót.

Sok magyarázatot nem fogok hozzáfűzni, copy + paste ;)

Alap függőségek telepítése a fordításhoz:
sudo apt install build-essential pkg-config automake libtool libc6-dev libboost-dev libboost-system-dev libboost-chrono-dev libboost-random-dev libssl-dev qtbase5-dev qttools5-dev-tools libqt5svg5-dev zlib1g-dev

First libtorrent-et kell felvarázsolni, én a git-et fogom használni, ehhez telepítsük is:
sudo apt install git

szerezzük be a libtorrent-et

git clone https://github.com/arvidn/libtorrent.git
cd libtorrent
git checkout $(git tag | grep libtorrent-1_2_ | sort -t _ -n -k 3 | tail -n 1)

Forgassuk le:
./autotool.sh
./configure --disable-debug --enable-encryption --with-boost-libdir=/usr/lib/arm-linux-gnueabihf --with-libiconv CXXFLAGS="-std=c++14"
make -j$(nproc)
sudo make install

El fog molyolni vele a gép, nyugodtan menjünk kv-zni ;)

Ha kész készítsünk egy file-t:
sudo nano /etc/ld.so.conf.d/libtorrent.conf
aminek ez legyen a tartalma:
/usr/local/lib

Majd adjuk ki a parancsokat:
sudo ldconfig
export LD_LIBRARY_PATH=/usr/local/lib:${LD_LIBRARY_PATH}

Az env paranccsal ellenőrizzük. A listában látnunk kell LD_LIBRARY_PATH sort.

Forgassunk qBittorrent-et végre:

update: elérhető a 4.3.0 verza, érdemes már azt tölteni:
git clone -b v4_3_x https://github.com/qbittorrent/qBittorrent
cd qBittorrent

./configure --disable-gui --enable-systemd --with-boost-libdir=/usr/lib/arm-linux-gnueabihf CXXFLAGS="-std=c++14"
make -j$(nproc)
sudo make install

Frissítés: Most 2 nap alatt kijött 2 frissítés ezért ide írom ennek is a menetét:
sudo service qbittorrent stop
Ha pl.: a /home alatt dolgozunk (miért is ne ezt tennénk?) akkor mielőtt letöltjük a frissítést töröljük / nevezzük át a régi forrás file-ok mappáját majd:
git clone -b v4_3_x https://github.com/qbittorrent/qBittorrent
cd qBittorrent
./configure --disable-gui --enable-systemd --with-boost-libdir=/usr/lib/arm-linux-gnueabihf CXXFLAGS="-std=c++14"
make -j$(nproc)
sudo make install

Ugyanaz mint fentebb az install csak az új mappából indítjuk a fordítást ;)

kis kv szünet ismét

Állítsuk be, h boot során induljon a qb is, ehhez szolgáltatásként indítsuk.

sudo useradd -rm qbittorrent -G pi -s /usr/sbin/nologin

Hozzuk létre ezt a file-t:
sudo nano /etc/systemd/system/qbittorrent.service

És tegyük bele eme sorokat :D

Description=qBittorrent Daemon Service
After=network.target

[Service]
User=qbittorrent
Group=pi
ExecStart=/usr/local/bin/qbittorrent-nox
ExecStop=/usr/bin/killall -w qbittorrent-nox

[Install]
WantedBy=multi-user.target

Indítsuk és ellenőrizzük a szolgáltatást:

sudo systemctl daemon-reload
sudo systemctl start qbittorrent
sudo systemctl enable qbittorrent
sudo systemctl status qbittorrent

Ezekután a qb webes felületét a 192.168.1.48:8080-as címen érjük el

User: admin
Password: adminadmin

Valami ilyesminek kellene megjelennie:

Valószínű mindenki egy másik (külső) meghajtóra szeretne tölteni, most beállítjuk.

1. meg kell tudnunk a külső meghajtó "betűjelét" - jó windows-os kifejezéssel :D
sudo fdisk -l

Itt keressük meg a meghajtókat. A lista tetején tmp (ram) drive-ok lesszek, a lista alján keressük. Nálam:

Disk /dev/sda: 58,7 GiB, 63023063040 bytes, 123091920 sectors
Disk model: 2115
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x1b3d565b

Device Boot Start End Sectors Size Id Type
/dev/sda1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/sda2 532480 123091919 122559440 58,5G 83 Linux

60 GB rendszermeghajtó, 2 partícióval

Disk /dev/sdb: 1,4 TiB, 1500301910016 bytes, 2930277168 sectors
Disk model: 2115
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0003b2dd

Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 2930276351 2930274304 1,4T 83 Linux

Ö lenne a külső, egy partícióval. A lényeg most a /dev/sdb1

2. csatolási pont
Linux-on meg kell mondani, h hova csatolja (mount) a meghajtót, ehhez létre kell hozni egy mappát:
Itt jegyzem meg, h file műveletekhez ha nem akartok gépelni használható az mc (Midnight Commander like total commander) amit egy paranccsal telepíthetünk:
sudo apt install mc

Hint. Ha rám hallgattok a töltős / filmes meghajtót ext file rendszerre formázzátok, nem kicsit okosabb mint az ntfs és még sokkal kisebb erőforrást is von el a szerverünktől. Én a leírásban ext4 file rendszert fogok használni. Lehet a leírás végére odabiggyesztem a mikéntjét. Ezzel a paranccsal tudunk ext4-re formázni partíciót:
mkfs.ext4 /dev/sdb1 - sdb1 helyére a megfelelő érték helyettesítendő!

Szóval ha tudjuk a meghajtónk jelét (sdb1) és leformáztuk csatoljuk is fel, ehhez létre kell hozni egy csatolási pontot (mappát), majd mount:
sudo mkdir /mnt/store
sudo mount /dev/sdb1 /mnt/store

A szintaxisa mit csatolunk / hova csatoljuk. Linux-on komoly jogosultságrendszer uralkodik, így ha rendszergazdaként (sudo-val) hozunk létre egy könyvtárat abba mi mezei felhasználók nem írhatunk (mivel nem a mienk, a rendszergazdáé). Ezt megoldandó adjuk jogot a pi felhasználónak (és csoportnak) az írásra (pontosabban azt mondjuk meg, h ki a tulajdonosa a könyvtárnak):
sudo chown -R pi:pi /mnt/store

Így mi már írhatunk bele de a torrent kliens (aki egy felhasználó) nem. Ehhez adjuk hozzá qbittorrent felhasználónkat a pi csoporthoz.

sudo usermod -a -G pi qbittorrent
és fordítva is - biztos ami biztos :D
sudo usermod -a -G qbittorrent pi

Próbáljunk is letölteni vmit. Ha elakadt jelzést látunk valszeg jogosultság probléma lesz (nem tud írni a kliens)

Végül még be is állíthatjuk, h a boot során csatolja fel a meghajtót, ehhez módosítsuk az fstab-ot:
sudo mcedit /etc/fstab

Tegyük a végére ezt a sor (same mount)

/dev/sdb1 /mnt/store ext4 defaults,noatime 0 2

fstab

Router

Hamár töltünk nem árt portot is nyitnunk a forgalomnak. Ehhez a router-ben a port forwarding opciót kell megkeresnünk. Meg kell mondjuk milyen külső ip címről és portról érkező csomagokat melyik ip címre és portra továbbítsa (és milyen protokollon (tcp))

Ha eddig nem tettük volna meg adjunk fix ip-t a szerverünknek, ehhez keressük meg a dhcp részt:

Valami hasonlót kell látnunk.

És még egy dolog. Ha távolról (nem helyi hálóról) szeretnénk elérni szerverünket szükségünk lesz egy fix névre amivel "megtalálhatjuk". Ehhez ddns szolgáltatásra lesz szükségünk. Vannak ingyenes és fizetős opciók is. Nekem "szerencsém" van mivel az asus router-hez jár így azt beállítva már el is érhetem a gépet (gépeket):
pl.: ezadomiainnevem.com:8080-as címen elérem a qb webes felületét

Ez a sor annyit tesz, h ha meghívom a domain nevem a 8080-as porton akkor azt a router a 192.168.1.48:8080-ra (a pi ip címe azon belül a qb webes felületének a portja) fogja továbbítani.

Még egy példa.

ezadomiainnevem.com:2222 az egyik pi ssh címe
ezadomiainnevem.com:2221 a másik pi ssh címe

Így be tudok lépni ssh-n mind2 gépbe. Tudom nem a legbiztonságosabb, ha lesz időm / ingerenciám megcsinálom https-re :B

Samba

A letöltött tartalmakat (első körben) osszuk meg a helyi hálón. Ehhez a samba nevű szolgáltatás lesz a barátunk. Telepítése pár mondatban:

sudo apt-get install samba samba-common-bin

sudo mcedit /etc/samba/smb.conf - ha előzőleg feltettük az mc-t akkor kapunk egy szép színes-szagos editort is hozzá, ö az mcedit :) Ha nem így tettünk maradjunk a nano-nál.
Szóval módosítsuk a fenti file-t. Biggyesszük a végére e sorokat:

[share]
Comment = Pi shared folder
Path = /mnt/store
Browseable = yes
Writeable = Yes
only guest = no
create mask = 0777
directory mask = 0777
Public = yes
Guest ok = yes

Az első sor a megosztás neve lesz, a 3. az elérési út. Ide a felcsatolt meghajtónk útját írjuk. A többivel most ne foglalkozzunk.

Kelleni fog egy samba felhasználó aki legyen szintén pi.

sudo smbpasswd -a pi

Adjunk neki jelszót majd indítsuk újra a szolgáltatást:

sudo service smbd restart

Ezután már elérhetjük a megosztott mappánkat.

PLEX

Jöhet a médiaszerver telepítése. Én a hivatalos tárolóból való telepítést mutatom be.
Lehet csomagból is de azt nem szeressük (nem ajánlom) hamár van neki tárolója.

Vegyük fel a plex repó-ját:

Hint. Miaza a repó??? Software repository

sudo apt-get install apt-transport-https
curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
sudo apt-get update

És már telepíthetjük is:

sudo apt install plexmediaserver

A szervert ezen a címen érjük el:

192.168.1.48:32400/manage

Adjuk hozzá a letöltési mappánkat (meg ahol a médiákat tartjuk)

Ha beolvasta a könyvtárakat vmi ilyesmit kell lássunk:

Amihez nem talál borítót kereshetünk neki.

A beállításokban bekapcsolhatjuk a dlna opciót (ha nem lenne plex kliensünk), így is átvihetjük a tartalmakat tv-re, mobil eszközre (helyi hálón). A plex app-al egyébként bárhonnan nézhetjük a tartalmakat, beállíthatjuk milyen minőségben stream-elje - meg ezer más dolgot - mindenki nézegesse a beállításokat :)

Mobil app.

PLEX LG webos rendszeren

A változás jogát fenntartom - ha eszembe jut még vmi kiegészítem a leírást :B

Hozzászólások

(#1) Oldman2


Oldman2
veterán

Köszi a leírást!
:R

(#2) petir


petir
senior tag

Ú de szép leírás :) köszönet érte :R

Mindig gondolkoztam egy Raspberryn, ha a vékonykliensem egyszer tönkre megy tuti benevezek egyre.

(#3) thisdave


thisdave
csendes újonc

Szia!
Végigcsináltam RPI3 mal.
a többmagos fordítás helyett 1 magosan fordítottam,
erre figyelni kell RPI3 nál
(make -j1)
Gratulálok a cikkhez, nagyon nagy boldogságom vagyom,
hogy végre nekem is van egy filmszerverem otthon.
:):):)
Üdv.
Dave

(#4) havri1 válasza thisdave (#3) üzenetére


havri1
félisten

Ezt hol? Nem értek a linuxhoz, de neki kell állnom a szervert telepíteni Pi3-ra.
Mondjuk én már ott elakadtam, hogy a jelszó nem megfelelő, nem enged be..

havri

(#5) havri1 válasza havri1 (#4) üzenetére


havri1
félisten

zy csere volt a hiba. Na elkezdtem a leírás alapján, meglátjuk meddig jutok :) :R

havri

(#6) body007 válasza thisdave (#3) üzenetére


body007
addikt

Nade a parancs make -j$(nproc) megkérdezi a processzor magok számát és azt írja a -j után
Írd be terminálba:
nproc

nálam:
pi@raspberrypi4:~ $ nproc
4

Egyébként örülök, h sikerült :)

(#5) havri1: még az elején írtam, h állítsd be a billentyű kiosztást - nem véletlen :)

[ Szerkesztve ]

Mindenkit egyforma külső inger ér, de egyén függő, h éljük meg :P

(#7) melan válasza havri1 (#4) üzenetére


melan
senior tag

És a pi3 elbírja a plex-et?
Én is gondolkodtam rajta, épp pi3-at használok, de van egy pi2-m is, és épp tervezek váltani a 4k miatt pi4-re, de akkor nem adom el a 3-ast, ha a plex menne rajta...

(#8) havri1 válasza melan (#7) üzenetére


havri1
félisten

Nem tudtam beüzemelni, elakadtam vele.
:B DirectPlay/FHD-be bírnia kellene, mivel ott nincs transcode. Elvben..

[ Szerkesztve ]

havri

(#9) unicumnext


unicumnext
aktív tag

Sajna nálam már hibát dob :(

checking for exit in -lboost_system... yes
configure: Boost.System LIB: "-lboost_system"
checking for libtorrent... no
configure: error: Package requirements (libtorrent-rasterbar >= 1.2.12) were not met:

Requested 'libtorrent-rasterbar >= 1.2.12' but version of libtorrent-rasterbar is 1.2.6

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables libtorrent_CFLAGS
and libtorrent_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

(#10) aujjobba válasza melan (#7) üzenetére


aujjobba
addikt

A Plex sokkal gyengebb gepen is elmegy, ARM alapu belepo NAS-okon is, felteve hogy nem kell transzkodolnia.

Nade, amennyibol veszel pi4-et, hozza USB vinyot vagy valami USB-s kulso HDD boxot, dobozt, hutest, annyibol mar ossze tudnal rakni egy rendes gepet is, ami adott esetben transzkodolni is tud es joval erosebb.
Tovabba nem egy kabelrengeteg lesz a rendszered.
Vannak passziv hutesu, CPU-val integralt alaplapok, asrock j4105, j4205, j5005 peldaul.
Lesz SATA csati meg minden amit akarsz.

En Celeron g4930 procival raktam ossze egy gepet, legolcsobb hazzal viszont jo minosegu tappal. Ez egy gyengus CPU alapvetoen, de mivel viszonylag friss es bele van integralva a videochip, 4db parhuzamos transzkodos lejatszast tudtam vele egyszerre futtatni akadas nelkul, 4K HDR10 -> 720p atalakitassal. Persze ehhez a hardveres tamogatas -> plexpass kell.
Az mar csak hab a tortan, hogy ubuntu server fut rajta, ahhoz rengeteg tamogatas/leiras van neten, es a transmission es egyebek is alapbol elerhetok a csomagkezelobol.

[ Szerkesztve ]

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.