Compare commits

...

4 Commits

Author SHA1 Message Date
Flaminel
6587014e8d fixed exiting after one torrent processed 2024-11-14 22:24:01 +02:00
Marius Nechifor
36a07b251a add test environment 2024-11-14 13:23:49 +02:00
Marius Nechifor
c48eed7f77 create LICENSE 2024-11-14 10:41:12 +02:00
Flaminel
48f3c3b35b fixed readme 2024-11-14 09:14:19 +02:00
63 changed files with 474 additions and 3 deletions

3
.gitignore vendored
View File

@@ -165,3 +165,6 @@ src/.idea/
# Ignore Jetbrains IntelliJ Workspace Directories
.idea/
**/logs/
**/MediaCover/

21
LICENSE Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 Flaminel
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -39,11 +39,11 @@ docker run -d \
| QBITTORRENT__URL | Yes | qBittorrent instance url | http://localhost:8080 |
| QBITTORRENT__USERNAME | Yes | qBittorrent user | empty |
| QBITTORRENT__PASSWORD | Yes | qBittorrent password | empty |
|
|||||
| SONARR__ENABLED | No | Whether Sonarr cleanup is enabled or not | true |
| SONARR__INSTANCES__0__URL | Yes | First Sonarr instance url | http://localhost:8989 |
| SONARR__INSTANCES__0__APIKEY | Yes | First Sonarr instance API key | empty |
|
|||||
| RADARR__ENABLED | No | Whether Radarr cleanup is enabled or not | false |
| RADARR__INSTANCES__0__URL | Yes | First Radarr instance url | http://localhost:8989 |
| RADARR__INSTANCES__0__APIKEY | Yes | First Radarr instance API key | empty |

View File

@@ -96,7 +96,7 @@ public sealed class QueueCleanerHandler
if (torrent is not { CompletionOn: not null, Downloaded: null or 0 })
{
_logger.LogInformation("skip | {torrent}", record.Title);
return;
continue;
}
itemsToBeRefreshed.Add(GetRecordId(instanceType, record));

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<key id="73140dfd-12c2-49d9-93d6-94dd1f0bc538" version="1">
<creationDate>2024-11-12T08:27:40.5991235Z</creationDate>
<activationDate>2024-11-12T08:27:40.5870855Z</activationDate>
<expirationDate>2025-02-10T08:27:40.5870855Z</expirationDate>
<descriptor deserializerType="Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer, Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
<descriptor>
<encryption algorithm="AES_256_CBC" />
<validation algorithm="HMACSHA256" />
<masterKey p4:requiresEncryption="true" xmlns:p4="http://schemas.asp.net/2015/03/dataProtection">
<!-- Warning: the key below is in an unencrypted form. -->
<value>FJN9+ak89dkr+ZPZD/LymeCCwH/UI3kNdaMqxSnY6G8bui1yNjGtLpQQOJJlTOAdAyZvHUyPUvv99F70uZF7qg==</value>
</masterKey>
</descriptor>
</descriptor>
</key>

View File

Binary file not shown.

View File

@@ -0,0 +1 @@
146

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -0,0 +1 @@
d8:announce28:http://tracker:6969/announce10:created by26:Enhanced-CTorrent/dnh3.3.213:creation datei1731398141e4:infod6:lengthi4e4:name68:Speak.No.Evil.2024.2160p.MA.WEB-DL.DDP5.1.Atmos.H.265-HHWEB.mkv.zipx12:piece lengthi262144e6:pieces20:<3A>J<EFBFBD><4A>̱<EFBFBD><CCB1>Lsӑ釘/<2F><>ee

View File

