Sign inSign up

robostlund/rtorrent-rutorrent-ovpn

By robostlund

Updated over 8 years ago

Container running rtorrent, nginx, php-fpm, openvpn (configured for ovpn.com)

Image
1

3.3K

robostlund/rtorrent-rutorrent-ovpn repository overview

Docker container with rTorrent, ruTorrent and OpenVPN configured for ovpn.com


Ubuntu-based tags:
  • latest (64 bit)
  • latest32 (32 bit)

Information

Multiple processes inside the container managed by supervisord:

  • nginx
  • php-fpm
  • rtorrent
  • openvpn
  • openvpn_healthcheck (will autorestart openvpn tunnel if it stops working)

Environment variables:
  • ENV_OVPN_USER: Specify your user account on ovpn.com (required)
  • ENV_OVPN_PASS: Specify your user password on ovpn.com (required)
  • ENV_OVPN_PROTOCOL: Specify which protocol you would like to use for openvpn, can be tcp or udp (default udp)
  • ENV_OVPN_INTERFACE: Specify openvpn interface name here (default ovpn)
  • ENV_OVPN_REMOTE_POOL_01: Specify first pool to use for ovpn here (default pool.prd.se.ovpn.com 1194)
  • ENV_OVPN_REMOTE_POOL_02: Specify secondary pool to use for ovpn here (default pool.prd.se.ovpn.com 1195)
  • ENV_PHP_MEM: Specify max memory usage for php-fpm here (default 512M)
  • ENV_RTORRENT_UID: Specify uid for rtorrent user here (default 1000)
  • ENV_RTORRENT_GID: Specify gid for rtorrent user here (default 1000)
  • ENV_RTORRENT_PORT_RANGE: Specify port range to use for rtorrent here (default 61300-61300)
  • ENV_RTORRENT_DHT_PORT: Specify dht port for rtorrent here (disabled by default)
  • ENV_RTORRENT_MEM_USAGE: Specify max memory usage for rtorrent here (default 1g)
  • ENV_RTORRENT_DOWNLOAD_RATE: Specify download rate for rtorrent here (default 1000 = 10 mbit)
  • ENV_RTORRENT_UPLOAD_RATE: Specify upload rate for rtorrent here (default 1000 = 10 mbit)
  • ENV_RTORRENT_MAX_UPLOADS: Specify max upload for rtorrent here (default 0)
  • ENV_RTORRENT_MAX_DOWNLOADS: Specify max download for rtorrent here (default 0)
  • ENV_RTORRENT_MAX_UPLOADS_PER_TORRENT: Specify max uploads per torrent for rtorrent here (default 10)
  • ENV_RTORRENT_MIN_PEERS_PER_TORRENT: Specify min peers per torrent for rtorrent here (default 10)
  • ENV_RTORRENT_MAX_PEERS_PER_TORRENT: Specify max peers per torrent for rtorrent here (default 50)
  • ENV_RTORRENT_EXECUTE: Will add this to rtorrent.rc: execute = $ENV_RTORRENT_EXECUTE (disabled by default)
  • ENV_RTORRENT_EXECUTE_DOWNLOAD_FINISHED: Will add this to rtorrent.rc: event.download.finished,fileprocessing,"execute=$ENV_RTORRENT_EXECUTE_DOWNLOAD_FINISHED" (disabled by default)

Volume configuration:
  • /data
    • /data/log
      • /data/log/nginx
      • /data/log/openvpn
      • /data/log/rtorrent
      • /data/log/rutorrent
    • /data/nginx
    • /data/rtorrent
      • /data/rtorrent/downloads
      • /data/rtorrent/session
    • /data/rutorrent

iptables rules:
  • eth0 interface:
    • allowed incoming:
      • port 80/tcp
    • allowed outgoing:
      • port 53/tcp and udp
      • port 1194/udp
      • port 1195/udp
      • port 1196/udp
      • port 1197/udp
      • icmp
  • openvpn interface:
    • allowed incoming:
      • port ENV_RTORRENT_PORT_RANGE/tcp
      • port ENV_RTORRENT_PORT_RANGE/udp
      • port ENV_RTORRENT_DHT_PORT/udp
    • allowed outgoing:
      • everything

Adding basic auth to rtorrent:

Put htpasswd into your /data/nginx folder, the container will re-read htpasswd each time it starts. To remote auth, simply remove /data/nginx/htpasswd and restart your container.

$ printf "username:$(openssl passwd -1 V3RySEcRe7)\n" >> /data/nginx/htpasswd 

Container start examples
Example, 64-bit:
$ docker run -dt --name rtorrent --hostname rtorrent -p 8080:80 --cap-add=NET_ADMIN -e ENV_OVPN_USER=my_ovpn_username -e ENV_OVPN_PASS=my_ovpn_password -v /tmp/data:/data robostlund/rtorrent-rutorrent-ovpn:latest
Example, 32-bit:
$ docker run -dt --name rtorrent --hostname rtorrent -p 8080:80 --cap-add=NET_ADMIN -e ENV_OVPN_USER=my_ovpn_username -e ENV_OVPN_PASS=my_ovpn_password -v /tmp/data:/data robostlund/rtorrent-rutorrent-ovpn:latest32

Ansible task:
Example, 64-bit:
    - name: create docker container
      docker_container:
        name: 'rtorrent'
        hostname: rtorrent
        memory: '1g'
        memory_reservation: '1g'
        oom_killer: yes
        image: robostlund/rtorrent-rutorrent-ovpn:latest
        recreate: yes
        cleanup: yes
        ports:
          - "8080:80"
        volume_driver: 'overlay2'
        volumes:
          - '/tmp/data:/data'
        capabilities:
          - 'NET_ADMIN'
        env:
          ENV_OVPN_USER: my_ovpn_username
          ENV_OVPN_PASS: my_ovpn_password
      tags: docker_start
Example, 32-bit:
    - name: create docker container
      docker_container:
        name: 'rtorrent32'
        hostname: rtorrent
        memory: '1g'
        memory_reservation: '1g'
        oom_killer: yes
        image: robostlund/rtorrent-rutorrent-ovpn:latest32
        recreate: yes
        cleanup: yes
        ports:
          - "8080:80"
        volume_driver: 'overlay2'
        volumes:
          - '/tmp/data:/data'
        capabilities:
          - 'NET_ADMIN'
        env:
          ENV_OVPN_USER: my_ovpn_username
          ENV_OVPN_PASS: my_ovpn_password
      tags: docker_start

Access rutorrent-interface: enter http://your_host_address:8080

Tag summary

Content type

Image

Digest

Size

219.4 MB

Last updated

over 8 years ago

docker pull robostlund/rtorrent-rutorrent-ovpn