Navidrome
Tu propio Spotify Self-Hosted
Los servicios de música en streaming están de moda, pero si eres de los que tiene su propia biblioteca de música, esto te va a interesar.
Navidrome es un servidor de música Self-Hosted y Opensource, con cliente web y diversos clientes para dispositivos móviles. Vamos a ver como instalarlo.
1. Instalación
Para la instalación vamos a usar Docker
, ya que facilita el despliegue del servicio y configuración del mismo. Si todavía no tiene Docker en tu máquina,
puedes leer este post
donde explico como instalarlo.
He incluido la configuración de env ND_DEVACTIVITYPANEL=FALSE
para que el cliente web funcione de forma fluida, sin esta configuración presentaba grandes problemas el funcionamiento de la interfaz.
Podemos elegir entre docker-compose o la linea de comandos:
1.1 Docker-Compose
version: "3"
services:
navidrome:
image: deluan/navidrome:latest
user: 1000:1000
ports:
- "4533:4533"
restart: always
environment:
ND_LOGLEVEL: info
ND_DEVACTIVITYPANEL: FALSE
volumes:
- "/directorio/de/datos:/data"
- "/directorio/de/musica:/music:ro"
1.2 Command line tool
$ docker run -d \
--name navidrome \
--restart=always \
--user $(id -u):$(id -g) \
-v /directorio/de/musica:/music \
-v /directorio/de/datos:/data \
-p 4533:4533 \
-e ND_LOGLEVEL=info \
-e ND_DEVACTIVITYPANEL=FALSE \
deluan/navidrome:latest
Tenemos que sustituir la ruta de los volúmenes, por un lado data
que será donde Navidrome guarde la configuración y otros archivos necesarios, y por otro lado music
, que será el directorio donde tenemos que tener toda nuestra biblioteca de música para que Navidrome la indexe y la sirva.
Es importante que el usuario que indiquemos tenga permisos en los directorios especificados para los volúmenes.
2. Interfaz web
Una vez arranque el contenedor, podemos acceder a la interfaz de Navidrome en http://localhost:4533
.
Primero nos pedirá crear un usuario admin, desde el cual podremos gestionar todo Navidrome además de comenzar a escuchar nuestra música. Desde este usuario podremos crear todos los usuarios que queramos que usen nuestro servidor.
Una vez configurado, la apariencia será así:
3. Cliente Android/iOS
Navidrome es compatible con cualquiera de los clientes desarrollados para Subsonic o Airsonic.
Tras probar muchos, recomiendo substreamer
, está disponible tanto para Android como para iOS, y entre muchas otras cosas permite gestionar la descarga de música para escucharla offline.
4. Nginx reverse proxy
Si queremos usar un nombre de dominio para acceder a nuestro nuevo servidor de música, así como asegurarlo por https, tan solo tenemos que crear un reverse proxy con Nginx.
server {
listen 80;
server_name dominio.local;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name dominio.local;
ssl_certificate /directorio/certificado.pem;
ssl_certificate_key /directorio/llave.key;
add_header Strict-Transport-Security "max-age=31536000" always;
location / {
proxy_pass http://localhost:4533/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_buffering off;
}
}
Tenemos que sustituir el nombre de dominio por el adecuado, así como la ruta y nombre de nuestro certificado ssl.
Con esto, ya estamos listos para disfrutar de nuestra biblioteca de música en todos nuestros dispositivos, tanto online como offline!
Espero que sea útil, ¡gracias por leerme!
Comparte esta publicación
Twitter
Facebook
Reddit
LinkedIn
Pinterest
Email