# Automatización de Música (slskd + Soularr + Lidarr) > **Ubicación**: LXC 109 (Navidrome, TYAN) · **Montado**: 21 Sept 2026 --- ## Arquitectura ``` Lidarr (8686) ──► lista de álbumes/artistas que quieres │ │ │ ▼ └──────────► Soularr (cron cada 30 min) ──► busca en Soulseek vía slskd │ slskd (5030) ──► descarga a /var/lib/slskd/downloads │ Soularr mueve/importa ──► Lidarr ──► /opt/navidrome/music │ Navidrome (4533) ──► escaneo automático cada 1 h ``` ## Componentes | Servicio | Puerto | Acceso | Función | |---|---|---|---| | **Lidarr** | 8686 | http://192.168.10.85:8686 | Gestión de artistas/álbumes deseados (la "lista") | | **slskd** | 5030 | http://192.168.10.85:5030 (admin / Slskd2026!) | Cliente Soulseek con interfaz web | | **Soularr** | — | cron `*/30 * * * *` | Conecta Lidarr ↔ Soulseek (descarga automática) | | **Navidrome** | 4533 | https://navidrome.consultoria-as.com | Reproductor (escaneo automático `@every 1h`) | ## Rutas y configuración | Dato | Valor | |---|---| | Música final (Navidrome) | `/opt/navidrome/music` (13 GB, 2341 archivos) | | Descargas slskd | `/var/lib/slskd/downloads` | | Config Soularr | `/opt/soularr/config.ini` | | Config slskd | `/opt/slskd/slskd.yml` | | Config Lidarr | `/var/lib/lidarr/` | | Logs | `journalctl -u slskd -u lidarr` · `/opt/soularr/soularr.log` | | Binarios | `/opt/slskd/bin/slskd` (0.26.0) · `/opt/lidarr/Lidarr/` (3.1.0) | ## Notas de instalación - Instalados **nativos** (sin Docker): el LXC 109 no tiene Docker y tiene recursos holgados (10 GB RAM, 235 GB libres). - Ambos binarios son .NET self-contained → requieren `DOTNET_BUNDLE_EXTRACT_BASE_DIR` (configurado a `/home//.dotnet-extract` en sus unit files); sin él fallan al arrancar. - Lidarr 3.x extrae su binario en `/opt/lidarr/Lidarr/Lidarr` (subdirectorio, no en la raíz del tar). - Los comandos largos vía `pct exec` se cortan si la sesión SSH cae → usar `systemd-run --unit= --collect` dentro del contenedor para tareas largas (descargas, apt, pip). ## Pendientes (configuración de usuario) - [ ] **Cuenta Soulseek** en slskd: http://192.168.10.85:5030 → Settings → Soulseek (usuario/contraseña de la red Soulseek) - [ ] **Lidarr**: agregar Root Folder `/opt/navidrome/music` y los artistas/álbumes deseados en http://192.168.10.85:8686 - [ ] Tras eso, Soularr (cron cada 30 min) buscará y descargará automáticamente > ⚠️ Usar con contenido que se tenga derecho a descargar (compras propias, música libre, artistas que lo permitan). --- ## ⚠️ Configuración de slskd 0.26 — esquema YAML (Sept 2026) El slskd 0.26 **cambió los nombres de las secciones**; con el esquema viejo **ignora silenciosamente** la configuración (síntoma: `Not connecting to the Soulseek server; username and/or password invalid` + escucha en el puerto default 50300 en vez del configurado). Esquema **correcto** (`/opt/slskd/slskd.yml`): ```yaml directories: downloads: /var/lib/slskd/downloads incomplete: /var/lib/slskd/incomplete web: port: 5030 authentication: username: admin password: Slskd2026! api_keys: # ← dentro de authentication (no como hermana de web) - id: soularr key: f62d4b3d70a3092dd9530c99736a2a5a soulseek: # ← era `slskd:` en versiones viejas username: Fransacreblue password: Aasi940812 listen_port: 50300 ``` ### Verificación ```bash journalctl -u slskd -n 20 | grep -iE "logged|listening" # debe decir: Logged in ... as Fransacreblue curl -s -H "X-API-Key: " http://127.0.0.1:5030/api/v0/session # 200 = API OK ``` ### Cuenta Soulseek - Usuario: **Fransacreblue** (creada por el usuario vía cliente Nicotine+, IP residencial) - Con CGNAT no somos "connectable" (los peers no nos alcanzan), pero **búsqueda y descarga funcionan** vía conexiones indirectas — verificado: búsqueda de prueba devolvió 123 peers / 5,352 archivos. - **NOTA**: los endpoints de la API de slskd para resultados están en `/searches/{id}/responses` (no en `/searches/{id}`).