qbittorrenty

> Updates
This commit is contained in:
Eugene Amos 2023-12-05 18:12:29 -08:00
parent e7e687df77
commit 33aa93e4d4
2 changed files with 52 additions and 51 deletions

View File

@ -12,8 +12,8 @@
<br />
<br />
>&nbsp;
> &nbsp;
>
> * [inspector](https://gitea.euronvault.com/euronvault/eScripts/src/branch/main/inspector)
> * Monitor the network health of a container..
> * [ip_checker](https://gitea.euronvault.com/euronvault/eScripts/src/branch/main/ip_checker)
@ -24,8 +24,7 @@
> * Set the category of the added file to a special category based on if the file is 1080p or 2160p AND if the file is a Show.
> * [watchtower](https://gitea.euronvault.com/euronvault/eScripts/src/branch/main/watchtower)
> * Monitor, automate and update Docker container images.
></br>&nbsp;
> </br>&nbsp;
<br />
<br />

View File

@ -12,6 +12,7 @@
# :clipboard: Notes: `assign_category.py`
A script that will auto assign a category of an incoming torrent.
<details>
<summary><strong>assign_category.py</strong> notes</summary>
</br>
@ -23,18 +24,16 @@ When the script is called it will do the following:
1. Check the torrent files name for a season/episode pattern using the format of `SxxExx`. This check is also for uppercase or lowercase "s" & "e" and any number or combination of numbers in the `"xx"` spots.
2. Next the script will check if **"1080p"** or **"2160p"** is in the name.
- If both **#1** and **#2** are **TRUE**, then the category for that added torrent will change to `category_1080_shows`.
- If both or either are **FALSE** then the script will move to **#3**.
></br>**Note:** &nbsp;When you **right click** on a **category** in qbittorrent you can edit the **save path** location.</br>&nbsp;
> </br>**Note:** &nbsp;When you **right click** on a **category** in qbittorrent you can edit the **save path** location.</br>&nbsp;
3. Next the script will again check for **"1080p"** or **"2160p"** *AND* **"YTS.MX"** in the name.
- If **TRUE** then the added torrent is a movie and the category will change to `category_1080_movies`.
></br>**Note:** &nbsp;*95%* of the time I only add movies from **YTS.MX**. This can be changed to any movie identifier needed.</br>&nbsp;
> </br>**Note:** &nbsp;*95%* of the time I only add movies from **YTS.MX**. This can be changed to any movie identifier needed.</br>&nbsp;
</details>
<br />
@ -44,6 +43,7 @@ When the script is called it will do the following:
# :clipboard: Notes: `docker-compose-qbittorrent.yml`
This docker-compose file is traditionally used to create and start a container from the command line. For Portainer we can just copy and paste this script into the web editor field.
<details>
<summary><strong>docker-compose-qbittorrent.yml</strong> notes</summary>
</br>
@ -55,37 +55,37 @@ This will create two services or containers called **qbittorrent** and **qbittor
Key parts to this container are:
- ### **image:**
- <a href="https://docs.linuxserver.io/images/docker-qbittorrent" target="blank">linuxserver/qbittorrent:latest</a>: &nbsp; P2P bittorrent client specially built by the linuxserver.io team.
- ### **volumes:**
- `/home/<USERNAME>/docker/qbittorrent/custom_scripts:/custom-cont-init.d:ro`
</br></br>
This will be the location where the **linuxserver.io** image looks for custom scripts to run at the start of the container. Our custom script `extra_packages.sh` will need to go in this folder.</br></br>
For more info you can see the <a href="https://docs.linuxserver.io/general/container-customization/#custom-scripts" target="blank">documentation</a>.
- ### **ports:**
</br></br>
This will be the location where the **linuxserver.io** image looks for custom scripts to run at the start of the container. Our custom script `extra_packages.sh` will need to go in this folder.</br></br>
For more info you can see the <a href="https://docs.linuxserver.io/general/container-customization/#custom-scripts" target="blank">documentation</a>.
- ### **ports:**
- The port section will not be used if we are using **qbittorrent-openvpn** container. All web traffic will be diverted threw that container.
- ### **healthcheck:**
- ### **healthcheck:**
- A feature of Docker that will check to see if the container is healthy or exited (bad). You will need to change `<SERVER IP ADDRESS>` to home server IP address.
</br></br>
In this configuration it will check to see if the container has a healthy network connection every 60 seconds. On 3 failed attempts it the container will get labeled as `exited`.</br></br>
It is multiple ways or reasons to use **healthcheck** but for our purposes it will be used by the `inspector_qb.py` script which will reboot the container when needed.
- ### **labels:**
</br></br>
In this configuration it will check to see if the container has a healthy network connection every 60 seconds. On 3 failed attempts it the container will get labeled as `exited`.</br></br>
It is multiple ways or reasons to use **healthcheck** but for our purposes it will be used by the `inspector_qb.py` script which will reboot the container when needed.
- ### **labels:**
- `com.centurylinklabs.watchtower.depends-on: "qbittorrent-openvpn"` - Used by watchtower to for starting and stopping containers. This container will not be rebooted before `qbittorrent-openvpn` has already done so.
- ### **network_mode:**
- ### **network_mode:**
- Tells Docker that the all network activity to container `qbittorrent` will go threw `qbittorrent-openvpn` container.
- ### **depends_on:**
- ### **depends_on:**
- Tells Docker that the container `qbittorrent` can only be run/started if `qbittorrent-openvpn` has a healthy healthcheck status.
## `qbittorrent-openvpn container`
@ -93,41 +93,41 @@ Key parts to this container are:
The only function of this container is to establish a **VPN** network connection.</br></br>
Key parts to this container are:
- ### **image:**
- ### **image:**
- <a href="https://haugene.github.io/docker-transmission-openvpn" target="blank">haugene/transmission-openvpn</a>: &nbsp; A Docker container used as an OpenVPN network tunnel.
- ### **cap_add:**
- ### **cap_add:**
- Since we are connecting to a VPN, this container will need admin access to network related functions.
- ### **ports:**
- ### **ports:**
- This will open up ports that `qbittorrent` container will need for networking.
</br></br>
The web port for all `linuxserver.io` images are different in that both the `<external>:<internal>` ports have to be the same. Usually for most Docker containers your `<external>` port can change to whatever you want it to be BUT the `<internal>` port will have to stay the same.</br></br>
I will be using port **8124** as indicated in the code below. The port can be changed, just remember that both port numbers will need to be the same for the `qbittorrent` container to get a network connection.
</br></br>
``` yaml
</br></br>
The web port for all `linuxserver.io` images are different in that both the `<external>:<internal>` ports have to be the same. Usually for most Docker containers your `<external>` port can change to whatever you want it to be BUT the `<internal>` port will have to stay the same.</br></br>
I will be using port **8124** as indicated in the code below. The port can be changed, just remember that both port numbers will need to be the same for the `qbittorrent` container to get a network connection.
</br></br>
```yaml
8124:8124/tcp # qbittorrent web port
6881:6881/tcp # qbittorrent tcp connection port
6881:6881/udp # qbittorrent udp connection port
```
- ### **environment**
- ### **environment**
- **OpenVPN Provider Info:** This is where you will enter your credentials from your VPN provider.</BR></BR>
I am using `Privado` for my VPN connection. You can use any provider that uses OpenVPN connections. For a list of supported providers that this container can use <a href="https://haugene.github.io/docker-transmission-openvpn/supported-providers" target="blank">go here</a>. You can also find the correct name to put in the `OPENVPN_PROVIDER` section on the same part of the website.
I am using `Privado` for my VPN connection. You can use any provider that uses OpenVPN connections. For a list of supported providers that this container can use <a href="https://haugene.github.io/docker-transmission-openvpn/supported-providers" target="blank">go here</a>. You can also find the correct name to put in the `OPENVPN_PROVIDER` section on the same part of the website.
</BR></BR>
``` yaml
```yaml
OPENVPN_PROVIDER=<PROVIDER NAME>
OPENVPN_USERNAME=<PROVIDER USERNAME>
OPENVPN_PASSWORD=<PROVIDER PASSWORD>
OPENVPN_CONFIG=default
```
- **Local Network:** When the VPN has a successful connection, you wont be able to get to `qbittorrent` web gui. By setting this to your local network IP address range you will be able to access the gui from any IP address on your side of the router. To access the gui outside of your house, you will need to set up a reverse proxy in Synology NAS or similar.
</details>
@ -152,35 +152,37 @@ linuxserver.io uses [**Alpine OS**](https://www.alpinelinux.org/releases) to bui
The first part of the script links to the **edge repo** so we can download and install it.
``` shell
```shell
# Add the "edge" testing repository
echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
```
This will check for updates to the Alpine repo
``` shell
```shell
# Update the package list
apk update
```
This will install **Python3** first then install a version of pip3 for Alpine called **py3-pip**
``` shell
```shell
# Install Python and pip
apk add python3 py3-pip
```
The last part of the script will install Alpines version of **qbittorrent-api**
``` shell
```shell
# Install qbittorrent-api
apk add py3-qbittorrent-api
```
></br>**Note:** &nbsp;All `echo` lines will be printed out to the logs and the terminal. This way if for whatever reason the script is not working you can search the logs to troubleshoot the issue.</br>&nbsp;
> </br>**Note:** &nbsp;All `echo` lines will be printed out to the logs and the terminal. This way if for whatever reason the script is not working you can search the logs to troubleshoot the issue.</br>&nbsp;
</details>
<br />
<br />
<br />
<br />
<p align="center">
<h2 align="center">For install instructions see the <a href="https://wiki.euronvault.com/qbittorrent" target="blank">wiki</a>.</h2>
</p>