navidrome artwork
Inspect artwork and resolve it again
Navidrome has a built-in CLI for administration, maintenance, and troubleshooting. Each command has its own page. This page covers what the commands share.
Show the list of commands:
navidrome --help
Show help for one command or subcommand:
navidrome <command> --help
navidrome <command> <subcommand> --help
If you run navidrome with no command, it starts the server.
| Command | What it does |
|---|---|
artwork | Inspect artwork and resolve it again |
backup | Create, prune, and restore database backups |
doctor | Check the database for problems |
inspect | Print the tags of music files as Navidrome reads them |
missing | List missing files and remap them onto existing files |
plugin | List, configure, enable, and disable plugins |
pls | List, export, and import playlists |
scan | Scan the music library |
search | Rebuild the full-text search index |
service | Install and control Navidrome as an OS service |
user | Create, edit, list, and delete users |
Every command accepts these flags.
| Flag | Description |
|---|---|
-c, --configfile | Config file to load. Default is ./navidrome.toml |
-n, --nobanner | Don’t print the startup banner |
--musicfolder | Folder with your music |
--datafolder | Folder for application data, such as the database. Navidrome needs write access to it |
--cachefolder | Folder for cache data, such as transcoded audio and images. Navidrome needs write access |
-l, --loglevel | Log level. One of error, info, debug, or trace |
--logfile | File to write logs to. Without it, Navidrome logs to stderr |
Commands read the same config file and ND_ environment variables as the server. Run them with the
same settings as your server, or they will look at a different database. The server also takes
flags such as --port and --address. Run navidrome --help to see them, and see
Configuration Options for every setting.
navidrome -c /etc/navidrome/navidrome.toml --nobanner user list
If Navidrome runs in a container, run CLI commands in a container too. That way they use the same
/data, /music, config file, and environment variables as your server.
Use docker compose run with the name of your Navidrome service. It is usually navidrome:
# Show CLI help
docker compose run --rm navidrome --help
# Run a full scan
docker compose run --rm navidrome scan --full
# List users
docker compose run --rm navidrome user list
To run a command in the container that is already running, use docker compose exec. Put the
navidrome binary name before the command:
docker compose exec navidrome navidrome user list
Start a one-off container with the same image tag, volumes, and environment variables as your main Navidrome container:
docker run --rm -it \
--user $(id -u):$(id -g) \
-v /path/to/music:/music:ro \
-v /path/to/data:/data \
--env-file /path/to/navidrome.env \
-e ND_CONFIGFILE=/data/navidrome.toml \
deluan/navidrome:latest \
user list
-it gives the command a terminal. Commands that ask for input need it, such as user create,
which asks for a password.
--help to see the flags of the version you have.--configfile so the command reads the config you expect.backup restore or
search rebuild.backup restore, backup prune, and missing fix can’t be undone. Check the paths and IDs you
pass, and run navidrome backup create first.Inspect artwork and resolve it again
Create, prune, and restore database backups
Check the database for problems
Print the tags of music files as Navidrome reads them
List missing files and remap them onto existing files
List, configure, enable, and disable plugins
List, export, and import playlists
Scan the music library
Rebuild the full-text search index
Install and control Navidrome as an OS service
Create, edit, list, and delete users
Was this page helpful?
Glad to hear it! Please tell us how we can make this documentation even better.
Sorry to hear that. Please tell us how we can improve this documentation.