Qué vas a montar
Un servidor de música completo: Navidrome sirviendo streaming a cualquier dispositivo, Lidarr detectando lanzamientos nuevos de tus artistas seguidos y descargándolos solo, con una VPN por delante para saltarte bloqueos de tu ISP, y Soulseek como fuente extra para artistas que no aparecen en torrents normales.
Prowlarr (indexers + VPN) → Lidarr → qBittorrent / SLSKD → /shared/music → Navidrome
Requisitos previos:
- Proxmox con un LXC para música y espacio en disco suficiente
- Una cuenta de VPN con soporte WireGuard (uso Mullvad, pero cualquiera que dé un fichero de configuración WireGuard sirve)
- Docker disponible en el LXC de Prowlarr (para FlareSolverr y SLSKD)
Paso 1 — Navidrome
Crea un LXC dedicado, instala Navidrome siguiendo su documentación oficial, y apunta su biblioteca a la carpeta compartida de música:
mkdir -p /mnt/pve/data/shared/music
Móntala en el LXC de Navidrome vía bind mount editando /etc/pve/lxc/<id>.conf:
mp0: /mnt/pve/data/shared/music,mp=/shared/music
Paso 2 — Lidarr
Instala Lidarr en su propio LXC, con el mismo bind mount de /shared/music. En Settings → Media Management, la carpeta raíz debe ser solo /shared/music — no metas ahí la carpeta de descargas, o Lidarr confundirá archivos a medio bajar con biblioteca terminada.
Conéctalo como cliente de descarga a qBittorrent: Settings → Download Clients → Add → qBittorrent, con la IP y puerto de tu instancia.
Paso 3 — Prowlarr como gestor central de indexers
Si no lo tienes ya montado (puede que lo reutilices de otro proyecto, ver el stack multimedia de vídeo), instálalo y conéctalo a Lidarr en Settings → Apps → Add.
Paso 4 — Saltarte el bloqueo de torrents de tu ISP con VPN
Si tu proveedor de internet bloquea trackers de torrents a nivel de red (bastante común en España), la forma más limpia es meter la VPN dentro del propio LXC de Prowlarr, así todo el tráfico de indexers sale ya limpio sin tocar nada más del stack.
Descarga el fichero de configuración WireGuard de tu proveedor de VPN (en Mullvad: panel de cuenta → WireGuard configuration) y colócalo en el LXC:
mkdir -p /etc/wireguard
nano /etc/wireguard/mullvad.conf
# pega el contenido del fichero de configuración descargado
Levanta el túnel:
wg-quick up mullvad
Importante: esto no persiste solo entre reinicios del contenedor. Tendrás que volver a lanzar wg-quick up mullvad cada vez que el LXC arranque, o crear un servicio systemd que lo haga automáticamente:
systemctl enable wg-quick@mullvad
Verifica que el tráfico sale por la VPN antes de seguir:
curl https://am.i.mullvad.net/connected
Paso 5 — FlareSolverr para indexers protegidos por Cloudflare
Algunos indexers (en mi caso, 1337x) están detrás de un challenge de Cloudflare que Prowlarr no puede resolver por sí solo. FlareSolverr actúa como intermediario que resuelve el challenge antes de que la petición llegue a Prowlarr.
Instala Docker en el LXC si no lo tienes:
curl -fsSL https://get.docker.com | sh
Levanta FlareSolverr:
docker run -d \
--name=flaresolverr \
-p 8191:8191 \
--restart unless-stopped \
ghcr.io/flaresolverr/flaresolverr:latest
En Prowlarr, ve al indexer afectado → Settings → activa FlareSolverr Proxy y apunta a http://<ip-del-lxc>:8191.
Paso 6 — Añadir indexers en Prowlarr
Indexers → Add Indexer, busca los que uses habitualmente. En mi experiencia, con la VPN activa Rutracker funciona bien; 1337x necesita el FlareSolverr del paso anterior.
Paso 7 — Lidarr nightly + Tubifarry (Soulseek, YouTube, Spotify)
Para artistas que no aparecen en torrents normales, el plugin Tubifarry integra Soulseek, YouTube y Spotify como fuentes directamente dentro de Lidarr. Requiere cambiar Lidarr a la rama nightly/plugins:
En Lidarr: Settings → General → Branch → cambia a nightly (o plugins según la versión), reinicia el servicio, y luego instala el plugin desde System → Plugins → Tubifarry.
Despliega SLSKD (cliente de Soulseek) vía Docker en el mismo LXC de Prowlarr:
docker run -d \
--name=slskd \
-p 5030:5030 \
-v /mnt/pve/data/shared/downloads:/downloads \
--restart unless-stopped \
slskd/slskd:latest
Conecta SLSKD a Lidarr tanto como cliente de descarga como indexer, desde la configuración de Tubifarry en Lidarr.
Los sustos que te puedes ahorrar
Revisa el espacio en disco del LXC antes de nada. Un LXC pequeño (4GB por defecto es fácil que se quede corto) que se llena sin avisar puede corromper la base de datos de Prowlarr y hacer fallar Docker al mismo tiempo — dos síntomas distintos, misma causa. Si algo empieza a fallar de forma rara, comprueba disco antes de perder tiempo en cualquier otra cosa:
df -h
Para ampliar un LXC:
pct resize <id> rootfs 10G
Verifica el bind mount antes de asumir que está bien. Comprueba que el punto de montaje apunta de verdad al HDD compartido y no al sistema de ficheros raíz del host:
pct set <id> -mp0 /mnt/pve/data/shared,mp=/shared
DNS inestable con AdGuard. Si tienes AdGuard Home como DNS de la red y algún LXC del stack falla resolviendo dominios de forma intermitente, fija manualmente un DNS externo en ese contenedor:
pct set <id> --nameserver "1.1.1.1"
Cliente para escuchar en el móvil
Navidrome expone la API estándar de Subsonic, así que cualquier cliente compatible sirve. Probé Amperfy y Substreamer; me quedé con Substreamer por interfaz más limpia y reproducción nativa en FLAC.
Checklist final
- Navidrome sirviendo
/shared/music - Lidarr con carpeta raíz correcta y conectado a qBittorrent
- VPN activa en el LXC de Prowlarr y verificada
- FlareSolverr resolviendo indexers protegidos por Cloudflare
- Lidarr en rama nightly con Tubifarry + SLSKD funcionando
- Espacio en disco monitorizado
Siguientes pasos
Para el mismo patrón aplicado a películas y series, tienes la guía completa en el post del stack multimedia. Todavía tengo pendiente automatizar del todo las descargas por Soulseek con Soularr, en vez de lanzarlas a mano — lo actualizaré cuando lo tenga.