Skip to main content

Navidrome: Servidor de música autohospedado


Introducción

Este artículo documenta el uso de Navidrome como servidor de música autohospedado dentro del stack multimedia. Se integra como servicio persistente sobre Docker y se expone mediante reverse proxy, con soporte para clientes web, móviles y aplicaciones compatibles con Subsonic, sin depender de plataformas externas ni servicios propietarios.

El objetivo principal es centralizar una biblioteca musical local (FLAC, MP3, etc.), mantener control total sobre los datos y permitir acceso remoto seguro, dejando fuera cualquier lógica ajena a la reproducción y catalogación de música.


Enfoque general / Arquitectura

Navidrome actúa como backend de streaming y catálogo, sin asumir responsabilidades que no le corresponden (proxy, TLS, SSO o control de acceso avanzado).

Estas funciones se delegan en otros componentes del stack:

  • Docker para aislamiento y persistencia.
  • Reverse proxy para exposición externa y TLS.
  • Authentik (opcional) para proteger la interfaz web sin romper compatibilidad con clientes Subsonic.

La biblioteca musical se monta en solo lectura, garantizando que Navidrome no altere el contenido original ni la estructura del dataset.


Desarrollo

Qué se hizo y por qué

  • Uso de la imagen oficial Se emplea la imagen mantenida por el proyecto, ligera y sin dependencias innecesarias.

  • UID/GID explícitos Evita conflictos de permisos al acceder a volúmenes montados desde el host.

  • Escaneo periódico de la biblioteca Permite detectar cambios sin intervención manual, evitando escaneos agresivos o continuos.

  • Extracción de metadatos basada en tags Se priorizan los metadatos embebidos frente a heurísticas por nombre de archivo, clave cuando la librería está bien etiquetada.

  • Integraciones externas habilitadas Last.fm, ListenBrainz y Spotify se usan únicamente para enriquecimiento de metadatos y scrobbling, no como dependencias funcionales.

  • Base URL definida Necesaria para un funcionamiento correcto detrás de reverse proxy y para enlaces compartidos.


Configuración utilizada (solo enlaces)

La configuración completa se mantiene fuera del artículo:

Incluye:

  • docker-compose.yml
  • Variables de entorno
  • Fragmentos de configuración para proxy
  • Fragmento opcional para protección con Authentik

Validación

Comprobaciones mínimas tras el despliegue:

  • Acceso a la interfaz web en el puerto configurado.
  • Escaneo inicial completado sin errores relevantes en logs.
  • Biblioteca visible y navegable por artista y álbum.
  • Conexión correcta desde clientes Subsonic externos.
  • Enlaces compartidos funcionales desde el dominio público.

Protección con Authentik (opcional)

La interfaz web puede protegerse mediante Authentik usando un proxy provider, manteniendo la API Subsonic accesible para no romper compatibilidad con clientes móviles o de escritorio.

Este enfoque es opcional, pero recomendado cuando Navidrome se expone a internet:

  • Evita autenticación doble en aplicaciones externas.
  • Mantiene compatibilidad con clientes Subsonic.
  • Limita el acceso al panel web sin añadir fricción innecesaria.

El fragmento necesario para esta separación está incluido en la carpeta correspondiente del repositorio en Gitea.


Decisiones importantes o problemas detectados

  • Proteger Navidrome completamente con SSO rompe clientes Subsonic.
  • La biblioteca debe montarse siempre en read-only.

Resumen breve

  • Servidor de música autohospedado, ligero y estable.
  • Control total sobre biblioteca y acceso.
  • Integración limpia con reverse proxy y SSO opcional.
  • Configuración mantenida íntegramente en Gitea.

Referencias