qBitrr2 5.6.1__tar.gz → 5.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qbitrr2-5.7.0/PKG-INFO +282 -0
- qbitrr2-5.7.0/README.md +178 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/config.example.toml +36 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/pyproject.toml +1 -1
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/arss.py +390 -89
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/bundled_data.py +2 -2
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/db_lock.py +24 -10
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/main.py +232 -10
- qbitrr2-5.7.0/qBitrr/static/assets/ArrView.js +2 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/ArrView.js.map +1 -1
- qbitrr2-5.7.0/qBitrr/static/assets/ConfigView.js +6 -0
- qbitrr2-5.7.0/qBitrr/static/assets/ConfigView.js.map +1 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/LogsView.js +1 -1
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/LogsView.js.map +1 -1
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/ProcessesView.js +1 -1
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/ProcessesView.js.map +1 -1
- qbitrr2-5.7.0/qBitrr/static/assets/app.css +1 -0
- qbitrr2-5.7.0/qBitrr/static/assets/app.js +11 -0
- qbitrr2-5.7.0/qBitrr/static/assets/app.js.map +1 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/vendor.js +1 -1
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/vendor.js.map +1 -1
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/tables.py +7 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/webui.py +48 -1
- qbitrr2-5.7.0/qBitrr2.egg-info/PKG-INFO +282 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/setup.cfg +1 -1
- qbitrr2-5.6.1/PKG-INFO +0 -1210
- qbitrr2-5.6.1/README.md +0 -1106
- qbitrr2-5.6.1/qBitrr/static/assets/ArrView.js +0 -2
- qbitrr2-5.6.1/qBitrr/static/assets/ConfigView.js +0 -5
- qbitrr2-5.6.1/qBitrr/static/assets/ConfigView.js.map +0 -1
- qbitrr2-5.6.1/qBitrr/static/assets/app.css +0 -1
- qbitrr2-5.6.1/qBitrr/static/assets/app.js +0 -11
- qbitrr2-5.6.1/qBitrr/static/assets/app.js.map +0 -1
- qbitrr2-5.6.1/qBitrr2.egg-info/PKG-INFO +0 -1210
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/LICENSE +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/MANIFEST.in +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/__init__.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/auto_update.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/config.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/config_version.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/db_recovery.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/env_config.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/errors.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/ffprobe.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/gen_config.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/home_path.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/logger.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/search_activity_store.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/build.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/check-mark.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/close.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/download.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/gear.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/lidarr.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/live-streaming.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/log.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/logo.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/plus.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/process.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/react-select.esm.js +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/react-select.esm.js.map +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/refresh-arrow.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/table.js +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/table.js.map +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/trash.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/up-arrow.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/useInterval.js +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/useInterval.js.map +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/assets/visibility.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/favicon-16x16.png +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/favicon-32x32.png +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/favicon-48x48.png +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/favicon.ico +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/icon-192.png +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/icon-512.png +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/index.html +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/logov2-clean.png +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/logov2-clean.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/manifest.json +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/sw.js +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/static/vite.svg +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/utils.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr/versioning.py +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr2.egg-info/SOURCES.txt +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr2.egg-info/dependency_links.txt +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr2.egg-info/entry_points.txt +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr2.egg-info/requires.txt +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/qBitrr2.egg-info/top_level.txt +0 -0
- {qbitrr2-5.6.1 → qbitrr2-5.7.0}/setup.py +0 -0
qbitrr2-5.7.0/PKG-INFO
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: qBitrr2
|
|
3
|
+
Version: 5.7.0
|
|
4
|
+
Summary: Intelligent automation for qBittorrent and *Arr apps (Radarr/Sonarr/Lidarr) - health monitoring, instant imports, quality upgrades, request integration
|
|
5
|
+
Home-page: https://github.com/Feramance/qBitrr
|
|
6
|
+
Author: Feramance
|
|
7
|
+
Author-email: fera@fera.wtf
|
|
8
|
+
License: MIT
|
|
9
|
+
Project-URL: Homepage, https://github.com/Feramance/qBitrr
|
|
10
|
+
Project-URL: Documentation, https://feramance.github.io/qBitrr/
|
|
11
|
+
Project-URL: Issue Tracker, https://github.com/Feramance/qBitrr/issues
|
|
12
|
+
Project-URL: Source Code, https://github.com/Feramance/qBitrr
|
|
13
|
+
Project-URL: Changelog, https://github.com/Feramance/qBitrr/blob/master/CHANGELOG.md
|
|
14
|
+
Project-URL: Docker Hub, https://hub.docker.com/r/feramance/qbitrr
|
|
15
|
+
Project-URL: PyPI, https://pypi.org/project/qBitrr2/
|
|
16
|
+
Project-URL: Systemd Guide, https://feramance.github.io/qBitrr/getting-started/installation/systemd/
|
|
17
|
+
Keywords: qbittorrent,radarr,sonarr,lidarr,arr,automation,torrent,media,plex,jellyfin,overseerr,ombi
|
|
18
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
19
|
+
Classifier: Intended Audience :: Developers
|
|
20
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
21
|
+
Classifier: Intended Audience :: System Administrators
|
|
22
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
23
|
+
Classifier: Natural Language :: English
|
|
24
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
25
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
26
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
27
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
28
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
29
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
30
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
31
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
32
|
+
Classifier: Topic :: Communications
|
|
33
|
+
Classifier: Topic :: Internet
|
|
34
|
+
Classifier: Topic :: Multimedia :: Video
|
|
35
|
+
Classifier: Topic :: System :: Monitoring
|
|
36
|
+
Classifier: Topic :: Terminals
|
|
37
|
+
Classifier: Topic :: Utilities
|
|
38
|
+
Classifier: Typing :: Typed
|
|
39
|
+
Requires-Python: <4,>=3.11
|
|
40
|
+
Description-Content-Type: text/markdown
|
|
41
|
+
License-File: LICENSE
|
|
42
|
+
Requires-Dist: cachetools
|
|
43
|
+
Requires-Dist: colorama
|
|
44
|
+
Requires-Dist: coloredlogs
|
|
45
|
+
Requires-Dist: flask
|
|
46
|
+
Requires-Dist: environ-config
|
|
47
|
+
Requires-Dist: ffmpeg-python
|
|
48
|
+
Requires-Dist: jaraco.docker
|
|
49
|
+
Requires-Dist: packaging
|
|
50
|
+
Requires-Dist: pathos
|
|
51
|
+
Requires-Dist: peewee
|
|
52
|
+
Requires-Dist: ping3
|
|
53
|
+
Requires-Dist: pyarr
|
|
54
|
+
Requires-Dist: qbittorrent-api
|
|
55
|
+
Requires-Dist: requests
|
|
56
|
+
Requires-Dist: tomlkit
|
|
57
|
+
Requires-Dist: waitress
|
|
58
|
+
Requires-Dist: croniter
|
|
59
|
+
Provides-Extra: dev
|
|
60
|
+
Requires-Dist: black==24.3.0; extra == "dev"
|
|
61
|
+
Requires-Dist: bump2version==1.0.1; extra == "dev"
|
|
62
|
+
Requires-Dist: isort==5.10.1; extra == "dev"
|
|
63
|
+
Requires-Dist: pip-tools==7.3.0; extra == "dev"
|
|
64
|
+
Requires-Dist: pre-commit==3.3.3; extra == "dev"
|
|
65
|
+
Requires-Dist: pyinstaller==5.13.1; extra == "dev"
|
|
66
|
+
Requires-Dist: pyupgrade==2.31.0; extra == "dev"
|
|
67
|
+
Requires-Dist: twine==3.7.1; extra == "dev"
|
|
68
|
+
Requires-Dist: ujson==5.10.0; extra == "dev"
|
|
69
|
+
Requires-Dist: upgrade-pip==0.1.4; extra == "dev"
|
|
70
|
+
Provides-Extra: fast
|
|
71
|
+
Requires-Dist: ujson==5.10.0; extra == "fast"
|
|
72
|
+
Provides-Extra: docs
|
|
73
|
+
Requires-Dist: mkdocs>=1.5.3; extra == "docs"
|
|
74
|
+
Requires-Dist: mkdocs-material>=9.5.0; extra == "docs"
|
|
75
|
+
Requires-Dist: mkdocs-material-extensions>=1.3.0; extra == "docs"
|
|
76
|
+
Requires-Dist: mkdocs-git-revision-date-localized-plugin>=1.2.0; extra == "docs"
|
|
77
|
+
Requires-Dist: mkdocs-minify-plugin>=0.7.0; extra == "docs"
|
|
78
|
+
Requires-Dist: mkdocs-redirects>=1.2.0; extra == "docs"
|
|
79
|
+
Requires-Dist: mkdocs-include-markdown-plugin>=6.0.0; extra == "docs"
|
|
80
|
+
Requires-Dist: pymdown-extensions>=10.0.0; extra == "docs"
|
|
81
|
+
Requires-Dist: markdown-include>=0.8.0; extra == "docs"
|
|
82
|
+
Provides-Extra: all
|
|
83
|
+
Requires-Dist: black==24.3.0; extra == "all"
|
|
84
|
+
Requires-Dist: bump2version==1.0.1; extra == "all"
|
|
85
|
+
Requires-Dist: isort==5.10.1; extra == "all"
|
|
86
|
+
Requires-Dist: pip-tools==7.3.0; extra == "all"
|
|
87
|
+
Requires-Dist: pre-commit==3.3.3; extra == "all"
|
|
88
|
+
Requires-Dist: pyinstaller==5.13.1; extra == "all"
|
|
89
|
+
Requires-Dist: pyupgrade==2.31.0; extra == "all"
|
|
90
|
+
Requires-Dist: twine==3.7.1; extra == "all"
|
|
91
|
+
Requires-Dist: ujson==5.10.0; extra == "all"
|
|
92
|
+
Requires-Dist: upgrade-pip==0.1.4; extra == "all"
|
|
93
|
+
Requires-Dist: ujson==5.10.0; extra == "all"
|
|
94
|
+
Requires-Dist: mkdocs>=1.5.3; extra == "all"
|
|
95
|
+
Requires-Dist: mkdocs-material>=9.5.0; extra == "all"
|
|
96
|
+
Requires-Dist: mkdocs-material-extensions>=1.3.0; extra == "all"
|
|
97
|
+
Requires-Dist: mkdocs-git-revision-date-localized-plugin>=1.2.0; extra == "all"
|
|
98
|
+
Requires-Dist: mkdocs-minify-plugin>=0.7.0; extra == "all"
|
|
99
|
+
Requires-Dist: mkdocs-redirects>=1.2.0; extra == "all"
|
|
100
|
+
Requires-Dist: mkdocs-include-markdown-plugin>=6.0.0; extra == "all"
|
|
101
|
+
Requires-Dist: pymdown-extensions>=10.0.0; extra == "all"
|
|
102
|
+
Requires-Dist: markdown-include>=0.8.0; extra == "all"
|
|
103
|
+
Dynamic: license-file
|
|
104
|
+
|
|
105
|
+
# <img src="assets/logov2-clean.png" alt="qBitrr Logo" width="40" style="vertical-align: middle;"/> qBitrr
|
|
106
|
+
|
|
107
|
+
[](https://pypi.org/project/qBitrr2/)
|
|
108
|
+
[](https://pypi.org/project/qBitrr2/)
|
|
109
|
+
[](https://hub.docker.com/r/feramance/qbitrr)
|
|
110
|
+
[](https://github.com/Feramance/qBitrr/actions/workflows/codeql.yml)
|
|
111
|
+
[](https://github.com/Feramance/qBitrr/actions/workflows/nightly.yml)
|
|
112
|
+
[](https://results.pre-commit.ci/latest/github/Feramance/qBitrr/master)
|
|
113
|
+
[](LICENSE)
|
|
114
|
+
|
|
115
|
+
> 🧩 The intelligent glue between qBittorrent and the *Arr ecosystem (Radarr, Sonarr, Lidarr). Monitors torrent health, triggers instant imports, automates quality upgrades, manages disk space, integrates with request systems (Overseerr/Ombi), and provides a modern React dashboard for complete visibility and control.
|
|
116
|
+
|
|
117
|
+
## 📚 Documentation
|
|
118
|
+
|
|
119
|
+
**Full documentation is available at: https://feramance.github.io/qBitrr/**
|
|
120
|
+
|
|
121
|
+
- [Getting Started](https://feramance.github.io/qBitrr/getting-started/) – Installation guides for pip, Docker, and native setups
|
|
122
|
+
- [Configuration](https://feramance.github.io/qBitrr/configuration/) – qBittorrent, Arr instances, quality profiles, and more
|
|
123
|
+
- [Features](https://feramance.github.io/qBitrr/features/) – Health monitoring, automated search, quality management, disk space, auto-updates
|
|
124
|
+
- [WebUI](https://feramance.github.io/qBitrr/webui/) – Built-in React dashboard with live monitoring and config editor
|
|
125
|
+
- [Troubleshooting](https://feramance.github.io/qBitrr/troubleshooting/) – Common issues and debug logging
|
|
126
|
+
- [API Reference](https://feramance.github.io/qBitrr/reference/api/) – REST API documentation
|
|
127
|
+
|
|
128
|
+
## ⚡ Quick Start
|
|
129
|
+
|
|
130
|
+
### 🐍 Install with pip
|
|
131
|
+
```bash
|
|
132
|
+
python -m venv .venv
|
|
133
|
+
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
|
134
|
+
pip install qBitrr2
|
|
135
|
+
|
|
136
|
+
# First run creates ~/config/config.toml
|
|
137
|
+
qbitrr
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 🐳 Run with Docker
|
|
141
|
+
```bash
|
|
142
|
+
docker run -d \
|
|
143
|
+
--name qbitrr \
|
|
144
|
+
--tty \
|
|
145
|
+
-e TZ=Europe/London \
|
|
146
|
+
-p 6969:6969 \
|
|
147
|
+
-v /path/to/appdata/qbitrr:/config \
|
|
148
|
+
-v /path/to/completed/downloads:/completed_downloads:rw \
|
|
149
|
+
--restart unless-stopped \
|
|
150
|
+
feramance/qbitrr:latest
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Docker Compose:**
|
|
154
|
+
```yaml
|
|
155
|
+
services:
|
|
156
|
+
qbitrr:
|
|
157
|
+
image: feramance/qbitrr:latest
|
|
158
|
+
container_name: qbitrr
|
|
159
|
+
restart: unless-stopped
|
|
160
|
+
tty: true
|
|
161
|
+
environment:
|
|
162
|
+
TZ: Europe/London
|
|
163
|
+
ports:
|
|
164
|
+
- "6969:6969"
|
|
165
|
+
volumes:
|
|
166
|
+
- /path/to/appdata/qbitrr:/config
|
|
167
|
+
- /path/to/completed/downloads:/completed_downloads:rw
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Access the WebUI at `http://<host>:6969/ui` after startup.
|
|
171
|
+
|
|
172
|
+
## ✨ Key Features
|
|
173
|
+
|
|
174
|
+
- **🚀 Multi-qBittorrent Support (v3.0+)** – Manage torrents across multiple qBittorrent instances for load balancing, redundancy, and VPN isolation
|
|
175
|
+
- **🚑 Torrent Health Monitoring** – Detect stalled/failed downloads, auto-blacklist, trigger re-searches
|
|
176
|
+
- **🔍 Automated Search** – Missing media, quality upgrades, custom format scoring
|
|
177
|
+
- **🎯 Request Integration** – Pull requests from Overseerr/Ombi, prioritize user-requested media
|
|
178
|
+
- **📊 Quality Management** – RSS sync, queue refresh, profile switching, custom format enforcement
|
|
179
|
+
- **🌱 Seeding Control** – Per-tracker settings, ratio/time limits, tracker injection
|
|
180
|
+
- **💾 Disk Space Management** – Auto-pause when low on space, configurable thresholds
|
|
181
|
+
- **🔄 Auto-Updates** – GitHub release-based updates with scheduled cron support
|
|
182
|
+
- **💻 Modern WebUI** – Live process monitoring, log viewer, Arr insights, config editor
|
|
183
|
+
|
|
184
|
+
## 🛠️ Essential Configuration
|
|
185
|
+
|
|
186
|
+
1. **Configure qBittorrent** in `~/config/config.toml`:
|
|
187
|
+
```toml
|
|
188
|
+
[qBit]
|
|
189
|
+
Host = "localhost"
|
|
190
|
+
Port = 8080
|
|
191
|
+
UserName = "admin"
|
|
192
|
+
Password = "adminpass"
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
2. **Add Arr instances**:
|
|
196
|
+
```toml
|
|
197
|
+
[Radarr-Movies]
|
|
198
|
+
URI = "http://localhost:7878"
|
|
199
|
+
APIKey = "your-radarr-api-key"
|
|
200
|
+
Category = "radarr-movies"
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
3. **Set completed folder**:
|
|
204
|
+
```toml
|
|
205
|
+
[Settings]
|
|
206
|
+
CompletedDownloadFolder = "/path/to/completed"
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### 🆕 Multi-qBittorrent (v3.0+)
|
|
210
|
+
|
|
211
|
+
Manage torrents across multiple qBittorrent instances:
|
|
212
|
+
|
|
213
|
+
```toml
|
|
214
|
+
[qBit] # Default instance (required)
|
|
215
|
+
Host = "localhost"
|
|
216
|
+
Port = 8080
|
|
217
|
+
UserName = "admin"
|
|
218
|
+
Password = "password"
|
|
219
|
+
|
|
220
|
+
[qBit-seedbox] # Additional instance (optional)
|
|
221
|
+
Host = "192.168.1.100"
|
|
222
|
+
Port = 8080
|
|
223
|
+
UserName = "admin"
|
|
224
|
+
Password = "seedboxpass"
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
See [Multi-qBittorrent Guide](MULTI_QBIT_V3_USER_GUIDE.md) for complete documentation.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
See [Configuration Guide](https://feramance.github.io/qBitrr/configuration/) and [config.example.toml](config.example.toml) for all available options.
|
|
232
|
+
|
|
233
|
+
## 📖 Resources
|
|
234
|
+
|
|
235
|
+
- **Documentation:** https://feramance.github.io/qBitrr/
|
|
236
|
+
- **PyPI Package:** https://pypi.org/project/qBitrr2/
|
|
237
|
+
- **Docker Hub:** https://hub.docker.com/r/feramance/qbitrr
|
|
238
|
+
- **Example Config:** [config.example.toml](config.example.toml)
|
|
239
|
+
- **API Documentation:** [API_DOCUMENTATION.md](API_DOCUMENTATION.md)
|
|
240
|
+
- **Systemd Setup:** [SYSTEMD_SERVICE.md](SYSTEMD_SERVICE.md)
|
|
241
|
+
|
|
242
|
+
## 🐛 Issues & Support
|
|
243
|
+
|
|
244
|
+
- **Report Bugs:** [Bug Report Template](.github/ISSUE_TEMPLATE/bug_report.yml)
|
|
245
|
+
- **Request Features:** [Feature Request Template](.github/ISSUE_TEMPLATE/feature_request.yml)
|
|
246
|
+
- **Discussions:** [GitHub Discussions](https://github.com/Feramance/qBitrr/discussions)
|
|
247
|
+
- **Troubleshooting:** [Common Issues](https://feramance.github.io/qBitrr/troubleshooting/)
|
|
248
|
+
|
|
249
|
+
## 🤝 Contributing
|
|
250
|
+
|
|
251
|
+
Contributions welcome! See [CONTRIBUTION.md](CONTRIBUTION.md) for coding guidelines and development setup.
|
|
252
|
+
|
|
253
|
+
**Development setup:**
|
|
254
|
+
```bash
|
|
255
|
+
# Python backend
|
|
256
|
+
make newenv && make syncenv
|
|
257
|
+
make reformat # Format and lint
|
|
258
|
+
|
|
259
|
+
# WebUI
|
|
260
|
+
cd webui && npm ci
|
|
261
|
+
npm run dev # Dev server at localhost:5173
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## ❤️ Support
|
|
265
|
+
|
|
266
|
+
If qBitrr saves you time and headaches:
|
|
267
|
+
- ⭐ **Star the repo** – helps others discover qBitrr
|
|
268
|
+
- 💰 **Sponsor:** [Patreon](https://patreon.com/qBitrr) | [PayPal](https://www.paypal.me/feramance)
|
|
269
|
+
|
|
270
|
+
## 📄 License
|
|
271
|
+
|
|
272
|
+
Released under the [MIT License](LICENSE). Use it, modify it, share it—commercially or personally.
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
<div align="center">
|
|
277
|
+
|
|
278
|
+
**Made with ❤️ by the qBitrr community**
|
|
279
|
+
|
|
280
|
+
[Documentation](https://feramance.github.io/qBitrr/) • [PyPI](https://pypi.org/project/qBitrr2/) • [Docker](https://hub.docker.com/r/feramance/qbitrr) • [GitHub](https://github.com/Feramance/qBitrr)
|
|
281
|
+
|
|
282
|
+
</div>
|
qbitrr2-5.7.0/README.md
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# <img src="assets/logov2-clean.png" alt="qBitrr Logo" width="40" style="vertical-align: middle;"/> qBitrr
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/qBitrr2/)
|
|
4
|
+
[](https://pypi.org/project/qBitrr2/)
|
|
5
|
+
[](https://hub.docker.com/r/feramance/qbitrr)
|
|
6
|
+
[](https://github.com/Feramance/qBitrr/actions/workflows/codeql.yml)
|
|
7
|
+
[](https://github.com/Feramance/qBitrr/actions/workflows/nightly.yml)
|
|
8
|
+
[](https://results.pre-commit.ci/latest/github/Feramance/qBitrr/master)
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
|
|
11
|
+
> 🧩 The intelligent glue between qBittorrent and the *Arr ecosystem (Radarr, Sonarr, Lidarr). Monitors torrent health, triggers instant imports, automates quality upgrades, manages disk space, integrates with request systems (Overseerr/Ombi), and provides a modern React dashboard for complete visibility and control.
|
|
12
|
+
|
|
13
|
+
## 📚 Documentation
|
|
14
|
+
|
|
15
|
+
**Full documentation is available at: https://feramance.github.io/qBitrr/**
|
|
16
|
+
|
|
17
|
+
- [Getting Started](https://feramance.github.io/qBitrr/getting-started/) – Installation guides for pip, Docker, and native setups
|
|
18
|
+
- [Configuration](https://feramance.github.io/qBitrr/configuration/) – qBittorrent, Arr instances, quality profiles, and more
|
|
19
|
+
- [Features](https://feramance.github.io/qBitrr/features/) – Health monitoring, automated search, quality management, disk space, auto-updates
|
|
20
|
+
- [WebUI](https://feramance.github.io/qBitrr/webui/) – Built-in React dashboard with live monitoring and config editor
|
|
21
|
+
- [Troubleshooting](https://feramance.github.io/qBitrr/troubleshooting/) – Common issues and debug logging
|
|
22
|
+
- [API Reference](https://feramance.github.io/qBitrr/reference/api/) – REST API documentation
|
|
23
|
+
|
|
24
|
+
## ⚡ Quick Start
|
|
25
|
+
|
|
26
|
+
### 🐍 Install with pip
|
|
27
|
+
```bash
|
|
28
|
+
python -m venv .venv
|
|
29
|
+
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
|
30
|
+
pip install qBitrr2
|
|
31
|
+
|
|
32
|
+
# First run creates ~/config/config.toml
|
|
33
|
+
qbitrr
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 🐳 Run with Docker
|
|
37
|
+
```bash
|
|
38
|
+
docker run -d \
|
|
39
|
+
--name qbitrr \
|
|
40
|
+
--tty \
|
|
41
|
+
-e TZ=Europe/London \
|
|
42
|
+
-p 6969:6969 \
|
|
43
|
+
-v /path/to/appdata/qbitrr:/config \
|
|
44
|
+
-v /path/to/completed/downloads:/completed_downloads:rw \
|
|
45
|
+
--restart unless-stopped \
|
|
46
|
+
feramance/qbitrr:latest
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Docker Compose:**
|
|
50
|
+
```yaml
|
|
51
|
+
services:
|
|
52
|
+
qbitrr:
|
|
53
|
+
image: feramance/qbitrr:latest
|
|
54
|
+
container_name: qbitrr
|
|
55
|
+
restart: unless-stopped
|
|
56
|
+
tty: true
|
|
57
|
+
environment:
|
|
58
|
+
TZ: Europe/London
|
|
59
|
+
ports:
|
|
60
|
+
- "6969:6969"
|
|
61
|
+
volumes:
|
|
62
|
+
- /path/to/appdata/qbitrr:/config
|
|
63
|
+
- /path/to/completed/downloads:/completed_downloads:rw
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Access the WebUI at `http://<host>:6969/ui` after startup.
|
|
67
|
+
|
|
68
|
+
## ✨ Key Features
|
|
69
|
+
|
|
70
|
+
- **🚀 Multi-qBittorrent Support (v3.0+)** – Manage torrents across multiple qBittorrent instances for load balancing, redundancy, and VPN isolation
|
|
71
|
+
- **🚑 Torrent Health Monitoring** – Detect stalled/failed downloads, auto-blacklist, trigger re-searches
|
|
72
|
+
- **🔍 Automated Search** – Missing media, quality upgrades, custom format scoring
|
|
73
|
+
- **🎯 Request Integration** – Pull requests from Overseerr/Ombi, prioritize user-requested media
|
|
74
|
+
- **📊 Quality Management** – RSS sync, queue refresh, profile switching, custom format enforcement
|
|
75
|
+
- **🌱 Seeding Control** – Per-tracker settings, ratio/time limits, tracker injection
|
|
76
|
+
- **💾 Disk Space Management** – Auto-pause when low on space, configurable thresholds
|
|
77
|
+
- **🔄 Auto-Updates** – GitHub release-based updates with scheduled cron support
|
|
78
|
+
- **💻 Modern WebUI** – Live process monitoring, log viewer, Arr insights, config editor
|
|
79
|
+
|
|
80
|
+
## 🛠️ Essential Configuration
|
|
81
|
+
|
|
82
|
+
1. **Configure qBittorrent** in `~/config/config.toml`:
|
|
83
|
+
```toml
|
|
84
|
+
[qBit]
|
|
85
|
+
Host = "localhost"
|
|
86
|
+
Port = 8080
|
|
87
|
+
UserName = "admin"
|
|
88
|
+
Password = "adminpass"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
2. **Add Arr instances**:
|
|
92
|
+
```toml
|
|
93
|
+
[Radarr-Movies]
|
|
94
|
+
URI = "http://localhost:7878"
|
|
95
|
+
APIKey = "your-radarr-api-key"
|
|
96
|
+
Category = "radarr-movies"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
3. **Set completed folder**:
|
|
100
|
+
```toml
|
|
101
|
+
[Settings]
|
|
102
|
+
CompletedDownloadFolder = "/path/to/completed"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 🆕 Multi-qBittorrent (v3.0+)
|
|
106
|
+
|
|
107
|
+
Manage torrents across multiple qBittorrent instances:
|
|
108
|
+
|
|
109
|
+
```toml
|
|
110
|
+
[qBit] # Default instance (required)
|
|
111
|
+
Host = "localhost"
|
|
112
|
+
Port = 8080
|
|
113
|
+
UserName = "admin"
|
|
114
|
+
Password = "password"
|
|
115
|
+
|
|
116
|
+
[qBit-seedbox] # Additional instance (optional)
|
|
117
|
+
Host = "192.168.1.100"
|
|
118
|
+
Port = 8080
|
|
119
|
+
UserName = "admin"
|
|
120
|
+
Password = "seedboxpass"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
See [Multi-qBittorrent Guide](MULTI_QBIT_V3_USER_GUIDE.md) for complete documentation.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
See [Configuration Guide](https://feramance.github.io/qBitrr/configuration/) and [config.example.toml](config.example.toml) for all available options.
|
|
128
|
+
|
|
129
|
+
## 📖 Resources
|
|
130
|
+
|
|
131
|
+
- **Documentation:** https://feramance.github.io/qBitrr/
|
|
132
|
+
- **PyPI Package:** https://pypi.org/project/qBitrr2/
|
|
133
|
+
- **Docker Hub:** https://hub.docker.com/r/feramance/qbitrr
|
|
134
|
+
- **Example Config:** [config.example.toml](config.example.toml)
|
|
135
|
+
- **API Documentation:** [API_DOCUMENTATION.md](API_DOCUMENTATION.md)
|
|
136
|
+
- **Systemd Setup:** [SYSTEMD_SERVICE.md](SYSTEMD_SERVICE.md)
|
|
137
|
+
|
|
138
|
+
## 🐛 Issues & Support
|
|
139
|
+
|
|
140
|
+
- **Report Bugs:** [Bug Report Template](.github/ISSUE_TEMPLATE/bug_report.yml)
|
|
141
|
+
- **Request Features:** [Feature Request Template](.github/ISSUE_TEMPLATE/feature_request.yml)
|
|
142
|
+
- **Discussions:** [GitHub Discussions](https://github.com/Feramance/qBitrr/discussions)
|
|
143
|
+
- **Troubleshooting:** [Common Issues](https://feramance.github.io/qBitrr/troubleshooting/)
|
|
144
|
+
|
|
145
|
+
## 🤝 Contributing
|
|
146
|
+
|
|
147
|
+
Contributions welcome! See [CONTRIBUTION.md](CONTRIBUTION.md) for coding guidelines and development setup.
|
|
148
|
+
|
|
149
|
+
**Development setup:**
|
|
150
|
+
```bash
|
|
151
|
+
# Python backend
|
|
152
|
+
make newenv && make syncenv
|
|
153
|
+
make reformat # Format and lint
|
|
154
|
+
|
|
155
|
+
# WebUI
|
|
156
|
+
cd webui && npm ci
|
|
157
|
+
npm run dev # Dev server at localhost:5173
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## ❤️ Support
|
|
161
|
+
|
|
162
|
+
If qBitrr saves you time and headaches:
|
|
163
|
+
- ⭐ **Star the repo** – helps others discover qBitrr
|
|
164
|
+
- 💰 **Sponsor:** [Patreon](https://patreon.com/qBitrr) | [PayPal](https://www.paypal.me/feramance)
|
|
165
|
+
|
|
166
|
+
## 📄 License
|
|
167
|
+
|
|
168
|
+
Released under the [MIT License](LICENSE). Use it, modify it, share it—commercially or personally.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
<div align="center">
|
|
173
|
+
|
|
174
|
+
**Made with ❤️ by the qBitrr community**
|
|
175
|
+
|
|
176
|
+
[Documentation](https://feramance.github.io/qBitrr/) • [PyPI](https://pypi.org/project/qBitrr2/) • [Docker](https://hub.docker.com/r/feramance/qbitrr) • [GitHub](https://github.com/Feramance/qBitrr)
|
|
177
|
+
|
|
178
|
+
</div>
|
|
@@ -109,6 +109,7 @@ Theme = "Dark"
|
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
[qBit]
|
|
112
|
+
# Default qBittorrent instance (REQUIRED)
|
|
112
113
|
# If this is enabled qBitrr can run in headless mode where it will only process searches.
|
|
113
114
|
# If media search is enabled in their individual categories
|
|
114
115
|
# This is useful if you use for example Sabnzbd/NZBGet for downloading content but still want the faster media searches provided by qbit
|
|
@@ -127,6 +128,41 @@ UserName = "CHANGE_ME"
|
|
|
127
128
|
Password = "CHANGE_ME"
|
|
128
129
|
|
|
129
130
|
|
|
131
|
+
# ============================================================
|
|
132
|
+
# MULTI-QBITTORRENT SUPPORT (v3.0+)
|
|
133
|
+
# ============================================================
|
|
134
|
+
# You can configure multiple qBittorrent instances using the [qBit-NAME] syntax.
|
|
135
|
+
# Each Arr instance will monitor ALL qBit instances for torrents in its category.
|
|
136
|
+
# This allows load balancing, redundancy, and VPN isolation.
|
|
137
|
+
#
|
|
138
|
+
# IMPORTANT: Use dash (-) notation, NOT dot (.) notation!
|
|
139
|
+
# ✅ CORRECT: [qBit-seedbox]
|
|
140
|
+
# ❌ WRONG: [qBit.seedbox]
|
|
141
|
+
#
|
|
142
|
+
# Examples:
|
|
143
|
+
#
|
|
144
|
+
# [qBit-seedbox]
|
|
145
|
+
# Host = "192.168.1.100"
|
|
146
|
+
# Port = 8080
|
|
147
|
+
# UserName = "admin"
|
|
148
|
+
# Password = "seedboxpass"
|
|
149
|
+
#
|
|
150
|
+
# [qBit-vpn]
|
|
151
|
+
# Host = "10.8.0.2"
|
|
152
|
+
# Port = 8080
|
|
153
|
+
# UserName = "admin"
|
|
154
|
+
# Password = "vpnpass"
|
|
155
|
+
#
|
|
156
|
+
# [qBit-remote]
|
|
157
|
+
# Host = "remote.example.com"
|
|
158
|
+
# Port = 8443
|
|
159
|
+
# UserName = "admin"
|
|
160
|
+
# Password = "remotepass"
|
|
161
|
+
#
|
|
162
|
+
# For more information, see: MULTI_QBIT_V3_USER_GUIDE.md
|
|
163
|
+
# ============================================================
|
|
164
|
+
|
|
165
|
+
|
|
130
166
|
[Sonarr-TV]
|
|
131
167
|
# Toggle whether to manage the Servarr instance torrents.
|
|
132
168
|
Managed = true
|
|
@@ -28,7 +28,7 @@ target-version = ['py311']
|
|
|
28
28
|
|
|
29
29
|
[tool.poetry]
|
|
30
30
|
name = "pypi-public"
|
|
31
|
-
version = "5.
|
|
31
|
+
version = "5.7.0"
|
|
32
32
|
description = "Intelligent automation for qBittorrent and *Arr apps (Radarr/Sonarr/Lidarr) - health monitoring, instant imports, quality upgrades, request integration"
|
|
33
33
|
authors = ["Drapersniper", "Feramance"]
|
|
34
34
|
readme = "README.md"
|