Skip to content
No description, website, or topics provided.
Go Shell
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd/hoarder
metainfo
queue
.gitignore
.gitmodules
.travis.yml
LICENSE
README.md
hoarder.sh

README.md

Build Status

Hoarder

Uploads .torrent files from a local "blackhole" to a remote (SSH) rtorrent watch folder. From there, rtorrent is polled over XMLRPC as to whether the torrent is completed. Finally, the files are downloaded over a multithreaded SSH connection and saved to the local machine. The blackhole is used as a queue and will have its .torrent files deleted.

Installation

Manual

  1. Install Go for your Operating System
  2. Run $ go get -u github.com/tblyler/hoarder/cmd/hoarder
  3. If your GOPATH is in your PATH, run $ hoarder -config $PATH_TO_HOARDER_CONF

Precompiled

  1. Go to the Hoarder releases page
  2. Look at whichever release you're interested in
  3. Download a precompiled binary for the given operating system of your choice
  4. Make the binary executable and run

Configuration

Example

# The file mode to use for downloaded files and directories
file_download_filemode: 0777

# The correlation of .torrent file paths and where their contents should be downloaded to"
watch_to_download_paths:
  /home/tblyler/torrent_files/tv: /home/tblyler/Downloads/tv
  /home/tblyler/torrent_files/movies: /home/tblyler/Downloads/movies
  /home/tblyler/torrent_files: /home/tblyler/Downloads

# The root path to temporarily download to and then move to the folder in the setting above. The destination path is created underneath the temp_download_path
temp_download_path: /home/tblyler/tempDownloads

# If defined, the finished .torrent files finished are moved to their respected path here. Otherwise, they are deleted.
watch_to_finish_path:
  /home/tblyler/torrent_files/tv: /home/tblyler/completed_torrent_files/tv
  /home/tblyler/torrent_files: /home/tblyler/completed_torrent_files

# The time in nano seconds to update the list of torrents and their statuses in rTorrent
rtorrent_update_interval: 60000000000

# The number of concurrent completed torrent downloads to have at one time
download_jobs: 2

# Whether or not to attempt to resume a previously interrupted download
resume_downloads: true

# Path to the unix socket file that hoarder uses for RPC
rpc_socket_path: /tmp/hoarder.sock

# Whether or not to see if there is enough disk space before starting a download
check_disk_space: true

# (must have check_disk_space set to true) Minimum disk space to have after completed downloads (measured in bytes, 0 to disable check)
min_disk_space: 5368709120

rtorrent:
  # The address to the rtorrent XMLRPC endpoint
  addr: https://mycoolrtorrentserver.com/XMLRPC

  # true to ignore the certificate authenticity; false to honor it
  insecure_cert: false

  # The HTTP Basic auth username to use for rtorrent's XMLRPC
  username: JohnDoe

  # The HTTP Basic auth password to use for rtorrent's XMLRPC
  password: "correct horse battery staple"

ssh:
  # The ssh username to use for getting finished torrents from the remote host
  username: JohnDoe

  # You may choose to use an ssh key or ssh password. If both are supplied, the password will not be used.

  # The SSH password to use for SSH authentication
  password: "correct horse battery staple SSH"

  # The path to the private SSH key for SSH authentication
  privkey_path: /home/tblyler/.ssh/id_rsa

  # The SSH address to connect to
  addr: "mysshserver.com:22"

  # The time in nano seconds to wait for an SSH connection attempt
  connect_timeout: 30000000000
You can’t perform that action at this time.