Configuration Options
Navidrome allows some customization using environment variables, loading from a configuration file or using command line arguments.
Configuration File
Navidrome tries to load the configuration from a navidrome.toml
file in the current working
directory. You can put any of the configuration options below in this file.
Example of a configuration file for Windows (should be similar for Linux, just use forward slashes for paths):
LogLevel = 'DEBUG'
ScanInterval = '1h'
TranscodingCacheSize = '150MiB'
MusicFolder = 'C:\Users\JohnDoe\Music'
You can also specify a different path for the configuration file, using the -c/--configfile
option.
Navidrome can load the configuration from toml
, json
, yml
and ini
files.
Ex. of usage (Windows):
C:\> navidrome --configfile "c:\User\johndoe\navidrome.toml"
Command Line Arguments
You can set most of the config options below passing arguments to navidrome
executable. Ex:
C:\> navidrome --musicfolder "c:\User\johndoe\Music"
Please note that command line arguments must be all lowercase. For a list of all available command line options,
just call navidrome --help
.
Environment Variables
Any configuration option can be set as an environment variable, just add a the prefix ND_
and
make it all uppercase. Ex: ND_LOGLEVEL=debug
. See below for all available options
Available Options
Option | Env var | Description | Default Value |
---|---|---|---|
ConfigFile | ND_CONFIGFILE |
Load configurations from an external config file | "./navidrome.toml" |
MusicFolder | ND_MUSICFOLDER |
Folder where your music library is stored. Can be read-only | "./music" |
DataFolder | ND_DATAFOLDER |
Folder to store application data (DB, cache…) | "./data" |
ScanInterval | ND_SCANINTERVAL |
How frequently to scan for changes in your music library. Set it to 0 to disable scans |
"1m" |
LogLevel | ND_LOGLEVEL |
Log level. Useful for troubleshooting. Possible values: error , info , debug , trace |
"info" |
Port | ND_PORT |
HTTP port Navidrome will use | 4533 |
Address | ND_ADDRESS |
IP address the server will bind to | 0.0.0.0 and :: (all IPs) |
EnableTranscodingConfig* | ND_ENABLETRANSCODINGCONFIG |
Enables transcoding configuration in the UI | false |
TranscodingCacheSize | ND_TRANSCODINGCACHESIZE |
Size of transcoding cache. Set to 0 to disable cache |
"100MB" |
ImageCacheSize | ND_IMAGECACHESIZE |
Size of image (art work) cache. Set to 0 to disable cache |
"100MB" |
AutoImportPlaylists | ND_AUTOIMPORTPLAYLISTS |
Enable/disable .m3u playlist auto-import |
true |
BaseUrl | ND_BASEURL |
Base URL (only the path part) to configure Navidrome behind a proxy (ex: /music ) |
Empty |
UILoginBackgroundUrl | ND_UILOGINBACKGROUNDURL |
Change background image used in the Login page | random music image from Unsplash.com |
UIWelcomeMessage | ND_UIWELCOMEMESSAGE |
Add a welcome message to the login screen | Empty |
GATrackingID | ND_GATRACKINGID |
Send basic info to your own Google Analytics account. Must be in the format UA-XXXXXXXX |
Empty (disabled) |
IgnoredArticles | ND_IGNOREDARTICLES |
List of ignored articles when sorting/indexing artists | "The El La Los Las Le Les Os As O A" |
SearchFullString | ND_SEARCHFULLSTRING |
Match query strings anywhere in searchable fields, not only in word boundaries. Useful for languages where words are not space separated | false |
CoverArtPriority | ND_COVERARTPRIORITY |
Configure the order to look for cover art images. Use special embedded value to get embedded images from the audio files |
"embedded, cover.*, folder.*, front.*" |
CoverJpegQuality | ND_COVERJPEGQUALITY |
Set JPEG quality percentage for resized cover art images | 75 |
EnableDownloads | ND_ENABLEDOWNLOADS |
Enable the option in the UI to download music/albums/artists/playlists from the server | true |
SessionTimeout | ND_SESSIONTIMEOUT |
How long Navidrome will wait before closing web ui idle sessions | "24h" |
AuthRequestLimit* | ND_AUTHREQUESTLIMIT |
How many login requests can be processed from a single IP during the AuthWindowLength . Set to 0 to disable the limit rater |
5 |
AuthWindowLength* | ND_AUTHWINDOWLENGTH |
Window Length for the authentication rate limit | "20s" |
Scanner.Extractor | ND_SCANNER_EXTRACTOR |
Select metadata extractor implementation. Options: taglib or ffmpeg |
taglib |
LastFM.ApiKey | ND_LASTFM_APIKEY |
Last.FM ApiKey | Empty |
LastFM.Secret | ND_LASTFM_SECRET |
Last.FM Shared Secret | Empty |
LastFM.Language | ND_LASTFM_LANGUAGE |
Two letter-code for language to be used to retrieve biographies from Last.FM | "en" |
Spotify.ID | ND_SPOTIFY_ID |
Spotify Client ID | Empty |
Spotify.Secret | ND_SPOTIFY_SECRET |
Spotify Client Secret | Empty |
EnableGravatar | ND_ENABLEGRAVATAR |
Use Gravatar images as the user profile image. Needs the user’s email to be filled | false |
Notes
- Durations are specified as a number and a unit suffix, such as “24h”, “30s” or “1h10m”. Valid time units are “s”, “m”, “h”.
- Sizes are specified as a number and an optional unit suffix, such as “1GB” or “150 MiB”. Default unit is bytes. Note: “1KB” == “1000”, “1KiB” == “1024”
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can make it even better.
Sorry to hear that. Please tell us how we can improve.