@@ -0,0 +1,25 @@
<rss version="2.0">
<channel>
<title>Test feed</title>
<link>http://nginx/custom/radarr_bad.xml</link>
<description>
Test
</description>
<language>en-CA</language>
<copyright> Test </copyright>
<pubDate>Tue, 5 Nov 2024 22:02:13 -0400</pubDate>
<lastBuildDate>Tue, 5 Nov 2024 22:02:13 -0400</lastBuildDate>
<docs>https://validator.w3.org/feed/docs/rss2.html</docs>
<ttl>30</ttl>
<item>
<title>Speak.No.Evil.2024.2160p.MA.WEB-DL.DDP5.1.Atmos.H.265-HHWEB</title>
<description>Test</description>
<size>4138858110</size>
<link>http://nginx/custom/radarr_bad.torrent</link>
<guid isPermaLink="false">
174674a88c8947f6f9057ac3f81efde384ed216cade43564ec450f2cb4677554
</guid>
<pubDate>Sat, 24 Sep 2022 22:02:13 -0300</pubDate>
</item>
</channel>
</rss>

View File

@@ -0,0 +1 @@
d8:announce28:http://tracker:6969/announce10:created by26:Enhanced-CTorrent/dnh3.3.213:creation datei1731357387e4:infod6:lengthi5e4:name93:Agatha.All.Along.S01E01.Seekest.Thou.the.Road.2160p.APPS.WEB-DL.DDP5.1.Atmos.H.265-VARYG.zipx12:piece lengthi262144e6:pieces20:NC<>"<22>nvº<76><C2BA><EFBFBD><EFBFBD><13><><EFBFBD><7F>ee

View File

@@ -0,0 +1,25 @@
<rss version="2.0">
<channel>
<title>Test feed</title>
<link>http://nginx/custom/sonarr_bad.xml</link>
<description>
Test
</description>
<language>en-CA</language>
<copyright> Test </copyright>
<pubDate>Tue, 5 Nov 2024 22:02:13 -0400</pubDate>
<lastBuildDate>Tue, 5 Nov 2024 22:02:13 -0400</lastBuildDate>
<docs>https://validator.w3.org/feed/docs/rss2.html</docs>
<ttl>30</ttl>
<item>
<title>Agatha.All.Along.S01E01.Seekest.Thou.the.Road.2160p.APPS.WEB-DL.DDP5.1.Atmos.H.265-VARYG</title>
<description>Test</description>
<size>4138858110</size>
<link>http://nginx/custom/sonarr_bad.torrent</link>
<guid isPermaLink="false">
174674a88c8947f6f9057ac3f81efde384ed216cade43564ec450f2cb4677554
</guid>
<pubDate>Sat, 24 Sep 2022 22:02:13 -0300</pubDate>
</item>
</channel>
</rss>

View File

@@ -0,0 +1,28 @@
apt install ctorrent
apt-get
yum
apk
apk search ctorrent
apk add ctorrent
apk update
apk add ctorrent
exit
apt
apk
apk update
apk search ctorrent
apk add ctorrent
apk install apt
apk add ctorrent-dnh
apk search ctorrent
apk search torrent
apk search transmission
apk install transmission-cli
apk add transmission-cli
transmission-create -o bad.torrent -t http://tracker:6969/announce /downloads/Agatha.All.Along.S01E01.Seekest.Thou.the.Road.2160p.APPS.WEB-DL.DDP5.1.Atmos.H.265-VARYG.mkv.zipx
transmission-cli
apk add transmission-create
transmission-create
apk add transmission
transmission-create -o bad.torrent -t http://tracker:6969/announce /downloads/Agatha.All.Along.S01E01.Seekest.Thou.the.Road.2160p.APPS.WEB-DL.DDP5.1.Atmos.H.265-VARYG.mkv.zipx
exit

View File

@@ -0,0 +1 @@
d10:created by26:Enhanced-CTorrent/dnh3.3.213:creation datei1731357387e4:infod6:lengthi5e4:name93:Agatha.All.Along.S01E01.Seekest.Thou.the.Road.2160p.APPS.WEB-DL.DDP5.1.Atmos.H.265-VARYG.zipx12:piece lengthi262144e6:pieces20:NC<>"<22>nvº<76><C2BA><EFBFBD><EFBFBD><13><><EFBFBD><7F>ee

View File

