Para seguir el proceso de migración de mi Home Lab desde una pequeña Raspberry Pi 4 a un OptiPlex 7050 ejecutando Proxmox ahora le toca el turno a qBittorrent, un cliente gratuito y fiable del protocolo P2P Bittorrent.
En esta ocasion, en lugar de realizar la instalación de qBittorrent en Docker, se utilizará un contenedor ligero LXC de Proxmox con TurnKey Core. El procedimiento para crear este LXC es el mismo que usé para ejecutar Docker en Proxmox LXC.
Características del LXC
Este cliente de Bittorrent con qBittorrent se ejecutará sobre un LXC con las siguientes características:
- LXC no privilegiado, sin nesting y sin
keyctl
- CT ID 301
- Password + SSH key file
- Disco de 2GB
- CPU con 1 core
- 1024MB de memoria
- IP fija 192.168.1.91
Después de crear el LXC, y antes de ponerlo en marcha, se añade el mismo punto de montaje que la instalación de Samba:
# Añadir el punto de montaje al contenedor LXC (el directorio en LXC se crea automáticamente)
pct set 301 -mp0 /data/samba,mp=/mnt/samba
Esta instrucción añade la siguiente línea al archivo de configuración de esta máquina /etc/pve/lxc/301.conf
:
mp0: /data/samba,mp=/mnt/samba
A continuación se pone en marcha el LXC desde la CLI de Proxmox y se procede a configurarlo de la misma manera que ya expliqué en el artículo sobre LXC y Docker:
pct start 301
Acceder al LXC
Se puede acceder al LXC utilizando la opción Console
de la GUI o, mucho mejor, mediante SSH gracias a la configuración de las claves públicas que se hizo en el mismo:
ssh root@192.168.1.91
Instalación de qBittorrent
La instalación de qBittorrent en una distribución basada en Debian es muy sencilla usando el comando apt
. En este caso se instalará qBittorrent-nox que está especialmente diseñado para sistemas headless y tiene una interfície web accesible en http://<ip>:8080
:
apt update
apt install qbittorrent-nox -y
Usuario sin privilegios
Para aumentar la seguridad, se ejecutará qBittorrent-nox con un usuario sin privilegios:
adduser --system --uid 200 --group qbittorrent-nox
Nota: Se utiliza el UID 200 y el GID 200 para que no haya solapamiento con otros usuarios del host o de otros contenedores LXC (p.ej. el de Samba).
A continuación se crea un grupo sambashare
con el mismo GID 111 que tiene en el LXC de Samba y se añade al usuario qbittorrent-nox
para no tener problemas con los permisos de los directorios montados bajo /mnt/samba
:
addgroup --system --gid 111 sambashare
adduser qbittorrent-nox sambashare
Unidad de servicio de systemd
Para ejecutar qBittorrent-nox como servicio, es necesario crear una unidad de servicio de systemd
. Para ello se crea el fichero /etc/systemd/system/qbittorrent-nox.service
:
nano /etc/systemd/system/qbittorrent-nox.service
Con el siguiente contenido:
[Unit]
Description=qBittorrent Command Line Client
After=network.target
[Service]
Type=forking
User=qbittorrent-nox
Group=sambashare
UMask=007
ExecStart=/usr/bin/qbittorrent-nox -d --webui-port=8080
Restart=on-failure
[Install]
WantedBy=multi-user.target
Nota: Se establece que la umask de los ficheros y directorios creados por qbittorrent-nox
sea 007 (lectura (4), escritura (2) y ejecución (1) disponibles para el usuario y el grupo). Esto hace que los ficheros creados tengan los permisos rw-rw----
y los directorios rwxrwx---
.
Finalmente se reinicia el daemon de systemd
y se pone en marcha el servicio qbittorent-nox
asegurándose que se habilita en el inicio:
systemctl daemon-reload
systemctl start qbittorrent-nox
systemctl enable qbittorrent-nox
Configuración
Una vez en marcha, se puede acceder a qBittorrent a través del puerto 8080 (en este ejemplo http://192.168.1.91:8080) y comenzar la configuración.
Lo primero y más importante es cambiar la contraseña de acceso para el usuario admin
(por defecto es adminadmin
):
- Acceder al menú
Tools > Options
- Acceder a la pestaña
Web UI
- En la sección
Authentication
:- Password →
********
- Password →
A continuación se configura el resto de opciones:
- Acceder a la pestaña
Downloads
- En la sección
When adding a torrent
:- Marcar la opción Delete .torrent files afterwards
- En la sección general:
- Marcar la opción Pre-allocate disk space for all files
- En la sección
Saving Management
:- Default Save Path:
/home/qbittorrent-nox/Downloads/
→/mnt/samba/torrents/downloaded/
- Keep incomplete torrents in:
/home/qbittorrent-nox/Downloads/temp/
→/mnt/samba/torrents/downloading/
- Default Save Path:
- En la sección
Automatically add torrents from
:- Monitored Folder:
/mnt/samba/torrents/incoming/
- Monitored Folder:
Y todas las que se necesiten ;-)
Prueba
La “prueba de fuego” es descargar la ISO de Ubuntu Server 22.04.3 LTS (ubuntu-22.04.3-live-server-amd64.iso.torrent
):
- Acceder al menú
File > Add Torrent Link
- Pegar la URL
https://releases.ubuntu.com/22.04/ubuntu-22.04.3-live-server-amd64.iso.torrent
- Pulsar el botón
Download
Si todo funciona correctamente, la descarga debería producirse rápidamente tal como se muestra en la siguiente captura de pantalla: