Commit graph

12878 commits

Author SHA1 Message Date
nitrobass24
163bd28efd Improve Qui application: dynamic capabilities, Backend sync, correct port
- Build Capabilities from indexer's actual search support instead of
  hardcoding ["search"]
- Include Backend in Equals/GetHashCode so drift is detected during sync
- Fix default qui port from 7474 to 7476

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:43 -05:00
nitrobass24
15eed25107 Fix null safety, equality contract, and silent HTTP errors in Qui application
- Prevent NullReferenceException in UpdateIndexer when indexerMapping is null
- Normalize Categories comparison in QuiIndexer.Equals for null/empty symmetry
  and add GetHashCode override to maintain equality/hash contract
- Check response status in RemoveIndexer so failed DELETEs raise HttpException

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:43 -05:00
nitrobass24
bbc828500a Add qui as a supported Application integration
qui is a cross-seeding tool from autobrr that supports Torznab indexers.
This adds full sync support via qui's REST API at /api/torznab/indexers,
allowing Prowlarr to automatically manage torrent indexers in qui.

Closes #2587

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 22:57:43 -05:00
nitrobass24
b57be28d49 Fix Docker build: include Prowlarr.Mono in publish output
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:38 -05:00
nitrobass24
1a2b7e8e1e Fix Docker image name: lowercase required for registry
Docker registry references must be lowercase. github.repository
returns 'nitrobass24/Prowlarr' with a capital P.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
809c148ff5 Fix Docker publish: push by digest then merge manifest
Each arch build pushes its image by digest to GHCR (no tags). The
publish job downloads the digests and creates a multi-arch manifest
with all tags using docker buildx imagetools create.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
f5ca3743fd Speed up Docker build: native arm64 runner instead of QEMU
Build each architecture on its own native runner (ubuntu-24.04 for
amd64, ubuntu-24.04-arm for arm64) in parallel, export as OCI tarballs,
then merge into a multi-arch manifest at publish time. Eliminates
~25 minutes of QEMU emulation overhead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
d51bb2ff02 Fix Docker build: copy Logo directory for embedded resource
Prowlarr.Core.csproj references Logo/64.png as an embedded resource
via a path relative to the repo root.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
d6d4e902e4 Fix Docker build: include Logo directory in build context
Prowlarr.Core.csproj embeds Logo/64.png as a resource.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
0e095834f3 Fix Docker build: disable analyzers at restore time too
StyleCop PackageReference is conditionally included based on
EnableAnalyzers at restore time. Without it during restore, the
analyzer DLLs get restored and run during publish regardless.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
bc5688bdd1 Fix Docker build: disable StyleCop analyzers during publish
Upstream has TreatWarningsAsErrors=true and StyleCop violations in
existing code. The CI backend build already uses EnableAnalyzers=false.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
1b6d3fbeb7 Fix Docker build: add explicit -f net8.0 to publish command
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
762fe61df3 Fix Docker build: publish Console project instead of Windows GUI
NzbDrone/Prowlarr.csproj is the Windows GUI entry point (WinForms,
net8.0-windows). NzbDrone.Console/Prowlarr.Console.csproj is the
headless Linux entry point (net8.0) which outputs as 'Prowlarr'.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
94d619229b Fix Docker build: specify net8.0 framework for publish
The project multi-targets net8.0 and net8.0-windows, so dotnet publish
requires an explicit --framework to disambiguate.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
09d5c4458b Split Docker into build and publish jobs
docker-build runs in parallel with all other jobs — no dependencies.
docker-publish gates on backend, unit-tests, frontend, and docker-build.
The publish step is a cache hit since docker-build already populated GHA cache.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
20081b0687 Fix Docker build: enable Windows targeting for cross-platform restore
Prowlarr.csproj multi-targets net8.0-windows which fails to restore on
Alpine Linux without EnableWindowsTargeting=true.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
183f3ec492 Run backend, unit-tests, and frontend in parallel
Only the Docker publish step gates on all three completing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
9a053d0814 Fix Docker build: restore app project instead of full solution
The solution includes test projects whose csproj files aren't copied
into the Docker build context, causing restore to fail.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
61408305c6 Update CI triggers to main and feature branches
develop stays clean for upstream PRs with no CI workflow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
b3b5943898 Enable Docker image push on pull requests
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
e09567659a Add Docker image build to CI pipeline
Multi-stage Dockerfile using hotio/base:alpinevpn with s6-overlay.
Docker job runs after backend, unit-tests, and frontend pass.
Builds linux/amd64 and linux/arm64 images, pushes to GHCR on
non-PR events. Supports manual dispatch with optional version tag.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
67274ab7b5 Fix CI: create app data directory before running tests
The event_handlers_should_be_unique test requires the Prowlarr app data
directory to exist. Upstream test.sh creates this directory before
running tests (mkdir -p for each platform). Added the same setup step.
2026-04-14 22:57:25 -05:00
nitrobass24
3f9aca3fe0 Fix CI: use dotnet msbuild -restore to properly disable analyzers
The separate restore + build steps caused StyleCop analyzers to be
restored unconditionally, then EnableAnalyzers=false had no effect
since packages were already resolved. Using dotnet msbuild -restore
(matching upstream build.sh) passes the property during both restore
and build phases.
2026-04-14 22:57:25 -05:00
nitrobass24
1785cc0827 Add GitHub Actions CI workflow for build and test
Replicates the upstream Azure Pipelines build patterns as GitHub Actions:
- Backend build across Linux, Windows, macOS with .NET 8.0
- Unit tests on all three platforms with NUnit test filtering
- Frontend build with yarn, ESLint, and Stylelint

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
d0fef39ae9 Add CodeRabbit configuration for automated PR reviews
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
nitrobass24
290d578246 Revert "Add CodeRabbit configuration for automated PR reviews"
This reverts commit deb4ca697e5e60b93db564f26771aac98ab8d55c.
2026-04-14 22:57:25 -05:00
nitrobass24
ba7e97f185 Add CodeRabbit configuration for automated PR reviews
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 22:57:25 -05:00
Auggie
46ce8e2701
Version bump to 2.3.7 2026-04-12 18:40:12 +02:00
Daniel Jacobs
c687bdb1fb
Fixed: Don't send limit=0 to Newznab indexers (#2654)
* Fixed: Don't send limit=0 to Newznab indexers

