Coder Social home page Coder Social logo

sj50 / transmission-watch-folders-docker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from soflane/transmission-watch-folders-docker

1.0 0.0 0.0 57 KB

A script to facilitate multiple watch directories when using Transmission CLI

License: MIT License

Python 88.33% Shell 1.11% Dockerfile 10.56%

transmission-watch-folders-docker's Introduction

Transmission Watch Folders

A docker and Python3 version of

The goal is to add as "addon" in a torrent download docker stack. My personnal plan is to use it together with some sync folder on my OneDrive or other sync service (but that would be used with another container)

What is Transmission-multiple-watch-folders

A small Python script which provides a way to automate multiple watch directories when using TransmissionRPC, an API version of the popular Transmission torrent client. This should work remotly as the torrent is send as base64 encoded file throught the API.

The script runs in the background and searches the specified watch directories for torrent files, every 1 minute by default.

Getting Started

Prerequisites

  • Docker
  • Transmission

Usage

Here are some example snippets to help you get started creating a container.

Docker

docker run \
  --name=Transmission-folders \
  -e RPC_DOWNLOAD_TV_HD_FOLDER=/downloads/TV_HD \
  -e RPC_DOWNLOAD_TV_UHD_FOLDER=/downloads/TV_UHD \
  -e RPC_DOWNLOAD_MOVIES_HD_FOLDER=/downloads/MOVIES_HD \
  -e RPC_DOWNLOAD_MOVIES_UHD_FOLDER=/downloads/MOVIES_UHD \
  -e RPC_DOWNLOAD_MUSIC_FOLDER=/downloads/MUSIC \
  -e RPC_CLIENT_USER=user \
  -e RPC_CLIENT_PASSWORD=PASSWORD \
  -v path to torrents folder:/torrents \
  --restart unless-stopped \
  sameerjain50/transmission-watch-folders

Docker

version: "3"
services:
  Transmission-watch-folders:
    image: sameerjain50/transmission-watch-folders
    container_name: Transmission-watch-folders
    restart: unless-stopped
    volumes:
      - path to torrents watch folder:/torrents
    environment:
      - RPC_DOWNLOAD_TV_HD_FOLDER=/downloads/TV_HD
      - RPC_DOWNLOAD_TV_UHD_FOLDER=/downloads/TV_UHD
      - RPC_DOWNLOAD_MOVIES_HD_FOLDER=/downloads/MOVIES_HD
      - RPC_DOWNLOAD_MOVIES_UHD_FOLDER=/downloads/MOVIES_UHD
      - RPC_DOWNLOAD_MUSIC_FOLDER=/downloads/MUSIC 
      - RPC_CLIENT_USER=user
      - RPC_CLIENT_PASSWORD=PASSWORD

Working with environment variables

All fields below are required, but some of them have already a default value, making the docker-compose file or command less bulky.

Variable Use Default value
RPC_WATCH_TV_HD_FOLDER Folder to watch .torrent files (TV shows HD) /torrents/TV_HD
RPC_WATCH_TV_UHD_FOLDER Folder to watch .torrent files (TV shows UHD) /torrents/TV_UHD
RPC_WATCH_MOVIES_HD_FOLDER Folder to watch .torrent files (Movies_HD) /torrents/Movies_HD
RPC_WATCH_MOVIES_UHD_FOLDER Folder to watch .torrent files (Movies_UHD) /torrents/Movies_HD
RPC_WATCH_TV_FOLDER Folder to watch .torrent files (Music) /torrents/Music
RPC_DOWNLOAD_TV_HD_FOLDER Where Transmission should download TV shows HD
RPC_DOWNLOAD_TV_UHD_FOLDER Where Transmission should download TV shows UHD
RPC_DOWNLOAD_MOVIES_HD_FOLDER Where Transmission should download Movies HD
RPC_DOWNLOAD_MOVIES_UHD_FOLDER Where Transmission should download Movies UHD
RPC_DOWNLOAD_MUSIC_FOLDER Where Transmission should download Music
RPC_CLIENT_HOST Transmission Web UI host transmision
RPC_CLIENT_PORT Transmission Web UI port 9091
RPC_CLIENT_USER Transmission Web UI username
RPC_CLIENT_PASSWORD Transmission Web UI password

Logs

For now, the logs will come in this folder so feel free to make a volume.

/opt/logs

It is not my priority, but best would be to access it via docker logs also

Configuration

Adding Or Removing Directories

Because this is a pretty quick-and-dirty solution, there is only 5 watchfolders. But as open source is open, don't hesitate to pull requests.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.