<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Navidrome</title><link>https://pr-289.navidrome-website.pages.dev/</link><description>Recent content on Navidrome</description><generator>Hugo</generator><language>en</language><atom:link href="https://pr-289.navidrome-website.pages.dev/index.xml" rel="self" type="application/rss+xml"/><item><title>Development Environment</title><link>https://pr-289.navidrome-website.pages.dev/docs/developers/dev-environment/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/developers/dev-environment/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;This is just a summary on how to get started. If you are stuck or have any questions, please join our &lt;a href="https://discord.gg/xh7j7yF"&gt;Discord server&lt;/a&gt; and give us a shout on the &lt;code&gt;#dev&lt;/code&gt; channel&lt;/p&gt;

&lt;/div&gt;

&lt;p&gt;Any IDE with good support for GoLang and JavaScript/Node can be used for Navidrome development. We suggest using &lt;a href="https://code.visualstudio.com/"&gt;Visual Studio Code&lt;/a&gt;, which has excellent support for both languages.&lt;/p&gt;
&lt;h3 id="using-vscode--dev-container-docker"&gt;Using VSCode + Dev Container (Docker)&lt;a class="td-heading-self-link" href="#using-vscode--dev-container-docker" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;The project includes a &lt;a href="https://code.visualstudio.com/docs/remote/containers"&gt;VSCode Dev Container&lt;/a&gt; configuration for using with &lt;a href="https://www.docker.com/products/docker-desktop"&gt;Docker&lt;/a&gt;. The Dev Container provides all dependencies out-of-the-box. If you prefer to install all dependencies yourself, or cannot/don&amp;rsquo;t want to install Docker for any reason, see the other sections below for step by step instructions for your OS.&lt;/p&gt;</description></item><item><title>Automated Backup</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/admin/backup/</link><pubDate>Sat, 21 Dec 2024 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/admin/backup/</guid><description>&lt;p&gt;Navidrome version 0.54.x introduces a backup feature that allows the music server&amp;rsquo;s data to get periodically exported.
This guide will walk you through configuring backups using both a &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/options/"&gt;configuration&lt;/a&gt;
file and environment variables, where to locate the backups, and how to restore from a backup.&lt;/p&gt;


&lt;div class="alert alert-primary" role="alert"&gt;


 Note: The backup process ONLY backs up the database (users, play counts, etc.). It does NOT back up the music or the config.

&lt;/div&gt;

&lt;h2 id="configuring-backup-with-configtoml"&gt;Configuring Backup with config.toml&lt;a class="td-heading-self-link" href="#configuring-backup-with-configtoml" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;To configure backups using the navidrome.toml file, insert the following lines to set up backups:&lt;/p&gt;</description></item><item><title>Navidrome Configuration Options</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/options/</link><pubDate>Fri, 06 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/options/</guid><description>&lt;p&gt;Navidrome allows some customization using environment variables, loading from a configuration file
or using command line arguments.&lt;/p&gt;
&lt;h2 id="configuration-file"&gt;Configuration File&lt;a class="td-heading-self-link" href="#configuration-file" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;div class="alert alert-primary" role="alert"&gt;


 &lt;p&gt;Some options are only configurable using a configuration file. If you are using environment variables
(ex: with Docker), you may not be able to set all options.&lt;/p&gt;
&lt;p&gt;If you want to use a configuration file with Docker, you can do so by creating a &lt;code&gt;navidrome.toml&lt;/code&gt; config file in the
host folder that is mapped to your &lt;code&gt;/data&lt;/code&gt; volume. Docker installations automatically look for a &lt;code&gt;navidrome.toml&lt;/code&gt; file in the &lt;code&gt;/data&lt;/code&gt; folder.&lt;/p&gt;</description></item><item><title>External Integrations</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/integration/external-services/</link><pubDate>Wed, 04 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/integration/external-services/</guid><description>&lt;h2 id="lastfm"&gt;Last.fm&lt;a class="td-heading-self-link" href="#lastfm" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Navidrome can use Last.fm to retrieve artists biographies, top songs, similar artists and album covers. It can also
send your scrobbles to Last.fm. For these features to work, you&amp;rsquo;ll need to set the
&lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/options/#:~:text=LastFM.ApiKey*-,ND_LASTFM_APIKEY,-Last.fm%20API"&gt;config options&lt;/a&gt;
&lt;code&gt;LastFM.ApiKey&lt;/code&gt; and &lt;code&gt;LastFM.Secret&lt;/code&gt;. You can obtain these values by creating a free API account in Last.fm:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://www.last.fm/api/account/create"&gt;https://www.last.fm/api/account/create&lt;/a&gt; and create an API account. Only the &lt;em&gt;Application Name&lt;/em&gt; field is mandatory:&lt;/li&gt;
&lt;/ol&gt;
&lt;p align="center"&gt;
&lt;img width="500" src="https://pr-289.navidrome-website.pages.dev/screenshots/lastfm-create-account.webp"&gt;
&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;After submitting the form, you can get the &lt;em&gt;API Key&lt;/em&gt; and &lt;em&gt;Shared Secret&lt;/em&gt; from the &lt;em&gt;Account Created&lt;/em&gt; page:&lt;/li&gt;
&lt;/ol&gt;
&lt;p align="center"&gt;
&lt;img width="500" src="https://pr-289.navidrome-website.pages.dev/screenshots/lastfm-account-created.webp"&gt;
&lt;/p&gt;</description></item><item><title>How to Use Smart Playlists in Navidrome (Beta)</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/features/smart-playlists/</link><pubDate>Mon, 02 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/features/smart-playlists/</guid><description>&lt;p&gt;Smart Playlists in Navidrome offer a dynamic way to organize and enjoy your music collection. They are created using
JSON objects stored in files with a &lt;code&gt;.nsp&lt;/code&gt; extension. These playlists are automatically updated based on specified
criteria, providing a personalized and evolving music experience.&lt;/p&gt;


