Skip to content

feat: add Lidarr support#421

Open
korabcenaj wants to merge 2 commits into
nzbdav-dev:mainfrom
korabcenaj:feat/lidarr-support
Open

feat: add Lidarr support#421
korabcenaj wants to merge 2 commits into
nzbdav-dev:mainfrom
korabcenaj:feat/lidarr-support

Conversation

@korabcenaj
Copy link
Copy Markdown

Summary

Closes #284

Adds Lidarr as a first-class integration alongside the existing Radarr and Sonarr support.

Changes

Backend

File Change
ArrClient.cs Changed BasePath from private const to protected virtual property so subclasses can override it (Lidarr uses /api/v1 vs /api/v3)
ArrConfig.cs Added LidarrInstances list; updated GetArrClients() and GetInstanceCount()
LidarrClient.cs New: overrides BasePath to /api/v1; implements RemoveAndSearch via artist-path cache + track-file lookup (same caching strategy as SonarrClient)
LidarrArtist.cs New model
LidarrTrackFile.cs New model
LidarrQueue.cs New model
LidarrQueueRecord.cs New model

ArrMonitoringService works automatically — it calls GetArrClients() which now includes LidarrClient instances, so queue monitoring for Lidarr is included with no further changes.

Frontend

  • Added LidarrInstances to the ArrConfig TypeScript interface
  • Added Add/Remove/Update callbacks for Lidarr instances
  • Added a Lidarr Instances section in the Settings → arrs tab (between Sonarr and Queue Management)
  • Default host placeholder shows http://localhost:8686 for Lidarr
  • isArrsSettingsValid() validates Lidarr instances the same way as Radarr/Sonarr
  • Updated Automatic Queue Management description to mention Lidarr
  • Updated default arr.instances config value to include LidarrInstances: []

Screenshots

The Lidarr Instances section appears between Sonarr and Automatic Queue Management in the Settings UI, with identical Add/Test/Remove UX.

korabcenaj added 2 commits May 5, 2026 15:16
Allows users to restrict which network interface nzbdav binds to
via the LISTEN_ADDRESS environment variable.

- Defaults to 0.0.0.0 (all interfaces), preserving existing behaviour
- Sets ASPNETCORE_URLS in entrypoint.sh so Kestrel honours the address
- Passes LISTEN_ADDRESS to the Node.js frontend server so both
  processes bind to the same interface
- Derives BACKEND_URL from LISTEN_ADDRESS when it is a specific
  non-loopback/non-wildcard IP
- Documents the variable with ENV LISTEN_ADDRESS=0.0.0.0 in Dockerfile
  and exposes port 8080 alongside the existing 3000

Fixes nzbdav-dev#408
Add Lidarr as a first-class *arr integration alongside Radarr and Sonarr.

Backend:
- Make ArrClient.BasePath a protected virtual property so subclasses
  can override it (Lidarr uses /api/v1 instead of /api/v3)
- Add LidarrInstances list to ArrConfig and include LidarrClient
  instances in GetArrClients() / GetInstanceCount()
- New LidarrClient: overrides BasePath to /api/v1, implements
  RemoveAndSearch using artist-path cache + track-file lookup,
  same caching strategy as SonarrClient
- New models: LidarrArtist, LidarrTrackFile, LidarrQueue,
  LidarrQueueRecord

Frontend:
- Add LidarrInstances field to ArrConfig interface
- Add Add/Remove/Update callbacks for Lidarr instances
- Add Lidarr Instances section to the settings UI (between Sonarr
  and Automatic Queue Management)
- Default placeholder port 8686 for Lidarr host field
- Include LidarrInstances in isArrsSettingsValid() validation
- Update queue management description to mention Lidarr
- Update default arr.instances config key to include LidarrInstances

ArrMonitoringService automatically monitors Lidarr queues because it
calls GetArrClients(), which now returns LidarrClient instances too.

Closes nzbdav-dev#284
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Lidarr Support

1 participant