Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rogerfar/rdt-client
Real-Debrid Client Proxy
https://github.com/rogerfar/rdt-client
Last synced: 8 days ago
JSON representation
Real-Debrid Client Proxy
- Host: GitHub
- URL: https://github.com/rogerfar/rdt-client
- Owner: rogerfar
- License: mit
- Created: 2020-03-31T20:50:05.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-08-01T16:58:10.000Z (3 months ago)
- Last Synced: 2024-08-01T19:35:32.794Z (3 months ago)
- Language: C#
- Size: 2.12 MB
- Stars: 781
- Watchers: 11
- Forks: 102
- Open Issues: 55
-
Metadata Files:
- Readme: README-DOCKER.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-debrid - rdt-client - Implements a fake qBittorrent API so you can hook up other applications like Sonarr, Radarr or Couchpotato (*Arr Stack / Hosting Providers (VPS, Seedbox..))
README
# [rogerfar/rdt-client](https://github.com/rogerfar/rdt-client)
Thid docker file follows the [linuxserver.io](https://linuxserver.io) pattern that leverages the [s6-overlay](https://github.com/just-containers/s6-overlay) to run the application as a service within the container. This allows for scripts to be run prior to start of the application to handle initalization and setting of permissions.rdt-client is a web a web interface to manage your torrents on Real-Debrid. It supports the following features:
* Add new torrents through magnets or files
* Download all files from Real Debrid to your local machine automatically
* Unpack all files when finished downloading
* Implements a fake qBittorrent API so you can hook up other applications like Sonarr or Couchpotato.
* Built with Angular 11 and .NET 5## Supported Architectures
Our images support multiple architectures such as `x86-64`, `arm64` and `armhf`. We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://github.com/docker/distribution/blob/master/docs/spec/manifest-v2-2.md#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
Simply pulling `rogerfar/rdt-client` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
The architectures supported by this image are:
| Architecture | Tag |
| :----: | --- |
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |## Version Tags
This image provides various versions that are available via tags. `latest` tag usually provides the latest stable version. Others are considered under development and caution must be exercised when using them.
| Tag | Description |
| :----: | --- |
| latest | Stable releases |## Usage
Here are some example snippets to help you get started creating a container.
### docker-compose ([recommended](https://docs.linuxserver.io/general/docker-compose))
Compatible with docker-compose v2 schemas.
```yaml
---
version: '3.3'
services:
rdtclient:
image: rogerfar/rdtclient
container_name: rdtclient
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- :/data/db
- :/data/downloads
logging:
driver: json-file
options:
max-size: 10m
ports:
- 6500:6500
restart: unless-stopped
```### docker cli
```
docker run -d \
--name=rdtclient \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-p 6500:6500 \
-v :/data/db \
-v :/data/downloads \
--restart unless-stopped \
rogerfar/rdtclient
```## Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `:` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
| Parameter | Function |
| :----: | --- |
| `-p 6500` | WebUI |
| `-e PUID=1000` | for UserID - see below for explanation |
| `-e PGID=1000` | for GroupID - see below for explanation |
| `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. |
| `-v /data/db` | App data. |
| `-v /data/downloads` | Location of downloads on disk. |## Environment variables from files (Docker secrets)
You can set any environment variable from a file by using a special prepend `FILE__`.
As an example:
```
-e FILE__PASSWORD=/run/secrets/mysecretpassword
```Will set the environment variable `PASSWORD` based on the contents of the `/run/secrets/mysecretpassword` file.
## Umask for running applications
For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting.
Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support.## User / Group Identifiers
When using volumes (`-v` flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user `PUID` and group `PGID`.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance `PUID=1000` and `PGID=1000`, to find yours use `id user` as below:
```
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
```
## Application SetupWebui can be found at `:6500`
## Support Info
* Shell access whilst the container is running: `docker exec -it rtdclient /bin/bash`
* To monitor the logs of the container in realtime: `docker logs -f rdtclient`
* container version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' rdtclient`
* image version number
* `docker inspect -f '{{ index .Config.Labels "build_version" }}' rogerfar/rdtclient`## Updating Info
Most of our images are static, versioned, and require an image update and container recreation to update the app inside. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
Below are the instructions for updating containers:
### Via Docker Compose
* Update all images: `docker-compose pull`
* or update a single image: `docker-compose pull rdtclient`
* Let compose update all containers as necessary: `docker-compose up -d`
* or update a single container: `docker-compose up -d rdtclient`
* You can also remove the old dangling images: `docker image prune`### Via Docker Run
* Update the image: `docker pull rogerfar/rdtclient`
* Stop the running container: `docker stop rdtclient`
* Delete the container: `docker rm rdtclient`
* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/data` folder and settings will be preserved)
* You can also remove the old dangling images: `docker image prune`### Via Watchtower auto-updater (only use if you don't remember the original parameters)
* Pull the latest image at its tag and replace it with the same env variables in one run:
```
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once rtdclient
```
* You can also remove the old dangling images: `docker image prune`**Note:** We do not endorse the use of Watchtower as a solution to automated updates of existing Docker containers. In fact we generally discourage automated updates. However, this is a useful tool for one-time manual updates of containers where you have forgotten the original parameters. In the long term, we highly recommend using [Docker Compose](https://docs.linuxserver.io/general/docker-compose).
### Image Update Notifications - Diun (Docker Image Update Notifier)
* We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.## Building locally
If you want to make local modifications to these images for development purposes or just to customize the logic:
```
git clone https://github.com/ravensorb/docker-rdtclient.git
cd docker-rdtclient
docker build \
--no-cache \
--pull \
-t rogerfar/rtd-client:latest .
```The ARM variants can be built on x86_64 hardware using `multiarch/qemu-user-static`
```
docker run --rm --privileged multiarch/qemu-user-static:register --reset
```Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.