Como base para la próxima publicación de una serie de artículos, voy a explicar la forma de instalar los clientes torrent ruTorrent y qBittorrent mediante docker.
Preparación
Antes de proceder al despliegue de los contenedores vamos a crear una serie de carpetas donde guardar sus configuraciones y las descargas de los archivos .torrent
Creamos las carpetas rutorrent y qbittorrent, una para cada contenedor, aunque tu puedes llamarlas como mas te guste
A su vez en la carpeta rutorrent creamos las carpetas:
- data: Guarda la configuración de rTorrent y ruTorrent, archivos logs, etc.
- passwd: Guarda los ficheros htpasswd en caso de que utilicemos autentificación
- downloads: Opcional, carpeta donde se guardan las descargas, puedes seleccionar cualquier otra en la creación del contenedor

ruTorrent
Interfaz web para el cliente rTorrent, utilizo la imagen preparada por crazymax basada en Alpine Linux. Se puede desplegar utilizando docker-compose y su fichero .env pero prefiero la sencillez de ejecutarlo por terminal aunque pierda flexibilidad en la personalizaron de la configuración.
Desde la terminal, ejecuta el siguiente código:
docker run -d --name=rutorrent \
-p 6881:6881/udp \
-p 8011:8000 \
-p 8144:8080 \
-p 9009:9000 \
-p 50000:50000 \
-e PUID=1026 \
-e PGID=100 \
-v /volume1/docker/rutorrent/data:/data \
-v /volume1/descargas:/downloads \
-v /volume1/homes/carlos/torrents:/watch \
-v /volume1/docker/rutorrent/passwd:/passwd \
-v /volume1/video:/media \
--ulimit nproc=65535 \
--ulimit nofile=32000:40000 \
--restart always \
crazymax/rtorrent-rutorrent
Puedes acceder a la interfaz web desde el puerto 8144 del navegador
 img](/images/posts/2022/torrent/torrent-02_hu_5b52f4eff4a50fda.png)
Donde:
- 6881: Puerto UDP DHT
- 8000: Puerto XMLRPC, SCGI socket
- 8080: Puerto HTTP de ruTorrent
- 9000: Puerto WebDAV descargas completadas
- 50000: Conexiones entrantes
- PUID y PGID: uid y guid de tu usuario, para averiguar cuáles son debes de iniciar sesión mediante ssh en tu servidor o desde la terminal y ejecutar el commando
ĩd - /volume1/docker/rutorrent/data:/data: Guarda la configuración de rTorrent y ruTorrent, archivos logs, etc.
- /volume1/descargas:/downloads: Almacena las descargas completadas
- /volume1/homes/carlos/torrents:/watch: Para automatizar las descargas, esta carpeta está sincronizada con una carpeta de mi ordenador, el fichero
.torrentque dejo en esta carpeta (/watch) se descarga automáticamente - /volume1/docker/rutorrent/passwd:/passwd: Ficheros htpasswd en caso de que utilicemos autentificación
- volume1/video:/media: Ubicación de mi contenido multimedia, ya que ruTorrent te permite mover las descargas a otras ubicaciones y continuar /seedeando (importante si utilizas trackers privados)
qBittorrent
Utilizo la imagen proporcionada por Linuxserver, en esta ocasión utilizo portainer, creando un stack, o bien puedes crear un fichero para docker-compose y desplegarlo desde la terminal
version: "2.1"
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
environment:
- PUID=1000
- PGID=100
- TZ=Europe/Madrid
- WEBUI_PORT=8080
volumes:
- /volume1/docker/qbittorrent/:/data
- /volume1/descargas:/downloads
- /volume1/homes/carlos/torrents:/watch
- /volume1/video:/media
ports:
- 8080:8080
- 6881:6881
- 6881:6881/udp
restart: unless-stopped

Al igual que rTorrent, has de cambiar los valores de PUID y PGID por los de tu usuario, también puedes personalizar los puertos de escucha.
Con esta configuración puedes acceder a la GUI a través del puerto 8080 de tu navegador
 img](/images/posts/2022/torrent/torrent-04_hu_87a55349a4273832.png)
Cada cliente tiene sus pros y sus contras, aunque personalmente me gusta mas rTorrent por la cantidad de plugins que soporta
Espero que te haya gustado, pasa un gran día 🐧