Browse Source

initial dockerfile for rtorrent

pull/1/head
Nicolas Massé 8 years ago
parent
commit
d03db478b4
  1. 36
      rtorrent/Dockerfile
  2. 60
      rtorrent/custom.rc
  3. 17
      rtorrent/rtorrent.rc

36
rtorrent/Dockerfile

@ -0,0 +1,36 @@
FROM centos:7
RUN yum update -y \
&& yum -y install rtorrent expect \
&& yum clean all \
&& rm -rf /var/cache/yum \
&& mkdir /torrent /etc/rtorrent
# Where leeched / seeded files are stored
VOLUME /torrent/download
# Where to drop .torrent files (will be picked up automatically by rtorrent)
VOLUME /torrent/incoming
# Where rtorrent stores its internal files
VOLUME /torrent/session
WORKDIR /torrent
# Standard Bittorrent Port
EXPOSE 6890/tcp
EXPOSE 6890/udp
# DHT Port
EXPOSE 6881/udp
# Standard configuration
ADD rtorrent.rc /etc/rtorrent.rc
ADD custom.rc /etc/rtorrent/custom.rc
# The unbuffer command is used as entrypoint to fake a tty.
# It is required since the daemon mode will only be available
# with rtorrent 0.9.7.
ENTRYPOINT [ "/bin/unbuffer" ]
CMD [ "/bin/rtorrent", "-n", "-o", "import=/etc/rtorrent.rc", "-o", "import=/etc/rtorrent/custom.rc" ]

60
rtorrent/custom.rc

@ -0,0 +1,60 @@
# Maximum and minimum number of peers to connect to per torrent.
#min_peers = 40
#max_peers = 100
# Same as above but for seeding completed torrents (-1 = same as downloading)
#min_peers_seed = 10
#max_peers_seed = 50
# Maximum number of simultanious uploads per torrent.
#max_uploads = 15
# Global upload and download rate in KiB. "0" for unlimited.
download_rate = 0
upload_rate = 0
# Close torrents when diskspace is low.
#schedule = low_diskspace,5,60,close_low_diskspace=1024M
# The ip address reported to the tracker.
#ip = 127.0.0.1
#ip = rakshasa.no
# The ip address the listening socket and outgoing connections is
# bound to.
#bind = 127.0.0.1
#bind = rakshasa.no
# Start opening ports at a random position within the port range.
#port_random = no
# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#check_hash = no
# Set whether the client should try to connect to UDP trackers.
use_udp_trackers = yes
# Alternative calls to bind and ip that should handle dynamic ip's.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa
# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
# encryption = allow_incoming,enable_retry,prefer_plaintext
# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
#
dht = auto
# Enable peer exchange (for torrents not marked private)
#
peer_exchange = yes

17
rtorrent/rtorrent.rc

@ -0,0 +1,17 @@
# Default directory to save the downloaded torrents.
directory = /torrent/download
# Default session directory.
session = /torrent/session
# Watch a directory for new torrents, and stop those that have been
# deleted.
schedule = watch_directory,5,5,load_start=/torrent/incoming/*.torrent
schedule = untied_directory,5,5,stop_untied=
# Port range to use for listening.
port_range = 6890-6890
# UDP port to use for DHT.
#
dht_port = 6881
Loading…
Cancel
Save