From ab87e338059115d04c43947e5c11da293829436c Mon Sep 17 00:00:00 2001 From: Adrien Poupa Date: Wed, 14 May 2025 14:41:26 -0400 Subject: [PATCH] feat: Add Cleanuperr (#148) --- .gitignore | 4 +- README.md | 1 + cleanuperr/blacklist.json | 518 ++++++++++++++++++++++++++++++++++++++ cleanuperr/ignored.txt | 0 docker-compose.yml | 30 +++ 5 files changed, 552 insertions(+), 1 deletion(-) create mode 100644 cleanuperr/blacklist.json create mode 100644 cleanuperr/ignored.txt diff --git a/.gitignore b/.gitignore index fa2394e..f0c60c5 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,6 @@ docker-compose.override.yml /adguardhome/conf /adguardhome/work /sabnzbd -/calibre-web \ No newline at end of file +/calibre-web +/cleanuperr/* +!/cleanuperr/blacklist.json \ No newline at end of file diff --git a/README.md b/README.md index 52fe384..ff62076 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,7 @@ I am running it in Ubuntu Server 22.04; I also tested this setup on a [Synology | [PIA WireGuard VPN](https://github.com/thrnz/docker-wireguard-pia) | Encapsulate qBittorrent traffic in [PIA](https://www.privateinternetaccess.com/) using [WireGuard](https://www.wireguard.com/) with port forwarding. | [thrnz/docker-wireguard-pia](https://hub.docker.com/r/thrnz/docker-wireguard-pia) | | | [qBittorrent](https://www.qbittorrent.org) | Bittorrent client with a complete web UI
Uses VPN network
Using Libtorrent 1.x | [linuxserver/qbittorrent:libtorrentv1](https://hub.docker.com/r/linuxserver/qbittorrent) | /qbittorrent | | [Unpackerr](https://unpackerr.zip) | Automated Archive Extractions | [golift/unpackerr](https://hub.docker.com/r/golift/unpackerr) | | +| [Cleanuperr](https://github.com/flmorg/cleanuperr) | Cleanuperr is a tool for automating the cleanup of unwanted or blocked files in Sonarr and Radarr. | [flmorg/cleanuperr](https://ghcr.io/flmorg/cleanuperr) | | | [Jellyfin](https://jellyfin.org) | Media server designed to organize, manage, and share digital media files to networked devices | [linuxserver/jellyfin](https://hub.docker.com/r/linuxserver/jellyfin) | /jellyfin | | [Jellyseer](https://jellyfin.org) | Manages requests for your media library | [fallenbagel/jellyseerr](https://hub.docker.com/r/fallenbagel/jellyseerr) | `$JELLYSEERR_HOSTNAME` | | [Homepage](https://gethomepage.dev) | Application dashboard | [gethomepage/homepage](https://github.com/gethomepage/homepage/pkgs/container/homepage) | / | diff --git a/cleanuperr/blacklist.json b/cleanuperr/blacklist.json new file mode 100644 index 0000000..1c1ed68 --- /dev/null +++ b/cleanuperr/blacklist.json @@ -0,0 +1,518 @@ +*(sample).* +*.0xe +*.73k +*.73p +*.7z +*.89k +*.89z +*.8ck +*.a7r +*.ac +*.acc +*.ace +*.acr +*.actc +*.action +*.actm +*.ade +*.adp +*.afmacro +*.afmacros +*.ahk +*.ai +*.aif +*.air +*.alz +*.api +*.apk +*.app +*.appimage +*.applescript +*.application +*.appx +*.arc +*.arj +*.arscript +*.asb +*.asp +*.aspx +*.aspx-exe +*.atmx +*.azw2 +*.ba_ +*.bak +*.bas +*.bash +*.bat +*.bdjo +*.bdmv +*.beam +*.bin +*.bmp +*.bms +*.bns +*.bsa +*.btm +*.bz2 +*.c +*.cab +*.caction +*.cci +*.cda +*.cdb +*.cel +*.celx +*.cfs +*.cgi +*.cheat +*.chm +*.ckpt +*.cla +*.class +*.clpi +*.cmd +*.cof +*.coffee +*.com +*.command +*.conf +*.config +*.cpl +*.crt +*.cs +*.csh +*.csharp +*.csproj +*.css +*.csv +*.cue +*.cur +*.cyw +*.daemon +*.dat +*.data-00000-of-00001 +*.db +*.deamon +*.deb +*.dek +*.diz +*.dld +*.dll +*.dmc +*.dmg +*.doc +*.docb +*.docm +*.docx +*.dot +*.dotb +*.dotm +*.drv +*.ds +*.dw +*.dword +*.dxl +*.e_e +*.ear +*.ebacmd +*.ebm +*.ebs +*.ebs2 +*.ecf +*.eham +*.elf +*.elf-so +*.email +*.emu +*.epk +*.es +*.esh +*.etc +*.ex4 +*.ex5 +*.ex_ +*.exe +*.exe-only +*.exe-service +*.exe-small +*.exe1 +*.exopc +*.exz +*.ezs +*.ezt +*.fas +*.fba +*.fky +*.flac +*.flatpak +*.flv +*.fpi +*.frs +*.fxp +*.gadget +*.gat +*.gif +*.gifv +*.gm9 +*.gpe +*.gpu +*.gs +*.gz +*.h5 +*.ham +*.hex +*.hlp +*.hms +*.hpf +*.hta +*.hta-psh +*.htaccess +*.htm +*.html +*.icd +*.icns +*.ico +*.idx +*.iim +*.img +*.index +*.inf +*.ini +*.ink +*.ins +*.ipa +*.ipf +*.ipk +*.ipsw +*.iqylink +*.iso +*.isp +*.isu +*.ita +*.izh +*.izma ace +*.jar +*.java +*.jpeg +*.jpg +*.js +*.js_be +*.js_le +*.jse +*.jsf +*.json +*.jsp +*.jsx +*.kix +*.ksh +*.kx +*.lck +*.ldb +*.lib +*.link +*.lnk +*.lo +*.lock +*.log +*.loop-vbs +*.ls +*.m3u +*.m4a +*.mac +*.macho +*.mamc +*.manifest +*.mcr +*.md +*.mda +*.mdb +*.mde +*.mdf +*.mdn +*.mdt +*.mel +*.mem +*.meta +*.mgm +*.mhm +*.mht +*.mhtml +*.mid +*.mio +*.mlappinstall +*.mlx +*.mm +*.mobileconfig +*.model +*.moo +*.mp3 +*.mpa +*.mpk +*.mpls +*.mrc +*.mrp +*.ms +*.msc +*.msh +*.msh1 +*.msh1xml +*.msh2 +*.msh2xml +*.mshxml +*.msi +*.msi-nouac +*.msix +*.msl +*.msp +*.mst +*.msu +*.mxe +*.n +*.ncl +*.net +*.nexe +*.nfo +*.nrg +*.num +*.nzb.bz2 +*.nzb.gz +*.nzbs +*.ocx +*.odt +*.ore +*.ost +*.osx +*.osx-app +*.otm +*.out +*.ova +*.p +*.paf +*.pak +*.pb +*.pcd +*.pdb +*.pdf +*.pea +*.perl +*.pex +*.phar +*.php +*.php5 +*.pif +*.pkg +*.pl +*.plsc +*.plx +*.png +*.pol +*.pot +*.potm +*.powershell +*.ppam +*.ppkg +*.pps +*.ppsm +*.ppt +*.pptm +*.pptx +*.prc +*.prg +*.ps +*.ps1 +*.ps1xml +*.ps2 +*.ps2xml +*.psc1 +*.psc2 +*.psd +*.psd1 +*.psh +*.psh-cmd +*.psh-net +*.psh-reflection +*.psm1 +*.pst +*.pt +*.pvd +*.pwc +*.pxo +*.py +*.pyc +*.pyd +*.pyo +*.python +*.pyz +*.qit +*.qpx +*.ram +*.rar +*.raw +*.rb +*.rbf +*.rbx +*.readme +*.reg +*.resources +*.resx +*.rfs +*.rfu +*.rgs +*.rm +*.rox +*.rpg +*.rpj +*.rpm +*.ruby +*.run +*.rxe +*.s2a +*.sample +*.sapk +*.savedmodel +*.sbs +*.sca +*.scar +*.scb +*.scf +*.scpt +*.scptd +*.scr +*.script +*.sct +*.seed +*.server +*.service +*.sfv +*.sh +*.shb +*.shell +*.shortcut +*.shs +*.shtml +*.sit +*.sitx +*.sk +*.sldm +*.sln +*.smm +*.snap +*.snd +*.spr +*.sql +*.sqx +*.srec +*.srt +*.ssm +*.sts +*.sub +*.svg +*.swf +*.sys +*.tar +*.tar.gz +*.tbl +*.tbz +*.tcp +*.text +*.tf +*.tgz +*.thm +*.thmx +*.thumb +*.tiapp +*.tif +*.tiff +*.tipa +*.tmp +*.tms +*.toast +*.torrent +*.tpk +*.txt +*.u3p +*.udf +*.upk +*.upx +*.url +*.uvm +*.uw8 +*.vb +*.vba +*.vba-exe +*.vba-psh +*.vbapplication +*.vbe +*.vbs +*.vbscript +*.vbscript +*.vcd +*.vdo +*.vexe +*.vhd +*.vhdx +*.vlx +*.vm +*.vmdk +*.vob +*.vocab +*.vpm +*.vxp +*.war +*.wav +*.wbk +*.wcm +*.webm +*.widget +*.wim +*.wiz +*.wma +*.workflow +*.wpk +*.wpl +*.wpm +*.wps +*.ws +*.wsc +*.wsf +*.wsh +*.x86 +*.x86_64 +*.xaml +*.xap +*.xbap +*.xbe +*.xex +*.xig +*.xla +*.xlam +*.xll +*.xlm +*.xls +*.xlsb +*.xlsm +*.xlsx +*.xlt +*.xltb +*.xltm +*.xlw +*.xml +*.xqt +*.xrt +*.xys +*.xz +*.ygh +*.z +*.zip +*.zipx +*.zl9 +*.zoo +*sample.avchd +*sample.avi +*sample.mkv +*sample.mov +*sample.mp4 +*sample.webm +*sample.wmv +Trailer.* +api \ No newline at end of file diff --git a/cleanuperr/ignored.txt b/cleanuperr/ignored.txt new file mode 100644 index 0000000..e69de29 diff --git a/docker-compose.yml b/docker-compose.yml index 06721a4..4ab1d4b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -335,6 +335,36 @@ services: - UN_RADARR_0_API_KEY=${RADARR_API_KEY} security_opt: - no-new-privileges:true + cleanuperr: + image: ghcr.io/flmorg/cleanuperr:latest + container_name: cleanuperr + restart: always + volumes: + - ${CONFIG_ROOT:-.}/cleanuperr/logs:/var/logs + - ${CONFIG_ROOT:-.}/cleanuperr/ignored.txt:/usr/ignored.txt + - ${CONFIG_ROOT:-.}/cleanuperr/blacklist.json:/usr/blacklist.json + environment: + - TZ=${TIMEZONE} + - QUEUECLEANER__ENABLED=true + - QUEUECLEANER__IMPORT_FAILED_MAX_STRIKES=3 + - QUEUECLEANER__STALLED_MAX_STRIKES=3 + - QUEUECLEANER__DOWNLOADING_METADATA_MAX_STRIKES=3 + - QUEUECLEANER__STALLED_RESET_STRIKES_ON_PROGRESS=true + - TRIGGERS__QUEUECLEANER=0 0 0/1 * * ? + - CONTENTBLOCKER__ENABLED=true + - CONTENTBLOCKER__IGNORED_DOWNLOADS_PATH=/usr/ignored.txt + - TRIGGERS__CONTENTBLOCKER=0 0 0/1 * * ? + - DOWNLOAD_CLIENT=qBittorrent + - QBITTORRENT__URL=http://vpn:8080 + - QBITTORRENT__PASSWORD=${QBITTORRENT_PASSWORD} + - SONARR__ENABLED=true + - SONARR__BLOCK__PATH=/usr/blacklist.json + - SONARR__INSTANCES__0__URL=http://sonarr:8989/sonarr + - SONARR__INSTANCES__0__APIKEY=${SONARR_API_KEY} + - RADARR__ENABLED=true + - RADARR__BLOCK__PATH=/usr/blacklist.json + - RADARR__INSTANCES__0__URL=http://radarr:7878/radarr + - RADARR__INSTANCES__0__APIKEY=${RADARR_API_KEY} sabnzbd: image: lscr.io/linuxserver/sabnzbd:latest container_name: sabnzbd