@@ -0,0 +1 @@
d10:created by26:Enhanced-CTorrent/dnh3.3.213:creation datei1731398141e4:infod6:lengthi4e4:name68:Speak.No.Evil.2024.2160p.MA.WEB-DL.DDP5.1.Atmos.H.265-HHWEB.mkv.zipx12:piece lengthi262144e6:pieces20:<3A>J<EFBFBD><4A>̱<EFBFBD><CCB1>Lsӑ釘/<2F><>ee

View File

@@ -0,0 +1 @@
c132c8bf59f25af11cf00c08ab61476fbc72b2c6

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -0,0 +1,2 @@
[Stats]
AllStats=@Variant(\0\0\0\x1c\0\0\0\x2\0\0\0\x12\0\x41\0l\0l\0t\0i\0m\0\x65\0\x44\0L\0\0\0\x4\0\0\0\0\0\x3\xae\x61\0\0\0\x12\0\x41\0l\0l\0t\0i\0m\0\x65\0U\0L\0\0\0\x4\0\0\0\0\0\x5?%)

View File

@@ -0,0 +1,56 @@
[Application]
FileLogger\Age=1
FileLogger\AgeType=1
FileLogger\Backup=true
FileLogger\DeleteOld=true
FileLogger\Enabled=true
FileLogger\MaxSizeBytes=66560
FileLogger\Path=/config/qBittorrent/logs
[AutoRun]
enabled=false
program=
[BitTorrent]
Session\AddTorrentStopped=false
Session\DefaultSavePath=/downloads/
Session\ExcludedFileNames=
Session\Port=6881
Session\QueueingSystemEnabled=true
Session\SSL\Port=65325
Session\ShareLimitAction=Stop
Session\TempPath=/downloads/incomplete/
[Core]
AutoDeleteAddedTorrentFile=Never
[LegalNotice]
Accepted=true
[Meta]
MigrationVersion=6
[Network]
Cookies=@Invalid()
PortForwardingEnabled=false
Proxy\HostnameLookupEnabled=false
Proxy\Profiles\BitTorrent=true
Proxy\Profiles\Misc=true
Proxy\Profiles\RSS=true
[Preferences]
Connection\PortRangeMin=6881
Connection\UPnP=false
Downloads\SavePath=/downloads/
Downloads\TempPath=/downloads/incomplete/
General\Locale=en
MailNotification\req_auth=true
WebUI\Address=*
WebUI\Password_PBKDF2="@ByteArray(Y5qTn9Ckjd9EGunzNdr3fg==:i+l/UB3dqYrL5SbdbCjPcPUCehLb/w1nXr3oM7PgJI3d3KTISz0rWGS29mURaBC9kfuMrG3WEhR/kM2ykvcn3Q==)"
WebUI\Port=8081
WebUI\ServerDomains=*
WebUI\Username=test
[RSS]
AutoDownloader\DownloadRepacks=true
AutoDownloader\SmartEpisodeFilter=s(\\d+)e(\\d+), (\\d+)x(\\d+), "(\\d{4}[.\\-]\\d{1,2}[.\\-]\\d{1,2})", "(\\d{1,2}[.\\-]\\d{1,2}[.\\-]\\d{4})"

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -0,0 +1 @@
d8:announce28:http://tracker:6969/announce10:created by26:Enhanced-CTorrent/dnh3.3.213:creation datei1731398141e4:infod6:lengthi4e4:name68:Speak.No.Evil.2024.2160p.MA.WEB-DL.DDP5.1.Atmos.H.265-HHWEB.mkv.zipx12:piece lengthi262144e6:pieces20:<3A>J<EFBFBD><4A>̱<EFBFBD><CCB1>Lsӑ釘/<2F><>ee

View File

@@ -0,0 +1 @@
d8:announce28:http://tracker:6969/announce10:created by26:Enhanced-CTorrent/dnh3.3.213:creation datei1731357387e4:infod6:lengthi5e4:name93:Agatha.All.Along.S01E01.Seekest.Thou.the.Road.2160p.APPS.WEB-DL.DDP5.1.Atmos.H.265-VARYG.zipx12:piece lengthi262144e6:pieces20:NC<>"<22>nvº<76><C2BA><EFBFBD><EFBFBD><13><><EFBFBD><7F>ee

