4.1 KiB
GoBlackHole(with Debrid Proxy Support)
This is a Golang implementation go Torrent QbitTorrent with a Real Debrid Proxy Support.
Uses
- Mock Qbittorent API that supports the Arrs(Sonarr, Radarr, etc)
- Proxy support for the Arrs
The proxy is useful in filtering out un-cached Real Debrid torrents
Changelog
- View the CHANGELOG.md for the latest changes
Installation
Docker Compose
version: '3.7'
services:
blackhole:
image: cy01/blackhole:latest # or cy01/blackhole:beta
container_name: blackhole
ports:
- "8282:8282" # qBittorrent
- "8181:8181" # Proxy
user: "1000:1000"
volumes:
- ./logs:/app/logs
- ~/plex/media:/media
- ~/plex/media/symlinks/:/media/symlinks/
- ~/plex/configs/blackhole/config.json:/app/config.json # Config file, see below
environment:
- PUID=1000
- PGID=1000
- UMASK=002
- QBIT_PORT=8282 # qBittorrent Port. This is optional. You can set this in the config file
- PORT=8181 # Proxy Port. This is optional. You can set this in the config file
restart: unless-stopped
Binary
Download the binary from the releases page and run it with the config file.
./blackhole --config /path/to/config.json
Config
{
"debrid": {
"name": "realdebrid",
"host": "https://api.real-debrid.com/rest/1.0",
"api_key": "realdebrid_api_key",
"folder": "data/realdebrid/torrents/",
"rate_limit": "250/minute"
},
"proxy": {
"enabled": true,
"port": "8181",
"debug": false,
"username": "username",
"password": "password",
"cached_only": true
},
"max_cache_size": 1000,
"qbittorrent": {
"port": "8282",
"username": "admin", // deprecated
"password": "admin", // deprecated
"download_folder": "/media/symlinks/",
"categories": ["sonarr", "radarr"],
"refresh_interval": 5 // in seconds
}
}
Config Notes
Debrid Config
- This config key is important as it's used for both Blackhole and Proxy
Proxy Config
- The
enabledkey is used to enable the proxy - The
portkey is the port the proxy will listen on - The
debugkey is used to enable debug logs - The
usernameandpasswordkeys are used for basic authentication - The
cached_onlymeans only cached torrents will be returned
Qbittorrent Config
- The
portkey is the port the qBittorrent will listen on - The
download_folderis the folder where the torrents will be downloaded. e.g/media/symlinks/ - The
categorieskey is used to filter out torrents based on the category. e.gsonarr,radarr
Proxy
The proxy is useful in filtering out un-cached Real Debrid torrents.
The proxy is a simple HTTP proxy that requires basic authentication. The proxy can be enabled by setting the proxy.enabled to true in the config file.
The proxy listens on the port 8181 by default. The username and password can be set in the config file.
Setting Up Proxy in Arr
- Sonarr/Radarr
- Settings -> General -> Use Proxy
- Hostname:
localhost# or the IP of the server - Port:
8181# or the port set in the config file - Username:
username# or the username set in the config file - Password:
password# or the password set in the config file - Bypass Proxy for Local Addresses ->
No
Qbittorrent
The qBittorrent is a mock qBittorrent API that supports the Arrs(Sonarr, Radarr, etc).
Setting Up Qbittorrent in Arr
- Sonarr/Radarr
- Settings -> Download Client -> Add Client -> qBittorrent
- Host:
localhost# or the IP of the server - Port:
8282# or the port set in the config file/ docker-compose env - Username:
http://sonarr:8989# Your arr host with http/https - Password:
sonarr_token# Your arr token - Category: e.g
sonarr,radarr - Use SSL ->
No - Sequential Download ->
No|Yes(If you want to download the torrents locally instead of symlink) - Test
- Save
TODO
-
A proper name!!!!
-
Debrid
- Add more Debrid Providers
-
Proxy
-
Add more Proxy features
-
Qbittorrent
- Add more Qbittorrent features
- Persist torrents on restart/server crash
-
Add tests