Navidrome es un servidor de música autoalojado que pone tu colección al alcance desde cualquier lugar. Ofrece una interfaz web moderna y es compatible con numerosas apps de terceros para iOS y Android. Permite reproducir y organizar con facilidad álbumes y canciones en múltiples formatos, simplificando la gestión de bibliotecas musicales. Su instalación y uso son sencillos, por lo que resulta ideal para quienes desean hospedar su propio servidor y disfrutar de su música en casa o en movilidad.
Portainer es una herramienta de gestión para Docker y Kubernetes. Ofrece una interfaz de usuario gráfica para facilitar la administración de contenedores, imágenes, redes y volúmenes en Docker, así como despliegues y administración de recursos en Kubernetes.
Este tutorial lo realizaremos en un NAS de UGREN que tiene soporte para Docker donde hemos instalado Portainer previamente. Por lo que las rutas de los directorios son los que se encuentran en los volúmenes creados en el NAS.

Creación de Stack en Portainer
Accedemos a Portainer y, dentro de la sección Stacks, hacemos clic en el botón + Add Stack para crear una nueva pila.
Primero añadimos un nombre a nuestro stack y seleccionamos Web Editor y añadimos el siguiente contenido:
version: "3.9"
services:
navidrome:
image: deluan/navidrome
container_name: navidrome
restart: always
ports:
- "4533:4533"
environment:
- ND_LOGLEVEL=info
- ND_ENABLEINSIGHTSCOLLECTOR=false
- ND_CONFIGFILE=/data/navidrome.toml
volumes:
- /volume1/docker/navidrome:/data
- /volume1/media/musica:/music
filebrowser:
image: filebrowser/filebrowser
container_name: filebrowser
restart: always
user: "0:0"
ports:
- "8080:80"
volumes:
- /volume1/media/musica:/srv
- /volume1/docker/filebrowser:/database
También si queremos una configuración básica para Navidrome, dentro de la ruta donde almacenamos los datos crearemos el fichero navidrome.toml con el siguiente contenido:
Scanner.PurgeMissing = "always"
# Directorio donde está tu música
MusicFolder = "/srv"
# Directorio para la base de datos y cachés
DataFolder = "/data"
# Puerto en el que se ejecuta (por defecto 4533)
Port = "4533"
# URL externa si usas proxy inverso (recomendado con HTTPS)
PublicURL = "https://navidrome.dominio.com"
# Idioma de la interfaz web (por defecto autodetecta)
DefaultLanguage = "es"
# Permitir que otros usuarios se registren (falso = solo administrados manualmente)
EnableUserCreation = false
# Habilitar transcoding (por ejemplo, para móviles)
EnableTranscoding = true
TranscodingCacheSize = "500MB"
# Configurar transcoding usando ffmpeg (instálalo si no lo tienes)
TranscodingCmd = "/usr/bin/ffmpeg -i %s -f mp3 -"
# Restringe los usuarios para que no puedan navegar fuera de sus bibliotecas
ScanSchedule = "@every 1h"
# Habilita estadísticas anónimas (puedes desactivarlas si no quieres enviar datos)
EnableExternalServices = true
# Habilita las letras
LyricsPriority = ".lrc,.txt,embedded"Guardamos los cambios y, desde Portainer, ya podemos desplegar nuestro Stack. Esperamos unos segundos a que todos los contenedores se inicien correctamente y, una vez en marcha, podremos acceder a Navidrome desde la IP de nuestro servidor y el puerto 4533.
Una vez que los contenedores estén en marcha, revisamos los logs de FileBrowser, ya que en ellos se mostrará la contraseña generada automáticamente para el usuario administrador.
# docker logs filebrowser
2025/10/08 15:30:24 Warning: filebrowser.db can't be found. Initialing in /database/
2025/10/08 15:30:24 Using database: /database/filebrowser.db
2025/10/08 15:30:24 Using config file: /config/settings.json
2025/10/08 15:30:24 Performing quick setup
2025/10/08 15:30:24 User 'admin' initialized with randomly generated password: HXXQF9KDINc1ymR2
2025/10/08 15:30:24 Listening on [::]:80Como puedes ver en el registro, al usuario admin se le asigna una contraseña aleatoria que deberás usar para acceder por primera vez.
A partir de este momento:
- FileBrowser estará disponible en el puerto
8080. - Navidrome estará escuchando en el puerto
4533.
Primer contacto: Navidrome
Tras la instalación, tendremos que abrir nuestro navegador e ir a la URL que nos indica el instalador con la IP que nos haya asignado y el puerto 4533.

El primer procedimiento que tenemos hacer, es crear un usuario, configura un nombre y una contraseña segura.

Ahora no aparece nada, pero con el FileBrowser podemos cargar contenido dentro de /opt/navidrome/music
Primer contacto: FileBrowser
Lo primero que tenemos que hacer con FileBrowser, es acceder con el usuario admin y la contraseña que se ha generado durante su despliegue.

Una vez dentro, podemos acceder a Settings - User Management para crear un usuario o cambiar la contraseña de admin.

Luego en My Files, podemos subir las canciones que queremos tener en Navidrome, hacemos clic sobre la flecha hacia arriba del menú que hay arriba a la derecha y cargamos los ficheros.

Y si ahora vamos a Navidrome veremos las canciones que hemos subido:

¡Y listo! Ya se puede cargar contenido en el directorio correspondiente y ya tenemos Navidrome disponible para escuchar música en local.
Más sobre ./voidNull
- 📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "De la A a la Z: Los comandos de GNU/Linux"
- 💪 ¡Forma parte de la Comunidad de ./voidNull!
- 🤖 Disfruta de todos nuestros Cursos sobre Ansible, Proxmox, Home Assistant entre otros.
- 📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra Newsletter mensual.

Comentarios