RuTorrent

From ArchWiki
Jump to: navigation, search

Merge-arrows-2.pngThis article or section is a candidate for merging with Rutorrent with lighttpd.Merge-arrows-2.png

Notes: Same topic. (Discuss in Talk:Rutorrent with lighttpd#Merge)

ruTorrent is a web interface to rTorrent (a console based BitTorrent client). It uses rTorrent's built-in XML-RPC server to communicate with it.

It is lightweight, highly extensible, and is designed to look similar to uTorrent.

Installation

Install rutorrentAUR from the AUR. If you want to use the development version install rutorrent-gitAUR.

Web Server Configuration

Apache

Install and configure Apache with PHP according to the LAMP page.

  • Edit the open_basedir value in /etc/php/php.ini to include:
/etc/webapps/rutorrent/conf/:/usr/share/webapps/rutorrent/php/:/usr/share/webapps/rutorrent/

Install mod_scgiAUR from the AUR.

  • Load the SCGI module in /etc/httpd/conf/httpd.conf:
LoadModule scgi_module modules/mod_scgi.so
  • Enable SCGI on the port you chose for rTorrent by adding this to /etc/httpd/conf/httpd.conf:
SCGIMount /RPC2 127.0.0.1:5000
  • Lastly, add the ruTorrent folder to /etc/httpd/conf/httpd.conf with something similar to this anywhere after the inital </Directory>:
<IfModule alias_module>
  Alias /rutorrent /usr/share/webapps/rutorrent
  <Directory "/usr/share/webapps/rutorrent">
    Order allow,deny
    Allow from all
  </Directory>
</IfModule>

For Apache 2.4 the access control would be:

<IfModule alias_module>
  Alias /rutorrent /usr/share/webapps/rutorrent
  <Directory "/usr/share/webapps/rutorrent">
    Require all granted
  </Directory>
</IfModule>
Note: You should enable authentication through Apache if your site is public.

Nginx

  • Create a link from your web root to rutorrent
ln -s /usr/share/webapps/rutorrent/ /usr/share/nginx/html/rutorrent
  • Edit the open_basedir value in /etc/php/php.ini to include:
/etc/webapps/rutorrent/conf/:/usr/share/webapps/rutorrent/php/:/usr/share/webapps/rutorrent/
  • Add following location to your nginx configuration:
           location /RPC2 {
               include scgi_params;
               scgi_pass localhost:5000;
           }
  • Restart nginx:
# systemctl restart nginx

Nginx (manual installation)

  • Install nginx, php-fpm, rtorrent
tree -L 2 /usr/share/nginx/html/
/usr/share/nginx/html/
├── 50x.html
├── index.html
└── rutorrent
    ├── conf
    ├── css
    ├── images
    ├── index.html
    ├── js
    ├── lang
    ├── LICENSE.md
    ├── php
    ├── plugins
    ├── README.md
    └── share
  • Modify premissions:
sudo chmod 0777 /usr/share/nginx/html/rutorrent/share/{settings,torrents,users}
  • Make necessary changes to rtorrent and nginx:
~/.rtorrent.rc
...
scgi_port = localhost:5000
/etc/nginx/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        root /usr/share/nginx/html;
        location / {
            index  index.html index.htm;
        }
        location ~ \.php$ {
            fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;
            fastcgi_index  index.php;
            include        fastcgi.conf;
        }
        location /RPC2 {
            include scgi_params;
            scgi_pass localhost:5000;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}
Note: open_basedir is unset by default and does not have to be changed.
  • Start necessary services:
sudo systemctl start php-fpm nginx

ruTorrent Configuration

See upstream wiki here. By default the configuration files are symlinked to /etc/webapps/rutorrent/conf.

See Also

External Links