View File

@@ -0,0 +1,7 @@
wget http://nginx:8082/bad.torrent
wget http://nginx:80
wget http://nginx:80/bad.torrent
wget http://nginx:80/bad.rss
wget http://nginx:80/custom/bad.rss
cat bad.rss
exit

View File

View File

Binary file not shown.

View File

@@ -0,0 +1,8 @@
{
"radarr": {
"save_path": ""
},
"tv-sonarr": {
"save_path": ""
}
}

View File

@@ -0,0 +1,2 @@
[Stats]
AllStats=@Variant(\0\0\0\x1c\0\0\0\x2\0\0\0\x12\0\x41\0l\0l\0t\0i\0m\0\x65\0\x44\0L\0\0\0\x4\0\0\0\0\0\x6\xe4\xdd\0\0\0\x12\0\x41\0l\0l\0t\0i\0m\0\x65\0U\0L\0\0\0\x4\0\0\0\0\0\b\xc3\xde)

View File

@@ -0,0 +1,56 @@
[Application]
FileLogger\Age=1
FileLogger\AgeType=1
FileLogger\Backup=true
FileLogger\DeleteOld=true
FileLogger\Enabled=true
FileLogger\MaxSizeBytes=66560
FileLogger\Path=/config/qBittorrent/logs
[AutoRun]
enabled=false
program=
[BitTorrent]
ExcludedFileNamesEnabled=true
Session\AddTorrentStopped=false
Session\DefaultSavePath=/downloads/
Session\ExcludedFileNames=*.apk, *.bat, *.bin, *.bmp, *.cmd, *.com, *.db, *.diz, *.dll, *.dmg, *.etc, *.exe, *.gif, *.htm, *.html, *.ico, *.ini, *.iso, *.jar, *.jpg, *.js, *.link, *.lnk, *.msi, *.nfo, *.perl, *.php, *.pl, *.png, *.ps1, *.psc1, *.psd1, *.psm1, *.py, *.pyd, *.rb, *.readme, *.reg, *.run, *.scr, *.sh, *.sql, *.text, *.thumb, *.torrent, *.txt, *.url, *.vbs, *.wsf, *.xml, *.zipx, *.7z, *.bdjo, *.bdmv, *.bin, *.bmp, *.cci, *.clpi, *.crt, *.dll, *.exe, *.html, *.idx, *.inf, *.jar, *.jpeg, *.jpg, *.lnk, *.m4a, *.mpls, *.msi, *.nfo, *.pdf, *.png, *.rar, *(sample).*, *sample.mkv, *sample.mp4, *.sfv, *.srt, *.sub, *.tbl, Trailer.*, *.txt, *.url, *.xig, *.xml, *.xrt, *.zip, *.zipx, *.Lnk
Session\Port=6881
Session\QueueingSystemEnabled=true
Session\SSL\Port=15561
Session\ShareLimitAction=Stop
Session\TempPath=/downloads/incomplete/
[Core]
AutoDeleteAddedTorrentFile=Never
[LegalNotice]
Accepted=true
[Meta]
MigrationVersion=6
[Network]
Cookies=@Invalid()
PortForwardingEnabled=false
Proxy\HostnameLookupEnabled=false
Proxy\Profiles\BitTorrent=true
Proxy\Profiles\Misc=true
Proxy\Profiles\RSS=true
[Preferences]
Connection\PortRangeMin=6881
Connection\UPnP=false
Downloads\SavePath=/downloads/
Downloads\TempPath=/downloads/incomplete/
General\Locale=en
MailNotification\req_auth=true
WebUI\Address=*
WebUI\Password_PBKDF2="@ByteArray(yhRK9ENcAXgJ5b0HJ1ASwg==:ucqSEDxil3NqJlug8G4PjBXAz37Azo42jx8Vh3RtNkCYEK4RgjRmMeiUaIN9k4Pqxi7D1aBBVFOQ9vQJZMfUIQ==)"
WebUI\ServerDomains=*
WebUI\Username=test
[RSS]
AutoDownloader\DownloadRepacks=true
AutoDownloader\SmartEpisodeFilter=s(\\d+)e(\\d+), (\\d+)x(\\d+), "(\\d{4}[.\\-]\\d{1,2}[.\\-]\\d{1,2})", "(\\d{1,2}[.\\-]\\d{1,2}[.\\-]\\d{4})"

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -0,0 +1,2 @@
{
}

