Sign inSign up

kdtheory/rutorrent

By kdtheory

Updated 10 months ago

Image Docker basée sur `crazymax/rtorrent-rutorrent`,

Image
Web servers
0

2.4K

kdtheory/rutorrent repository overview

kdtheory/rutorrent

Image Docker basée sur crazymax/rtorrent-rutorrent, optimisée pour les environnements lourds (plusieurs milliers de torrents). Cette image inclut un tuning PHP/rTorrent complet, un healthcheck intégré, des métriques internes et des logs détaillés. Compatible avec les configurations VPN type Gluetun.


Fonctionnalités principales

  • Optimisation complète de PHP-FPM et rTorrent pour les grandes bibliothèques
  • Préconfiguration mémoire et réseau adaptée à un usage intensif
  • Plugin intégré : rutorrent-ratiocolor (https://github.com/Micdu70/rutorrent-ratiocolor)
  • Métriques système CPU/RAM collectées automatiquement
  • Healthcheck intégré sur le port HTTP
  • Compatibilité Gluetun (VPN + port forwarding)
  • Logs parlants pour simplifier le debug
  • Build CI/CD automatisé via GitLab

Exemple d’utilisation avec Docker Compose (anonymisé)

version: "3.9"

services:
  vpn:
    image: qmcgaw/gluetun:latest
    container_name: vpn
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun:/dev/net/tun
    environment:
      - VPN_SERVICE_PROVIDER=custom
      - VPN_TYPE=wireguard
      - WIREGUARD_ADDRESSES=10.2.0.2/32
      - VPN_PORT_FORWARDING=on
    volumes:
      - ./config/gluetun:/gluetun
    restart: unless-stopped

  rutorrent:
    image: kdtheory/rutorrent:latest
    container_name: rutorrent
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
      - PORT_RTORRENT=50341
    volumes:
      - ./config/rutorrent:/config
      - ./downloads:/data/downloads
      - ./session:/data/.session
    restart: unless-stopped
    network_mode: "service:vpn"

Variables d’environnement

VariableDescriptionValeur par défaut
PUIDID utilisateur interne1000
PGIDID groupe interne1000
TZFuseau horaireEurope/Paris
PORT_RTORRENTPort unique utilisé par Gluetun50341
SESSION_DIRChemin de la session rTorrent/config/.session

Optimisations système et PHP/rTorrent

ComposantParamètreValeurDescription
PHP-FPMmemory_limit1536MLimite mémoire PHP
PHP-FPMpm.max_children48Processus enfants simultanés
rTorrentpieces.memory.max2000MMémoire max pour le hashing
rTorrentmax_memory_usage3000MMémoire max globale
rTorrenttrackers.numwant200Peers par tracker

Ces réglages assurent une stabilité optimale pour de très grandes bibliothèques de torrents si la VM a suffisamment de RAM (16GB recommandé).


Métriques internes

Un script intégré collecte automatiquement les métriques toutes les 60 secondes et les écrit dans /tmp/metrics.log :

[2025-11-10 15:42:17] CPU: 7.3% | RAM: 482MB

Visualiser les métriques :

docker exec -it rutorrent cat /tmp/metrics.log

Healthcheck

Le conteneur est marqué healthy si le port HTTP répond :

HEALTHCHECK --interval=30s --timeout=10s --retries=5 CMD nc -z localhost 80 || exit 1

Vérification :

docker inspect --format='{{.State.Health.Status}}' rutorrent

Journaux (Logs)

TypeEmplacement
rTorrent/tmp/rtorrent.log
Métriques/tmp/metrics.log
Nginx / PHP-FPMdocker logs rutorrent

Visualisation :

docker logs -f rutorrent

Débogage rapide

# Vérifier état du container
docker inspect --format='{{.State.Health.Status}}' rutorrent

# Lire le log rTorrent
docker exec -it rutorrent tail -f /tmp/rtorrent.log

# Vérifier la socket SCGI
docker exec -it rutorrent ls -l /run/rtorrent/rtorrent.sock

# Consulter métriques système
docker exec -it rutorrent cat /tmp/metrics.log

Build local

docker build -t kdtheory/rutorrent:latest .

CI/CD & Renovate

  • Build et push automatiques vers Docker Hub via GitLab CI.
  • Renovate peut surveiller FROM crazymax/rtorrent-rutorrent:... dans le Dockerfile et ouvrir PRs.
  • Exemple renovate.json (à placer à la racine) :
{
  "extends": ["config:recommended"],
  "regexManagers": [
    {
      "fileMatch": ["^Dockerfile$"],
      "matchStrings": ["FROM\\s+(?<depName>crazymax/rtorrent-rutorrent):(?<currentValue>\\S+)"],
      "datasourceTemplate": "docker"
    }
  ],
  "packageRules": [
    {
      "matchPackageNames": ["crazymax/rtorrent-rutorrent"],
      "groupName": "rutorrent base image update",
      "automerge": true,
      "automergeType": "pr"
    }
  ],
  "assignees": ["@KDTheory"],
  "$schema": "https://docs.renovatebot.com/renovate-schema.json"
}

Licence

MIT © Kevin Darmon

Tag summary

Content type

Image

Digest

sha256:e99725368

Size

146.2 MB

Last updated

10 months ago

docker pull kdtheory/rutorrent