Instalace pyLoad do LXC kontejneru
Co je to pyLoad? Je to prográmek na stahování souborů ze share a podobných serverů. U nás v ČR je nejznámnější Ulož.to, nicméně existují i jiné a pyLoad zvládá drtivou většinu z nich. Taky umí stahovat z YouTube. Zvládá free (nemáte zaplacené GB na stahování) i premium (rychlé ale obvykle placené stahování).
Pokud jste z Ulož.to někdy stahovali zdarma, víte, že to má omezení. Download je omezen rychlostí (cca 200-300 kB/s) a počtem downloadů – můžete zdarma stahovat v jednu chvíli pouze jeden soubor. Toto u pyLoadu odpadá, zvládá stahovat z Ulož.to více free downloadů najednou. Další nesporná výhoda je, že stahování běží na routeru, tedy nemusíte mít stále zapnutý počítač a otevřený prohlížeč. To je důležité u velkých souborů ve free módu, nebo pokud máte pomalejší připojení. Takový 20GB .rar soubor může trvat stáhnout zdarma až 24 hodin. Pokud to běží na routeru, tak Vás to nezajímá a nemusíte mít stále zapnutý svůj počítač, dokud se soubor celý nestáhne.
Abychom mohli provozovat pyLoad, potřebujeme mít nastavený NAS a připravený linuxový kontejner s Debian Bullseye.
Prvně si musíme rozmyslet, jak to bude s uživateli. Pokud jste si vše připravili podle návodu na domácí NAS, tak máte několik uživatelů a pro každého je vytvořena adresářová struktura a tito uživatelé jsou na Turrisu vytvořeni. Samozřejmě, kontejner je virtualizovaný počítač, zde je nutno tyto uživatele vytvořit znovu. Nutné je to z důvodu, aby stahované soubory (nejen z pyLoadu ale i z dalších aplikací, například Transmission) ukládané z kontejneru měli správného vlastníka na Turrisu – a nebyl pak problém s přístupy přes Sambu.
Nejlepší možnost je, že se vytvoří uživatel, který se bude stejně jmenovat, ale bude mít i stejné UID – to je číslo uživatele v systému (jedno UID = jeden uživatelský účet a obráceně). Takže co potřebujeme, je zjistit UID (user ID) našeho uživatele na routeru, abychom ho mohli přesně vytvořit takto i v kontejneru. Připojíme se přes terminál na router:
ssh root@192.168.1.1
Vypíšeme si uživatele:
cut -f1 /etc/passwd
Zde si najdeme řádek s naším uživatelem:
user1:x:3537:100::/var:/bin/false
UID uživatele je v tomto případě 3537, tak si ho poznamenáme. Číslo 100 je GID (group ID), kam patří náš uživatel. Víme že to je group users. GID v tomto konkrétním případě řešit nemusíme, protože i v Debian Bullseye je defaultně vytvořená group users s GID 100, takže tam už je shoda kterou potřebujeme a nemusíme se o to starat. V jiné distribuci by to mohlo být jinak, tam už bychom to museli řešit obdobně jako to budeme řešit s uživateli.
Nyní "vlezeme" do kontejneru, kam chceme instalovat pyLoad:
lxc-attach -n user1
Vytvoříme uživatele. Za --uid bude naše poznamenané číslo:
useradd --create-home --gid users --uid 3537 --shell /bin/false user1
Teď už samotná instalace pyLoad. Stable verze pyLoad stále běží na Pythonu2, ten už ale není v nových distribucích, protože již není podporován. Návod jsem si upravil pro Debian Bullseye, kde už není.
Nejdříve nainstalujeme potřebné balíčky:
apt install python2 git curl rhino python-dev-is-python2 tesseract-ocr libcurl4-gnutls-dev librtmp-dev libzbar-dev libzbar0
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
python2 get-pip.py
Už to na nás křičí, že nemáme něco PATH, to se vyřeší takhle:
vim /root/.bashrc
A na konec souboru vložit:
export PATH="/usr/local/bin:$PATH"
Aplikujeme změnu:
source ~/.bashrc
pip2 install pycurl pycrypto
A je to připravené. Teď nainstalujeme pyLoad:
cd /root
git clone https://github.com/pyload/pyload.git
cd pyload
git checkout stable
Tím jsme si stáhnuli pyLoad.
První spuštění a nastavení pyLoad
python2 pyLoadCore.py
Při prvním spuštění musíme pyLoad nastavit:
- Výběr jazyka cs + Enter
- Kontrola systému Enter + Enter
- Pokracovat v instalaci? Enter
- Zmenit cestu k nastaveni? Enter
- Vytvorit zakladni nastaveni? Enter
- Uzivatelske jméno: Toto je uživatel pro pyLoad, nemusí být nutně nazván stejně jako náš user1, ale nejspíše bude.
- Heslo zadat 2x
- Povolit vzdaleny pristup? Enter
- Jazyk: cs + Enter
- Slozka pro stahovani [Downloads]: V předchozím návodu jsme si nastavili /mnt/downloads + Enter
- Max soubeznych stahovani [3]: 30 vpohodě, při 50 najednou už mi jela Omnie na max. 30 + Enter
- Pouzivat Reconnect?: Enter
- Nastavit webove rozhrani?: Enter
- Aktivovat webove rozhrani?: Enter
- IP Adresa: Vyplníme tu, co jsme si zvolili při nastavování statické IP při vytváření kontejneru
- Port [8000]: 80 + Enter
- Server: Enter
- Template: Enter
- Enter
Nastavení pyLoad jako služby
PyLoad máme nastavený a nakonfigurovaný, nicméně museli bychom ho spouštět ručně. Aby se nám spouštěl automaticky, musíme si ho zaregistrovat jako službu:
vim /etc/systemd/system/pyload.service
Tím se nám vytvořil prázdný soubor, zkopíruji do něj následující:
[Unit]
Description=Download tool for One-Click-Hoster written in python.
After=network.target
[Service]
User=root
Group=root
ExecStartPre=python2 /root/pyload/pyLoadCore.py -q
ExecStart=python2 /root/pyload/pyLoadCore.py
Restart=always
[Install]
WantedBy=multi-user.target
A potvrdíme : w q Enter. Nyní si službu povolíme a nastartujeme:
systemctl enable pyload.service
systemctl start pyload.service
A zkontrolujeme že běží:
systemctl status pyload.service
Vyskočíme ctrl + c. A už by mělo vše fungovat. Pokud jsme postupovali podle návodů, zadáme do prohlížeče user1.xxx a dostaneme se do webového rozhraní pyLoadu. Zde se přihlásíme údaji, které jsme zadali při konfiguraci pyLoadu.
Další nastavení
Ještě si pyLoad musíme přes toto rozhraní donastavit - toto nastavení je důležité pouze, pokud máme pyLoad v kontejneru na Omnii. Nahoře klikneme na Konfigurace a vlevo v menu klikneme na Oprávnění.
Zde změníme:
Change ownership of downloads: zapnuto
Username for ownership: user1
Já osobně si ještě ve Všeobecné → Všeobecné nastavuji:
Create folder for each package: vypnuto, aby se mi nevytvářela složka pro každý download.
Pokud chci mít více uživatelů ve stejné instanci další uživatele si mohu vytvořit. V terminálu se přesunu do kontejneru:
systemctl stop pyload.service
cd /root/pyload
python pyLoadCore.py -u
Zobrazí se mi interaktivní menu, kde mohu přidávat / mazat / upravovat uživatele. Pak už jenom nezapomenu zase nastartovat pyLoad:
systemctl start pyload.service
Takto mohu mít více uživatelů na jednu instanci – tzn. všichni stahují soubory na jednom místě a soubory jsou stahovány do jednoho místa a všichni všechno vidí. To obvykle není úplně chtěné. Řeším to tak, že každému uživateli vytvořím "jeho" kontejner. Tomuto kontejneru následně přiřadím jeho doménu, tj. uživatel user1 se dostane na svůj pyLoad user1.xxx, uživatel user2 zase na user2.xxx atd. Tj. jen zopakuji celý návod pro další uživatele - každý má vlastní kontejner s vlastním serverem. V dalším článku se každému ještě nainstaluje jeho instance Transmission na stahování torrentů.