&lt;div class="alert alert-warning" role="alert"&gt;
&lt;h4 class="alert-heading"&gt;Beta Feature&lt;/h4&gt;

 Smart Playlists are currently in beta and may have some limitations. Please report any issues or suggestions to the
&lt;a href="https://github.com/navidrome/navidrome/issues/1417"&gt;Navidrome GitHub issues page&lt;/a&gt;.

&lt;/div&gt;

&lt;h2 id="creating-smart-playlists"&gt;Creating Smart Playlists&lt;a class="td-heading-self-link" href="#creating-smart-playlists" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;To create a Smart Playlist, you need to define a JSON object with specific &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/features/smart-playlists/#fields"&gt;fields&lt;/a&gt;
and &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/features/smart-playlists/#operators"&gt;operators&lt;/a&gt; that describe the criteria for selecting tracks. The JSON object is stored in a &lt;code&gt;.nsp&lt;/code&gt; file
Here are some examples to get you started:&lt;/p&gt;</description></item><item><title>Tagging Guidelines</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/library/tagging/</link><pubDate>Mon, 02 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/library/tagging/</guid><description>&lt;h2 id="why-proper-tagging-is-important"&gt;Why Proper Tagging is Important&lt;a class="td-heading-self-link" href="#why-proper-tagging-is-important" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Navidrome organizes your music library &lt;em&gt;entirely&lt;/em&gt; based on the metadata tags in your audio files. Unlike some music
players, it does not use folder names or file names to group tracks
(&lt;a href="https://pr-289.navidrome-website.pages.dev/docs/faq/#-can-you-add-a-browsing-by-folder-optionmode-to-navidrome"&gt;why?&lt;/a&gt;).
This means that having clean and consistent tags is crucial for your music to display correctly.
Proper tagging ensures that albums aren&amp;rsquo;t split up, artists are listed correctly, and you can easily browse or search
for your music in Navidrome.&lt;/p&gt;</description></item><item><title>Creating New Themes</title><link>https://pr-289.navidrome-website.pages.dev/docs/developers/creating-themes/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/developers/creating-themes/</guid><description>&lt;p&gt;Themes in Navidrome are simple &lt;a href="https://material-ui.com/customization/theming/"&gt;Material-UI themes&lt;/a&gt;. They are basic JS
objects, that allow you to override almost every visual aspect of Navidrome&amp;rsquo;s UI.&lt;/p&gt;
&lt;h2 id="steps-to-create-a-new-theme"&gt;Steps to create a new theme:&lt;a class="td-heading-self-link" href="#steps-to-create-a-new-theme" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Create a new JS file in the &lt;code&gt;ui/src/themes&lt;/code&gt; folder that exports an object containing your theme. Create
the theme based on the ReactAdmin/Material UI documentation below.
See the existing themes for examples.&lt;/li&gt;
&lt;li&gt;Add a &lt;code&gt;themeName&lt;/code&gt; property to your theme. This will be displayed in the theme selector&lt;/li&gt;
&lt;li&gt;Add your new theme to the &lt;code&gt;ui/src/themes/index.js&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;Start the application, your new theme should now appear as an option in the theme selector&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Before submitting a pull request to include your theme in Navidrome, please test your theme thoroughly and make sure
it is formatted with the &lt;a href="https://prettier.io/"&gt;Prettier&lt;/a&gt; rules found in the project (&lt;code&gt;ui/src/.prettierrc.js&lt;/code&gt;).
Also, don&amp;rsquo;t forget to add lots of screenshots!&lt;/p&gt;</description></item><item><title>Using custom tags with Navidrome</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/custom-tags/</link><pubDate>Mon, 02 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/custom-tags/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;As all tags imported are stored and indexed in the database, to improve performance and reduce storage requirements,
Navidrome only imports a predefined set of tags. The complete list of default tags imported are listed
&lt;a href="https://github.com/navidrome/navidrome/blob/master/resources/mappings.yaml"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;However, Navidrome supports importing and using custom tags from your music files. Custom tags allow you to extend the
metadata beyond the default supported tags. This functionality can be configured via the &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/options/"&gt;configuration file&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Customizing Persistent IDs in Navidrome</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/persistent-ids/</link><pubDate>Mon, 02 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/persistent-ids/</guid><description>&lt;h2 id="persistent-ids-in-navidrome"&gt;Persistent IDs in Navidrome&lt;a class="td-heading-self-link" href="#persistent-ids-in-navidrome" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Persistent IDs (PIDs) are configurable identifiers introduced to provide stable references for Tracks and Albums in Navidrome, significantly improving how media is managed and identified.&lt;/p&gt;
&lt;h3 id="overview-of-persistent-ids"&gt;Overview of Persistent IDs&lt;a class="td-heading-self-link" href="#overview-of-persistent-ids" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Persistent IDs are unique, user-configurable identifiers for tracks and albums, enabling Navidrome to accurately detect and manage moved or re-tagged files, and disambiguate albums with identical names or duplicated entries.&lt;/p&gt;
&lt;h3 id="key-features"&gt;Key Features&lt;a class="td-heading-self-link" href="#key-features" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Configurable and Flexible:&lt;/strong&gt; Users can define their PID structure using various tags, including
&lt;code&gt;musicbrainz_trackid&lt;/code&gt;, &lt;code&gt;albumid&lt;/code&gt;, &lt;code&gt;discnumber&lt;/code&gt;, &lt;code&gt;tracknumber&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;folder&lt;/code&gt;, &lt;code&gt;albumartistid&lt;/code&gt;, &lt;code&gt;catalognum&lt;/code&gt;,
Discogs IDs, or even &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/custom-tags/"&gt;custom tags&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Accurate File Detection:&lt;/strong&gt; Navidrome recognizes moved or re-tagged files, preventing duplication or mismatches.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Album Disambiguation:&lt;/strong&gt; Easily differentiate albums with identical names through custom tags like &lt;code&gt;albumversion&lt;/code&gt; (e.g., Deluxe Editions).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="default-configuration"&gt;Default Configuration&lt;a class="td-heading-self-link" href="#default-configuration" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;The default &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/options/"&gt;configuration&lt;/a&gt; prioritizes MusicBrainz IDs (MBIDs) when available:&lt;/p&gt;</description></item><item><title>Externalized Authentication Quick Start</title><link>https://pr-289.navidrome-website.pages.dev/docs/getting-started/extauth-quickstart/</link><pubDate>Tue, 29 Jul 2025 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/getting-started/extauth-quickstart/</guid><description>&lt;h2 id="what-is-externalized-authentication"&gt;What is externalized authentication&lt;a class="td-heading-self-link" href="#what-is-externalized-authentication" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Externalized authentication allows you to use an external system to handle authentication for Navidrome.
Instead of managing user credentials in Navidrome itself, the responsibility is delegated to an external authentication service.&lt;/p&gt;
&lt;p&gt;The external system comprises a reverse proxy (nginx, Caddy, Traefik, etc.) and an authentication service (Authelia, Authentik, or any other authentication service that works with your reverse proxy).&lt;/p&gt;