When searching via the internal API, SearchResource.Limit defaults
to 0 because it's a non-nullable int. This gets passed through to
the Newznab request generator, which emits &limit=0 in the query URL.

Indexers that follow the Newznab spec honor limit=0 literally and
return zero results. Confirmed affected: DrunkenSlug and NZBGeek.

Changed Limit and Offset on SearchResource to int? so they default
to null when omitted, matching the existing behavior in NewznabRequest.
Also guard against emitting limit=0 in the request
generators.

Co-authored-by: Daniel Jacobs <danielj@certida.com>
Co-authored-by: Bogdan <mynameisbogdan@users.noreply.github.com>
2026-04-11 11:18:29 +02:00
ilike2burnthing
b2d49164bc Fixed: (ZonaQ) Obsolete per site policy 2026-04-08 21:31:22 +02:00
ilike2burnthing
28bd80d3aa Fixed: (SceneTime) Obsolete - migrated to YAML for Torznab API 2026-04-08 21:27:54 +02:00
RobinDadswell
0ffcfccf1d Version bump to 2.3.6 2026-04-02 20:50:24 +01:00
Bogdan
3c4efa0226 Update browserlist db 2026-03-30 14:01:13 +01:00
Mark McDowall
50d31d0c5e Fixed: Downloading backups when path contains a trailing slash
(cherry picked from commit 31c7647eacb3c3a50e55550880287e00302a9881)
2026-03-30 14:01:13 +01:00
Mark McDowall
f48c9f9f88 Improve HTTP file mappers
(cherry picked from commit f30207c3d130c1a37f29e214101c8ec9613d18ee)
2026-03-30 14:01:13 +01:00
Mark McDowall
1ba2f26649 New: Use instance name in PWA manifest
(cherry picked from commit 1fcfb88d2aa0126c4b3c878c8e310311ea57d04d)
2026-03-30 14:01:13 +01:00
Mark McDowall
c880b6c09c Fixed: PWA Manifest with URL base
(cherry picked from commit aedcd046fc4fc621dae4b231cc80d4b269a69177)
2026-03-30 14:01:13 +01:00
Bogdan
6fca0d0b6c Sync static resource mapper with upstream 2026-03-30 14:01:13 +01:00
Mark McDowall
9907342055 Close issues that don't follow issue templates
(cherry picked from commit c8f15ae1989cfb7d83cc580409a972e9fdd44a7c)
2026-03-29 11:47:37 +01:00
Auggie
71d1a59008 chore: Fix Innosetup download URI and bump Innosetup version 2026-03-29 01:34:30 +01:00
Bogdan
33fa39dc84 Fixed: (SceneTime) Update layout selectors 2026-03-29 00:36:43 +01:00
Auggie
d133c82537 Revert incorrectly deleted function in MigrationExtension 2026-03-29 00:35:53 +01:00
Auggie
6b446e1404 chore: Clean up unused NuGet dependencies 2026-03-28 14:24:34 +01:00
Bogdan
b0e879da5c fixed: Loading native libraries on FreeBSD and Linux 2026-03-28 14:24:04 +01:00
Bogdan
5edde8d9bd Switch to FluentMigrator.Runner.Core to avoid extranous platform runners 2026-03-24 20:14:46 +01:00
Bogdan
ef5d670c39 Fallback to host sqlite3 on FreeBSD and Linux 2026-03-24 20:13:46 +01:00
Bogdan
f568906876 Bump FluentMigrator to official 6.2.0 2026-03-24 20:13:46 +01:00
Auggie
331e92ac62 Bump to 2.3.5 2026-03-22 21:21:21 +01:00
Weblate
ec46b25be2 Multiple Translations updated by Weblate
ignore-downstream

Co-authored-by: 康小广 <kenkangxgwe@gmail.com>
Translate-URL: https://translate.servarr.com/projects/servarr/prowlarr/zh_CN/
Translation: Servarr/Prowlarr
2026-03-22 01:33:26 +01:00
Bogdan
8b3837cb6e Fixed: Parsing URLs on some systems due to Locale 2026-03-15 00:59:58 +01:00