View File

@@ -0,0 +1 @@
92eba3c5-a8d0-44d5-836d-25bc4aa81a85

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<key id="729140b3-0296-4e14-8afa-60275fd797ca" version="1">
<creationDate>2024-11-12T08:27:39.8894479Z</creationDate>
<activationDate>2024-11-12T08:27:39.879535Z</activationDate>
<expirationDate>2025-02-10T08:27:39.879535Z</expirationDate>
<descriptor deserializerType="Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer, Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
<descriptor>
<encryption algorithm="AES_256_CBC" />
<validation algorithm="HMACSHA256" />
<masterKey p4:requiresEncryption="true" xmlns:p4="http://schemas.asp.net/2015/03/dataProtection">
<!-- Warning: the key below is in an unencrypted form. -->
<value>aq0fbIABPzsLl4bnZllVq2NhmsOrjc5zPeiGbBSTc5DMPm8n5C86DzCTPX0HJtZFUgaVoc+3qjFQJ4UB0J31rA==</value>
</masterKey>
</descriptor>
</descriptor>
</key>

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -0,0 +1 @@
145

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<key id="7e009a79-6fb8-4487-a701-c71768df1f34" version="1">
<creationDate>2024-11-12T08:29:09.621896Z</creationDate>
<activationDate>2024-11-12T08:29:09.6125365Z</activationDate>
<expirationDate>2025-02-10T08:29:09.6125365Z</expirationDate>
<descriptor deserializerType="Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer, Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
<descriptor>
<encryption algorithm="AES_256_CBC" />
<validation algorithm="HMACSHA256" />
<masterKey p4:requiresEncryption="true" xmlns:p4="http://schemas.asp.net/2015/03/dataProtection">
<!-- Warning: the key below is in an unencrypted form. -->
<value>4XVtakA4x+z0lkubqw0sO0dANs6WlDqehgdJUaaf0W9u/lIIq404B1HhVEs+fOpiBuyJDBpjbauLC9KlAfj8NA==</value>
</masterKey>
</descriptor>
</descriptor>
</key>

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -0,0 +1 @@
145

View File

@@ -0,0 +1 @@
1df9f2cc-17dc-4130-9753-9b694f82f1b5

View File

@@ -0,0 +1 @@
{"update":{"sid":"e87df0117b134d64b99f5b878e652b49","did":"1df9f2cc-17dc-4130-9753-9b694f82f1b5","init":true,"started":"2024-11-12T08:27:39.2729256+00:00","timestamp":"2024-11-12T08:27:39.2735692+00:00","seq":0,"duration":0,"errors":0,"attrs":{"release":"4.0.10.2544-main","environment":"main"}}}

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<key id="460837be-4d61-409f-95f8-b78f2a65ed81" version="1">
<creationDate>2024-11-10T19:27:03.0013963Z</creationDate>
<activationDate>2024-11-10T19:27:02.9916656Z</activationDate>
<expirationDate>2025-02-08T19:27:02.9916656Z</expirationDate>
<descriptor deserializerType="Microsoft.AspNetCore.DataProtection.AuthenticatedEncryption.ConfigurationModel.AuthenticatedEncryptorDescriptorDeserializer, Microsoft.AspNetCore.DataProtection, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
<descriptor>
<encryption algorithm="AES_256_CBC" />
<validation algorithm="HMACSHA256" />
<masterKey p4:requiresEncryption="true" xmlns:p4="http://schemas.asp.net/2015/03/dataProtection">
<!-- Warning: the key below is in an unencrypted form. -->
<value>N6KEU+20is+M3ZH+mi+TYVIjTes0zQ8MJHE7npaP3B8FM8jN+5tMp3SKnu6II2jdWybEvBjAvoycoaRDRsDnZQ==</value>
</masterKey>
</descriptor>
</descriptor>
</key>

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -0,0 +1 @@
145