&lt;div class="alert alert-primary" role="alert"&gt;
&lt;h4 class="alert-heading"&gt;For Beginners&lt;/h4&gt;

 &lt;p&gt;If you&amp;rsquo;re new to reverse proxies, they act as intermediaries between your users and Navidrome.
They can handle things like SSL certificates, load balancing, and authentication before requests reach Navidrome.&lt;/p&gt;</description></item><item><title>Externalized Authentication</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/integration/authentication/</link><pubDate>Sat, 27 Apr 2024 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/integration/authentication/</guid><description>&lt;div class="alert alert-primary" role="alert"&gt;
&lt;h4 class="alert-heading"&gt;For Beginners&lt;/h4&gt;

 Externalized authentication is a relatively advanced topic.
You can check the &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/extauth-quickstart/"&gt;Quick Start guide&lt;/a&gt; for a beginner-friendly introduction.

&lt;/div&gt;



&lt;div class="alert alert-warning" role="alert"&gt;
&lt;h4 class="alert-heading"&gt;Security Note&lt;/h4&gt;

 &lt;p&gt;&lt;strong&gt;Navidrome works out of the box behind a reverse proxy without enabling externalized authentication.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You only need to enable externalized authentication if you want the proxy to handle the authentication.
In other cases, enabling the feature without securing the reverse proxy configuration &lt;strong&gt;can leave your Navidrome setup vulnerable&lt;/strong&gt; to impersonation attacks.&lt;/p&gt;</description></item><item><title>Multi-Library Support</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/features/multi-library/</link><pubDate>Fri, 18 Jul 2025 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/features/multi-library/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Navidrome supports multiple music libraries since v0.58.0, allowing you to organize your music into separate collections with user-specific access controls. This feature is perfect for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Separating different types of content (music vs. audiobooks)&lt;/li&gt;
&lt;li&gt;Organizing by quality (lossy vs. lossless)&lt;/li&gt;
&lt;li&gt;Separating personal collections (family members, roommates)&lt;/li&gt;
&lt;li&gt;Organizing by genre or era (classical, jazz, modern)&lt;/li&gt;
&lt;li&gt;Managing different sources (official releases vs. bootlegs/live recordings)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-multi-library-works"&gt;How Multi-Library Works&lt;a class="td-heading-self-link" href="#how-multi-library-works" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;h3 id="default-library"&gt;Default Library&lt;a class="td-heading-self-link" href="#default-library" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;When Navidrome starts, it automatically creates a default library using your &lt;code&gt;MusicFolder&lt;/code&gt; configuration. This becomes &amp;ldquo;Library 1&amp;rdquo; and all existing users automatically get access to it, ensuring backward compatibility.&lt;/p&gt;</description></item><item><title>Artwork location resolution</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/library/artwork/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/library/artwork/</guid><description>&lt;h2 id="artists"&gt;Artists&lt;a class="td-heading-self-link" href="#artists" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Fetching images for artists is controlled by the &lt;code&gt;ArtistArtPriority&lt;/code&gt; &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/options/#advanced-configuration"&gt;config option&lt;/a&gt;.
This is a comma-separated list of places to look for artist images.
The default is &lt;code&gt;artist.*, album/artist.*, external&lt;/code&gt;, meaning:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;First try to find an &lt;code&gt;artist.*&lt;/code&gt; image in the artist folder(s)&lt;/li&gt;
&lt;li&gt;If not found, try to find an &lt;code&gt;artist.*&lt;/code&gt; image in one of the album folders for this artist&lt;/li&gt;
&lt;li&gt;If not found, try to fetch it from an &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/integration/external-services/"&gt;external service&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;If not found, use the artist image placeholder (grey star image)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="albums"&gt;Albums&lt;a class="td-heading-self-link" href="#albums" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;CoverArt fetching for albums is controlled by the &lt;code&gt;CoverArtPriority&lt;/code&gt; &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/configuration/options/#advanced-configuration"&gt;config option&lt;/a&gt;.
This is a comma-separated list of places to look for album art images.
The default is &lt;code&gt;cover.*, folder.*, front.*, embedded, external&lt;/code&gt;, meaning:&lt;/p&gt;</description></item><item><title>Security Considerations</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/admin/security/</link><pubDate>Mon, 02 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/admin/security/</guid><description>&lt;h2 id="permissions"&gt;Permissions&lt;a class="td-heading-self-link" href="#permissions" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;You should NOT run Navidrome as &lt;code&gt;root&lt;/code&gt;&lt;/strong&gt;. Ideally you should have it running under its own user. Navidrome only
needs read-only access to the Music Folder, and read-write permissions to the Data Folder.&lt;/p&gt;
&lt;h2 id="encrypted-passwords"&gt;Encrypted passwords&lt;a class="td-heading-self-link" href="#encrypted-passwords" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;To be able to keep compatibility with the Subsonic API and its clients, Navidrome needs to store user&amp;rsquo;s passwords in its database. By default, Navidrome
encrypts the passwords in the DB with a shared encryption key, just for the sake of obfuscation as this key can be easily found in the codebase.&lt;/p&gt;</description></item><item><title>Translations</title><link>https://pr-289.navidrome-website.pages.dev/docs/developers/translations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/developers/translations/</guid><description>&lt;a href="https://poeditor.com/"&gt;
&lt;p&gt;
&lt;img src="https://github.com/user-attachments/assets/c19b1d2b-01e1-4682-a007-12356c42147c"&gt;
&lt;/p&gt;
&lt;/a&gt;
&lt;p&gt;Translations are currently managed in &lt;a href="https://poeditor.com"&gt;POEditor&lt;/a&gt;.
If you want to contribute new translations or help reviewing/proofreading any of the existing
ones, please join our &lt;a href="https://discord.gg/xh7j7yF"&gt;Discord server&lt;/a&gt;, channel &lt;code&gt;#translations&lt;/code&gt;, for
translation efforts coordination and to get further instructions.&lt;/p&gt;
&lt;h2 id="contributing-with-a-pull-request"&gt;Contributing with a Pull Request&lt;a class="td-heading-self-link" href="#contributing-with-a-pull-request" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Alternatively, you can submit a pull request with your proposed changes directly
&lt;a href="https://github.com/navidrome/navidrome/tree/master/resources/i18n"&gt;to our project in GitHub&lt;/a&gt;. This method requires
you to have a GitHub account and some basic knowledge of Git.&lt;/p&gt;</description></item><item><title>Adding Client Apps to the Catalog</title><link>https://pr-289.navidrome-website.pages.dev/docs/developers/adding-apps/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/developers/adding-apps/</guid><description>&lt;p&gt;Want to list your app in the &lt;a href="https://pr-289.navidrome-website.pages.dev/apps/"&gt;Compatible Client Apps&lt;/a&gt; catalog? This guide explains how to submit your app or update an existing entry.&lt;/p&gt;
&lt;h2 id="prerequisites"&gt;Prerequisites&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Your app must support the &lt;a href="https://opensubsonic.netlify.app/"&gt;OpenSubsonic&lt;/a&gt;, &lt;a href="https://subsonic.org/pages/api.jsp"&gt;Subsonic&lt;/a&gt;, or Navidrome API&lt;/li&gt;
&lt;li&gt;You&amp;rsquo;ll need a GitHub account to submit a pull request&lt;/li&gt;
&lt;li&gt;Images must be in WebP format, max 1200px (PNG/JPEG needs to be &lt;a href="https://www.navidrome.org/docs/developers/adding-apps/#processing-images"&gt;converted&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="quick-start"&gt;Quick Start&lt;a class="td-heading-self-link" href="#quick-start" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Fork the &lt;a href="https://github.com/navidrome/website"&gt;navidrome/website&lt;/a&gt; repository&lt;/li&gt;
&lt;li&gt;Create a folder for your app in &lt;code&gt;assets/apps/&lt;/code&gt; using kebab-case (e.g., &lt;code&gt;my-awesome-app&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Add an &lt;code&gt;index.yaml&lt;/code&gt; file with your app&amp;rsquo;s metadata&lt;/li&gt;
&lt;li&gt;Add a thumbnail image and optional gallery screenshots&lt;/li&gt;
&lt;li&gt;Convert (or resize) images if needed:
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm run convert:images my-awesome-app
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Validate your entry using the provided scripts:
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm run validate:app my-awesome-app
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Submit a pull request&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="folder-structure"&gt;Folder Structure&lt;a class="td-heading-self-link" href="#folder-structure" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Each app has its own folder under &lt;code&gt;assets/apps/&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Monitoring Navidrome</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/integration/monitoring/</link><pubDate>Mon, 08 Jul 2024 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/integration/monitoring/</guid><description>&lt;p&gt;Currently, Navidrome supports monitoring and alerting using
Prometheus/&lt;a href="https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md"&gt;OpenMetrics&lt;/a&gt;
standard. Example Grafana dashboard:&lt;/p&gt;
&lt;p align="center"&gt;
&lt;img width="1000" src="https://pr-289.navidrome-website.pages.dev/screenshots/grafana-example.webp"&gt;
&lt;/p&gt;
&lt;h3 id="overview"&gt;Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Prometheus is a service that takes data from a metrics endpoint and collects it.
Grafana is a dashboard service that can take data from a Prometheus server and
display it.
Navidrome has an easy way to create a metrics endpoint that Prometheus can use.
Once you point Prometheus to this endpoint, and Grafana to your Prometheus server,
you will be able to monitor your Navidrome instance.&lt;/p&gt;</description></item><item><title>Jukebox mode</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/features/jukebox/</link><pubDate>Mon, 23 Oct 2023 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/features/jukebox/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;a class="td-heading-self-link" href="#introduction" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Navidrome&amp;rsquo;s Jukebox feature is a built-in functionality that allows users to play music directly to the server&amp;rsquo;s audio
hardware. This essentially turns your server into a jukebox, enabling you to play songs or playlists remotely through a
supported Subsonic client. With the Jukebox feature, you can control the audio playback in real-time, just like you
would with any other media player. It&amp;rsquo;s a convenient way to enjoy your music collection without the need for
additional hardware or software. Ideal for parties, background music, or personal enjoyment, this feature enhances
the versatility of your Navidrome server setup.&lt;/p&gt;</description></item><item><title>Missing Files</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/library/missing-files/</link><pubDate>Mon, 02 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/library/missing-files/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;When using Navidrome, you may encounter missing tracks or albums in your library. When moving or renaming files,
Navidrome may not be able to match the old versions of your files with the new ones when scanning your library.
This can result in &amp;ldquo;ghost&amp;rdquo; (grayed out) tracks or albums in your library.&lt;/p&gt;
&lt;p&gt;Only admins can see the missing tracks and albums in the library:&lt;/p&gt;
&lt;figure class="card rounded p-2 td-post-card mb-4 mt-4" style="max-width: 1050px"&gt;
&lt;img class="card-img-top" src="https://pr-289.navidrome-website.pages.dev/docs/usage/library/missing-files/missing_files_hu_a83474f5998c2ed4.webp" width="1040" height="651"&gt;
&lt;/figure&gt;

&lt;p&gt;Missing files are not removed from the database on new scans to avoid inadvertently losing information like ratings,
and play counts and references in playlists.&lt;/p&gt;</description></item><item><title>Subsonic API Compatibility</title><link>https://pr-289.navidrome-website.pages.dev/docs/developers/subsonic-api/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/developers/subsonic-api/</guid><description>&lt;h3 id="supported-subsonic-api-endpoints"&gt;Supported Subsonic API endpoints&lt;a class="td-heading-self-link" href="#supported-subsonic-api-endpoints" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Navidrome is currently compatible with &lt;a href="http://www.subsonic.org/pages/api.jsp"&gt;Subsonic API&lt;/a&gt;
v1.16.1, with some exceptions.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://opensubsonic.netlify.app/"&gt;OpenSubsonic&lt;/a&gt; extensions are being constantly added. For an up to date list of
supported extensions, check &lt;a href="https://github.com/navidrome/navidrome/issues/2695"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is a (hopefully) up-to-date list of all Subsonic API endpoints implemented in Navidrome.
Check the &amp;ldquo;Notes&amp;rdquo; column for limitations/missing behavior. Also keep in mind these differences
between Navidrome and Subsonic:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Navidrome will not implement any video related functionality, it is focused on Music only&lt;/li&gt;
&lt;li&gt;Navidrome supports &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/features/multi-library/"&gt;multiple Music Libraries (Music Folders)&lt;/a&gt; with user-specific access controls&lt;/li&gt;
&lt;li&gt;There are currently no plans to support browse-by-folder. Endpoints for this functionality (Ex: &lt;code&gt;getIndexes&lt;/code&gt;, &lt;code&gt;getMusicDirectory&lt;/code&gt;)
returns a simulated directory tree, using the format: &lt;code&gt;/Artist/Album/01 - Song.mp3&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Navidrome does not mark songs as played by calls to &lt;code&gt;stream&lt;/code&gt;, only when
&lt;code&gt;scrobble&lt;/code&gt; is called with &lt;code&gt;submission=true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;IDs in Navidrome are always strings, normally MD5 hashes or UUIDs. This is important to
mention because, even though the Subsonic API
&lt;a href="http://www.subsonic.org/pages/inc/api/schema/subsonic-rest-api-1.16.1.xsd"&gt;schema&lt;/a&gt;
specifies IDs as strings, some clients insist in converting IDs to integers&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;em&gt;System&lt;/em&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ping&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getLicense&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Always valid ;)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;em&gt;Browsing&lt;/em&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getMusicFolders&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Returns all libraries accessible to the authenticated user&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getIndexes&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Doesn&amp;rsquo;t support &lt;code&gt;shortcuts&lt;/code&gt;, nor direct children&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getMusicDirectory&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getSong&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getArtists&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getArtist&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getAlbum&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getGenres&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getArtistInfo&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Requires &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/integration/external-services/"&gt;external integrations&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getArtistInfo2&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Requires &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/integration/external-services/"&gt;external integrations&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getAlbumInfo&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Requires &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/integration/external-services/"&gt;external integrations&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getAlbumInfo2&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Requires &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/integration/external-services/"&gt;external integrations&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getTopSongs&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Requires &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/integration/external-services/"&gt;Last.fm integration&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getSimilarSongs&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Requires &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/integration/external-services/"&gt;Last.fm integration&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getSimilarSongs2&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Requires &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/integration/external-services/"&gt;Last.fm integration&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;em&gt;Album/Songs Lists&lt;/em&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getAlbumList&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getAlbumList2&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getStarred&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getStarred2&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getNowPlaying&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getRandomSongs&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getSongsByGenre&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;em&gt;Searching&lt;/em&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;search2&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Doesn&amp;rsquo;t support Lucene queries, only simple auto complete queries&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;search3&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Doesn&amp;rsquo;t support Lucene queries, only simple auto complete queries&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;em&gt;Playlists&lt;/em&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getPlaylists&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;username&lt;/code&gt; parameter is not implemented&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getPlaylist&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;createPlaylist&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;updatePlaylist&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;deletePlaylist&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;em&gt;Media Retrieval&lt;/em&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;stream&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;download&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Accepts ids for Songs, Albums, Artists and Playlists. Also accepts transcoding options similar to &lt;code&gt;stream&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getCoverArt&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getLyrics&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Works with embedded lyrics and external files&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getAvatar&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;If Gravatar is enabled and the user has an email, returns a redirect to their Gravatar. Or else returns a placeholder&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;em&gt;Media Annotation&lt;/em&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;star&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;unstar&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;setRating&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;scrobble&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;em&gt;Bookmarks&lt;/em&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getBookmarks&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;createBookmark&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;deleteBookmark&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getPlayQueue&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;current&lt;/code&gt; is a string id, not &lt;code&gt;int&lt;/code&gt; as it shows in the official Subsonic API documentation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;savePlayQueue&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;em&gt;Sharing&lt;/em&gt; (if &lt;code&gt;EnableSharing&lt;/code&gt; is &lt;code&gt;true&lt;/code&gt;)&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getShares&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;createShare&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;updateShare&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;deleteShare&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;em&gt;Internet radio&lt;/em&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getInternetRadioStations&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;createInternetRadioStation&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;updateInternetRadioStation&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;deleteInternetRadioStation&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;em&gt;User Management&lt;/em&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getUser&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Ignores username parameter, and returns the user identified in the authentication. Roles reflect actual server capabilities and user permissions. For example: &lt;code&gt;downloadRole&lt;/code&gt; depends on download being enabled, &lt;code&gt;jukeboxRole&lt;/code&gt; depends on jukebox being enabled, etc. Note that some features like ratings and favorites are always available to all users regardless of roles&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getUsers&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Returns only the user identified in the authentication&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;em&gt;Media library scanning&lt;/em&gt;&lt;/th&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;getScanStatus&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Also returns the extra fields &lt;code&gt;lastScan&lt;/code&gt; and &lt;code&gt;folderCount&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;startScan&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Accepts an extra &lt;code&gt;fullScan&lt;/code&gt; boolean param, to force a full scan&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>Exclude Content From Library</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/library/exclude-content/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/library/exclude-content/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Navidrome allows the usage of a &lt;code&gt;.ndignore&lt;/code&gt; file to exclude content from being added to Navidrome&amp;rsquo;s library. These files can be used in the following ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A &lt;strong&gt;blank&lt;/strong&gt; &lt;code&gt;.ndignore&lt;/code&gt; file can be added to a directory, and as a result Navidrome will ignore that folder and its subfolders from being added to Navidrome&amp;rsquo;s library.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;.ndignore&lt;/code&gt; file also supports &lt;code&gt;.gitignore&lt;/code&gt; syntax inside of it to set rules for content to exclude. This allows you to place a single file in your parent Music folder and then use a single file to establish rules on ignoring certain folders, filetypes, or files.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="key-behaviors"&gt;Key behaviors&lt;a class="td-heading-self-link" href="#key-behaviors" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cascading&lt;/strong&gt;: Patterns from parent directories apply to all subdirectories&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple files&lt;/strong&gt;: You can place &lt;code&gt;.ndignore&lt;/code&gt; files in different directories&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="alert alert-info" role="alert"&gt;


 A new or updated &lt;code&gt;.ndignore&lt;/code&gt; file should be auto-detected by Navidrome, or can be detected with a Quick Scan.

&lt;/div&gt;

&lt;h2 id="syntax-usage-and-examples"&gt;Syntax Usage and Examples&lt;a class="td-heading-self-link" href="#syntax-usage-and-examples" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;A single .ndignore can be placed at the parent folder of your library and then syntax added to it.&lt;/p&gt;</description></item><item><title>Sharing</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/features/sharing/</link><pubDate>Mon, 02 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/features/sharing/</guid><description>&lt;div class="alert alert-warning" role="alert"&gt;
&lt;h4 class="alert-heading"&gt;NOTE&lt;/h4&gt;

 Please be aware that the Sharing feature is still under active development, and improvements to the functionality are expected in future updates. Please report any issues or suggestions to the Navidrome GitHub issues page.

&lt;/div&gt;

&lt;p&gt;Navidrome has a &amp;ldquo;Sharing&amp;rdquo; feature which allows users to generate a shareable link for a track, album, artist, or playlist. This link can then be sent to friends, allowing them to listen or download the music without having an account on your Navidrome instance.&lt;/p&gt;</description></item><item><title>Anonymous Data Collection</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/admin/insights/</link><pubDate>Sun, 08 Dec 2024 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/admin/insights/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Navidrome includes an &lt;strong&gt;anonymous usage statistics feature&lt;/strong&gt; designed to help improve the project for all users.
This page explains what data is collected, how it is used, and how to opt out if you prefer not to participate.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="key-principles"&gt;Key Principles&lt;a class="td-heading-self-link" href="#key-principles" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Anonymous Data Only&lt;/strong&gt;: Navidrome collects only non-personal, anonymous data to guide future improvements.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What’s Collected&lt;/strong&gt;: See &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/admin/insights/#what-will-be-collected"&gt;Collected Data&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What’s NOT Collected&lt;/strong&gt;: No emails, IP addresses, usernames, or other identifiable data. See &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/admin/insights/#what-will-not-be-collected"&gt;Excluded Data&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Opt-Out Available&lt;/strong&gt;: Enabled by default, but you can disable it anytime.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;In-House Data Handling&lt;/strong&gt;: Collected data goes to an &lt;a href="https://github.com/navidrome/insights"&gt;open-source server&lt;/a&gt; hosted by the project—no third-party services.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Full Transparency&lt;/strong&gt;: Logs and UI indicators show when data is sent and what it contains.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="what-will-be-collected"&gt;What Will Be Collected?&lt;a class="td-heading-self-link" href="#what-will-be-collected" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Below is a plain-English explanation of what &lt;a href="https://github.com/navidrome/navidrome/blob/insights/core/metrics/insights/data.go"&gt;each field&lt;/a&gt;
is generally intended to represent. Each field corresponds to a piece of information about the running application or its environment:&lt;/p&gt;</description></item><item><title>Scrobbling</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/features/scrobbling/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/features/scrobbling/</guid><description>&lt;p&gt;Navidrome allows you to easily scrobble your played songs to Last.fm and ListenBrainz.&lt;/p&gt;
&lt;h2 id="lastfm"&gt;Last.fm&lt;a class="td-heading-self-link" href="#lastfm" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;Ensure you have the API Key and API Secret set according to the instructions in &lt;a href="https://pr-289.navidrome-website.pages.dev/docs/usage/integration/external-services/#lastfm"&gt;External Integrations&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Go to your user profile&amp;rsquo;s Personal Settings.&lt;/li&gt;
&lt;li&gt;Toggle the option &lt;code&gt;Scrobble to Last.fm&lt;/code&gt;, a new browser tab will open directing you to Last.fm.&lt;/li&gt;
&lt;/ol&gt;
&lt;p align="center"&gt;
&lt;img width="500" src="https://pr-289.navidrome-website.pages.dev/screenshots/navidrome-personal-settings.webp"&gt;
&lt;/p&gt;
&lt;ol start="4"&gt;
&lt;li&gt;If you are not logged in, then log in with your Last.fm credentials.&lt;/li&gt;
&lt;/ol&gt;
&lt;p align="center"&gt;
&lt;img width="500" src="https://pr-289.navidrome-website.pages.dev/screenshots/lastfm-login.webp"&gt;
&lt;/p&gt;
&lt;ol start="5"&gt;
&lt;li&gt;Click &amp;ldquo;Yes, allow access&amp;rdquo;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p align="center"&gt;
&lt;img width="500" src="https://pr-289.navidrome-website.pages.dev/screenshots/lastfm-allow-access.webp"&gt;
&lt;/p&gt;</description></item><item><title>Plugins</title><link>https://pr-289.navidrome-website.pages.dev/docs/usage/features/plugins/</link><pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/usage/features/plugins/</guid><description>&lt;p&gt;Navidrome supports a plugin system that allows you to extend its functionality with community-developed extensions. Plugins run in a secure WebAssembly sandbox, providing isolation from the main application while enabling powerful customizations.&lt;/p&gt;


&lt;div class="alert alert-info" role="alert"&gt;


 Plugins are developed by the community. While they run in a secure sandbox, you should always review a plugin&amp;rsquo;s documentation and source code before installation.

&lt;/div&gt;

&lt;h2 id="what-plugins-can-do"&gt;What Plugins Can Do&lt;a class="td-heading-self-link" href="#what-plugins-can-do" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;Plugins can extend Navidrome in several ways:&lt;/p&gt;</description></item><item><title>Windows Install</title><link>https://pr-289.navidrome-website.pages.dev/docs/installation/windows/</link><pubDate>Mon, 19 Aug 2024 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/installation/windows/</guid><description>&lt;h2 id="msi-install"&gt;MSI Install&lt;a class="td-heading-self-link" href="#msi-install" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;&lt;a href="https://github.com/navidrome/navidrome/releases/"&gt;Download&lt;/a&gt; and install the latest Navidrome MSI for the correct version of Windows (most likely AMD64). The
installer will prompt for basic configuration options (port, directories etc). These can be left as default or
customised to your setup. The service will be installed and started automatically, once the installer has completed
you can go to [http://127.0.0.1:4533] (or whichever port you chose) in a browser and setup the first user.
The &lt;code&gt;navidrome.ini&lt;/code&gt; configuration file will be located in the installation folder (default: &lt;code&gt;C:\Program Files\Navidrome&lt;/code&gt;).&lt;/p&gt;</description></item><item><title>Installing with Docker</title><link>https://pr-289.navidrome-website.pages.dev/docs/installation/docker/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/installation/docker/</guid><description>&lt;p&gt;&lt;a href="https://hub.docker.com/r/deluan/navidrome"&gt;Docker images&lt;/a&gt; are available for the
&lt;em&gt;linux/amd64&lt;/em&gt;, &lt;em&gt;linux/arm/v6&lt;/em&gt;, &lt;em&gt;linux/arm/v7&lt;/em&gt; and &lt;em&gt;linux/arm64&lt;/em&gt; platforms. They include everything needed to
run Navidrome.&lt;/p&gt;
&lt;h3 id="using-docker-compose-"&gt;Using &lt;code&gt;docker-compose&lt;/code&gt; :&lt;a class="td-heading-self-link" href="#using-docker-compose-" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h3&gt;&lt;p&gt;Create a &lt;code&gt;docker-compose.yml&lt;/code&gt; file with the following content (or add the &lt;code&gt;navidrome&lt;/code&gt; service
below to your existing file):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;services&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;navidrome&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;deluan/navidrome:latest&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;1000&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# should be owner of volumes&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;ports&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;4533:4533&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;restart&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l"&gt;unless-stopped&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# Optional: put your config options customization here. Examples:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# ND_LOGLEVEL: debug&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;volumes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;/path/to/data:/data&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s2"&gt;&amp;#34;/path/to/your/music/folder:/music:ro&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Start it with &lt;code&gt;docker-compose up -d&lt;/code&gt;. Note that the environment variables above are just an example and are not required. The
values in the example are already the defaults&lt;/p&gt;</description></item><item><title>Linux Install</title><link>https://pr-289.navidrome-website.pages.dev/docs/installation/linux/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/installation/linux/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; These instructions were created for the Ubuntu distribution, and even though they contain specific Ubuntu/Debian instructions (ex: &lt;code&gt;apt&lt;/code&gt;) the concepts are generic enough and can be applied on most Linux distributions, even on those not based on Debian (ex: CentOS and OpenSUSE)&lt;/p&gt;

&lt;/div&gt;



&lt;div class="alert alert-warning" role="alert"&gt;
&lt;h4 class="alert-heading"&gt;Important note&lt;/h4&gt;

 The following steps have been tested on KGARNER7&amp;rsquo;s MACHINE! WHICH IS: Ubuntu 18.04 and should work on all version 16.04 and above as well as other Debian based distros. Throughout these instructions the commands will have placeholders for the user (&lt;code&gt;&amp;lt;user&amp;gt;&lt;/code&gt;) and group (&lt;code&gt;&amp;lt;group&amp;gt;&lt;/code&gt;) you want to run Navidrome under and the music folder path (&lt;code&gt;&amp;lt;library_path&amp;gt;&lt;/code&gt;). If you are using an existing media library ensure the user has permissions to the media library.

&lt;/div&gt;

&lt;h2 id="install-navidrome-using-pre-built-binary"&gt;Install Navidrome Using Pre-built Binary&lt;a class="td-heading-self-link" href="#install-navidrome-using-pre-built-binary" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h2&gt;&lt;p&gt;To install Navidrome on a Linux system using a .deb file, you can follow a streamlined process that leverages the convenience of Debian package management. This method simplifies the installation by eliminating the need to manually download and extract binaries.&lt;/p&gt;</description></item><item><title>macOS Install</title><link>https://pr-289.navidrome-website.pages.dev/docs/installation/macos/</link><pubDate>Wed, 04 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/installation/macos/</guid><description>&lt;p&gt;Navidrome can be ran by simply double-clicking the binary that has been downloaded from the &lt;a href="https://github.com/navidrome/navidrome/releases/latest"&gt;release page&lt;/a&gt; or by running it in the command line. However, that will keep a terminal window open while Navidrome is running.&lt;/p&gt;
&lt;p&gt;To have Navidrome running in the background, we can run it as a service.
We define a service as shown below and save that in a file named &lt;code&gt;navidrome.plist&lt;/code&gt; in the &lt;code&gt;~/Library/LaunchAgents/&lt;/code&gt; folder.&lt;/p&gt;
&lt;p&gt;The example shown assumes a few things:&lt;/p&gt;</description></item><item><title>FreeBSD Install</title><link>https://pr-289.navidrome-website.pages.dev/docs/installation/freebsd/</link><pubDate>Tue, 03 Jan 2017 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/installation/freebsd/</guid><description>&lt;p&gt;The following steps have been tested on FreeBSD 12 and 13. They should work on all versions 11.4 and above as well as other supported versions. All prerequisites will be automatically installed when using a package or if building from ports. Throughout these instructions the commands will have placeholders for the user (&lt;code&gt;&amp;lt;user&amp;gt;&lt;/code&gt;) and group (&lt;code&gt;&amp;lt;group&amp;gt;&lt;/code&gt;) you want to run Navidrome under and the music folder path (&lt;code&gt;&amp;lt;library_path&amp;gt;&lt;/code&gt;). If you are using an existing media library ensure the user has permissions to the media library.&lt;/p&gt;</description></item><item><title>Community Maintained Packages</title><link>https://pr-289.navidrome-website.pages.dev/docs/installation/packages/</link><pubDate>Mon, 01 Feb 2016 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/installation/packages/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;&lt;strong&gt;DISCLAIMER&lt;/strong&gt;: These packages are not maintained by the Navidrome project, any issues should be reported to their authors.&lt;/p&gt;

&lt;/div&gt;

&lt;p&gt;Even though the Navidrome project does not provide any pre-packaged installation for specific platforms,
there are some packages created and maintained by the community, that can simplify the setup on some systems.&lt;/p&gt;
&lt;p&gt;Here is the list of packages for various OSes/Distributions, provided by Repology:&lt;/p&gt;
&lt;a href="https://repology.org/project/navidrome/versions"&gt;
&lt;p&gt;
&lt;img src="https://repology.org/badge/vertical-allrepos/navidrome.svg?columns=2&amp;exclude_unsupported=1" alt="Packaging status"&gt;
&lt;/p&gt;
&lt;/a&gt;
&lt;p&gt;More packages available, with links to download/install instructions:&lt;/p&gt;</description></item><item><title>Managed Hosting</title><link>https://pr-289.navidrome-website.pages.dev/docs/installation/managed/</link><pubDate>Sun, 10 Jan 2016 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/installation/managed/</guid><description>&lt;p&gt;The following providers offer managed hosting for Navidrome. This can be a good option if you
don&amp;rsquo;t want to manage your own server.&lt;/p&gt;
&lt;h3 id="pikapods"&gt;PikaPods&lt;a class="td-heading-self-link" href="#pikapods" aria-label="Heading self-link"&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;&lt;a href="https://www.pikapods.com/"&gt;PikaPods&lt;/a&gt; has partnered with us to offer you an &lt;strong&gt;officially
supported, cloud-hosted solution&lt;/strong&gt;&lt;a href="https://pr-289.navidrome-website.pages.dev/docs/faq/#which-cloud-providers-help-fund-the-project-with-a-revenue-share"&gt;*&lt;/a&gt;.&lt;/p&gt;

&lt;/div&gt;

&lt;p&gt;Offers 1-click deployments for Navidrome with $5 free welcome credit. EU and US regions available.
Includes daily backups and regular app updates.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.pikapods.com/pods?run=navidrome"&gt;&lt;img src="https://www.pikapods.com/static/run-button.svg" alt="Run on PikaPods"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Build from sources</title><link>https://pr-289.navidrome-website.pages.dev/docs/installation/build-from-source/</link><pubDate>Tue, 05 Jan 2016 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/docs/installation/build-from-source/</guid><description>&lt;div class="pageinfo pageinfo-primary"&gt;
&lt;p&gt;Currently these instructions only work for Unix-based systems (Linux, macOS, BSD, &amp;hellip;). If you are getting
trouble trying to build Navidrome in a Windows system, please join our &lt;a href="https://discord.gg/xh7j7yF"&gt;Discord server&lt;/a&gt;
and ask for help, we will be glad to assist you&lt;/p&gt;

&lt;/div&gt;

&lt;p&gt;If you can&amp;rsquo;t find a &lt;a href="https://github.com/navidrome/navidrome/releases"&gt;pre-built binary&lt;/a&gt; for your platform,
you should open an &lt;a href="https://github.com/navidrome/navidrome/issues"&gt;issue in the project&amp;rsquo;s GitHub page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t want to wait, you can try to build the binary yourself, with the following steps.&lt;/p&gt;</description></item><item><title/><link>https://pr-289.navidrome-website.pages.dev/index.json</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/index.json</guid><description/></item><item><title>Search Results</title><link>https://pr-289.navidrome-website.pages.dev/search/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://pr-289.navidrome-website.pages.dev/search/</guid><description/></item></channel></rss>