From d03db478b4bdb3de151c55076f93e6dac5eb817c Mon Sep 17 00:00:00 2001 From: Nicolas MASSE Date: Sat, 16 Jun 2018 21:44:27 +0200 Subject: [PATCH] initial dockerfile for rtorrent --- rtorrent/Dockerfile | 36 ++++++++++++++++++++++++++ rtorrent/custom.rc | 60 ++++++++++++++++++++++++++++++++++++++++++++ rtorrent/rtorrent.rc | 17 +++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 rtorrent/Dockerfile create mode 100644 rtorrent/custom.rc create mode 100644 rtorrent/rtorrent.rc diff --git a/rtorrent/Dockerfile b/rtorrent/Dockerfile new file mode 100644 index 0000000..c3ad367 --- /dev/null +++ b/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" ] + diff --git a/rtorrent/custom.rc b/rtorrent/custom.rc new file mode 100644 index 0000000..ce6a70b --- /dev/null +++ b/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 diff --git a/rtorrent/rtorrent.rc b/rtorrent/rtorrent.rc new file mode 100644 index 0000000..3e396b1 --- /dev/null +++ b/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