View File

@@ -0,0 +1,148 @@
# user: test
# pass: testing
# use this to create torrent files
# docker run --rm -it -v $(pwd)/data/qbittorrent-bad/downloads:/downloads --name debian debian:bookworm-slim
# apt update && apt install ctorrent
# ctorrent -t -u "http://tracker:6969/announce" -s example.torrent file_name
# api keys
# sonarr: 96736c3eb3144936b8f1d62d27be8cee
# radarr: 705b553732ab4167ab23909305d60600
# lidarr: 4bd467b8702a4ecf94f737922dac6481
# readarr: 51c053efbea34bad90120d5c2237aa85
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:4.6.7-libtorrentv1
container_name: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- WEBUI_PORT=8080
volumes:
- ./data/qbittorrent/config:/config
- ./data/qbittorrent/downloads:/downloads
ports:
- 8080:8080
- 6881:6881
- 6881:6881/udp
restart: unless-stopped
qbittorrent-bad:
image: lscr.io/linuxserver/qbittorrent:4.6.7-libtorrentv1
container_name: qbittorrent-bad
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- WEBUI_PORT=8081
volumes:
- ./data/qbittorrent-bad/config:/config
- ./data/qbittorrent-bad/downloads:/downloads
ports:
- 8081:8081
- 6882:6881
- 6882:6881/udp
restart: unless-stopped
tracker:
image: wiltonsr/opentracker:open
container_name: opentracker
ports:
- 6969:6969/tcp
- 6969:6969/udp
restart: unless-stopped
nginx:
image: nginx:latest
container_name: nginx
volumes:
- ./data/nginx:/usr/share/nginx/html/custom
ports:
- 8082:80
restart: unless-stopped
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- ./data/sonarr/config:/config
- ./data/sonarr/tv:/tv
- ./data/qbittorrent/downloads:/downloads
ports:
- 8989:8989
restart: unless-stopped
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- ./data/radarr/config:/config
- ./data/radarr/movies:/movies
- ./data/qbittorrent/downloads:/downloads
ports:
- 7878:7878
restart: unless-stopped
lidarr:
image: lscr.io/linuxserver/lidarr:latest
container_name: lidarr
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- ./data/lidarr/config:/config
- ./data/lidarr/music:/music
- ./data/qbittorrent/downloads:/downloads
ports:
- 8686:8686
restart: unless-stopped
readarr:
image: lscr.io/linuxserver/readarr:develop
container_name: readarr
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- ./data/readarr/config:/config
- ./data/readarr/books:/books
- ./data/qbittorrent/downloads:/downloads
ports:
- 8787:8787
restart: unless-stopped
cleanuperr:
image: flaminel/cleanuperr:1.1.0
container_name: cleanuperr
environment:
- TRIGGERS__QUEUECLEANER=0/30 * * * * ?
- QBITTORRENT__URL=http://qbittorrent:8080
- QBITTORRENT__USERNAME=test
- QBITTORRENT__PASSWORD=testing
- SONARR__ENABLED=true
- SONARR__INSTANCES__0__URL=http://sonarr:8989
- SONARR__INSTANCES__0__APIKEY=96736c3eb3144936b8f1d62d27be8cee
- RADARR__ENABLED=true
- RADARR__INSTANCES__0__URL=http://radarr:7878
- RADARR__INSTANCES__0__APIKEY=705b553732ab4167ab23909305d60600
restart: unless-stopped
depends_on:
- qbittorrent
- sonarr
- radarr
- lidarr
- readarr