Navidrome - Plugins¶
Configuration options for navidrome plugins.
Available Options
This page documents 8 configuration options.
Additional Options¶
This page has the following additional configuration options:
nixflix.navidrome.plugins¶
Navidrome plugins to manage declaratively. Each key is a plugin's nixflix-facing name (usually, but not required to be, the same as its pkgs.pkgsCross.wasi32.navidromePlugins attribute name, e.g. "apple-music", "audiomuseai"). A default package and strongly-typed config sub-options are provided for some popular plugins.
For a plugin not in that first-class table (e.g. only published as a .ndp release asset on its own GitHub repo), set package yourself, and apiId too if it doesn't already match that package — see those options' docs.
| Type | open submodule of attribute set of (submodule) |
| Default | |
| Declared in | modules/navidrome/plugins/fromGenerated.nix, modules/navidrome/plugins |
nixflix.navidrome.plugins.<name>.allLibraries¶
PUT as allLibraries.
nixflix.navidrome.plugins.<name>.allowWriteAccess¶
PUT as allowWriteAccess.
nixflix.navidrome.plugins.<name>.apiId¶
The plugin's /api/plugin/<id> id. This must equal the basename (without .ndp) of the file actually installed to services.navidrome.finalPackage's plugin folder, i.e. package's pname (or bundleName) — not necessarily this attribute's name. It defaults to the attribute name only as a convenience, for packages where the two happen to line up; set it explicitly whenever they don't (see the discord-rich-presence/lyrics first-class plugins for existing examples of this).
nixflix.navidrome.plugins.<name>.config¶
Plugin configuration. Strongly typed for plugins with a generated ./<name>-plugin.nix, else freeform.
When freeform, you can get the values from the web browser developer tools when changing the specified plugins settings.
nixflix.navidrome.plugins.<name>.enable¶
Whether to install this plugin's package into services.navidrome.plugins and configure+enable it via the Navidrome API.
nixflix.navidrome.plugins.<name>.libraries¶
PUT as libraries (JSON-encoded) when allLibraries = false.
nixflix.navidrome.plugins.<name>.package¶
Package producing this plugin's .ndp bundle.
For a plugin not packaged in nixpkgs (i.e. not available under pkgs.pkgsCross.wasi32.navidromePlugins), wrap its .ndp release asset in a minimal derivation. passthru.isNavidromePlugin = true is required, as services.navidrome.plugins only accepts packages carrying that flag. Navidrome installs the plugin under this derivation's pname (or bundleName), so apiId must match that same name.