Cómo configurar Lidarr, Soularr y slskd con Docker Compose
Tabla de Contenidos
- Introducción
- Requisitos Previos
- El Archivo Docker Compose
- Cómo Implementar los Contenedores
- Configurando Slskd
- Configurando Lidarr
- Configurando Soularr
Introducción
En este tutorial aprenderás a implementar Lidarr, Soularr y slskd utilizando Docker Compose. Estas herramientas funcionan en conjunto para gestionar, descargar y organizar tu colección de música de forma eficiente. Al usar Docker, podrás ejecutarlas en contenedores aislados, lo que simplifica su configuración y mantenimiento.
Requisitos Previos
Antes de comenzar, asegúrate de contar con lo siguiente:
- Un entorno con Docker: Instala Docker y Docker Compose en tu sistema. Aquí tienes las instrucciones para instalar Docker Desktop. Windows/Linux/macOS
- Directorios configurados: Crea los siguientes directorios para almacenar datos de forma:
-
./slskd/config
-
./soularr/config
-
./lidarr/config
-
- Otros directorios:
-
./musica: Para la biblioteca de música.
-
./slskd/downloads: Para las descargas completas.
-
./slskd/incomplete: Para las descargas incompletas.
-
- Credenciales de Soulseek: Necesitarás un usuario y contraseña de Soulseek para configurar slskd.
El Archivo Docker Compose
A continuación, encontrarás el archivo docker-compose.yml que utilizaremos para configurar los contenedores:
name: lidarr-soularr services: soularr: restart: unless-stopped container_name: soularr hostname: soularr environment: - PUID=0 - PGID=0 - TZ=Etc/UTC - SCRIPT_INTERVAL=300 # Cada cuanto se ejecuta soularr, en segundos user: "0:0" volumes: - ./slskd/config:/slskd - ./slskd/downloads:/slskd/downloads - ./slskd/incomplete:/slskd/incomplete - ./soularr/config:/data image: mrusse08/soularr:latest slskd: image: slskd/slskd container_name: slskd ports: - "5030:5030" - "5031:5031" - "50300:50300" environment: - SLSKD_REMOTE_CONFIGURATION=true - SLSKD_DOWNLOADS_DIR=/app/downloads - SLSKD_INCOMPLETE_DIR=/app/incomplete volumes: - ./slskd/config:/app - ./slskd/downloads:/app/downloads - ./slskd/incomplete:/app/incomplete - ./musica:/musica restart: always lidarr: image: lscr.io/linuxserver/lidarr:latest container_name: lidarr environment: - PUID=0 - PGID=0 - TZ=Etc/UTC - SLSKD_SHARED_DIR=/musica volumes: - ./slskd/downloads:/musica - ./lidarr/config:/config ports: - 8686:8686 restart: unless-stopped
Guarda este archivo como
docker-compose.yml
en un directorio de tu elección. Yo lo voy a guardar en
C:UsersDavidlidarr-soularr
Cómo Implementar los Contenedores
Abre Docker Desktop y activa el terminal.
Entra en el directorio donde guardaste el fichero docker-compose.yml
Y ejecuta docker compose up -d
, docker descargara las imágenes y ejecutara los contenedores.
Para descargar estas 3 imágenes necesitas ~2GB de espacio.
Una vez los contenedores se estén ejecutando podrás ver esto:
Configurando Slskd
Ahora podemos acceder a http://localhost:5030 e iniciar sesión.
- Usuario:
slskd
- Contraseña:
slskd
Una vez dentro vamos a System > Options > Edit
Aquí podemos modificar el fichero de configuración de slskd para conectarnos a la red Soulseek.
Primero vamos a modificar el directorio compartido (⚠ Hay quienes solo permiten que descargues su contenido compartido si tú también estás compartiendo)
de
# shares: # directories: # - ~
a
shares: directories: - /downloads
Así volvemos a compartir todo lo que nos descarguemos.
Lo segundo es cambiar el usuario y contraseña de slskd, crear una clave API para usar posteriormente con Soularr y tu usuario y contraseña de la red Soulseek.
Para cambiar el usuario y contraseña de slskd y crear una clave API:
Cambia de
# web: # [...] # authentication: # disabled: false # username: slskd # password: slskd # jwt: # key: ~ # ttl: 604800000 # api_keys: # my_api_key: # key: and 255 characters> # role: readonly # readonly, readwrite, administrator # cidr: 0.0.0.0/0,::/0
web: [...] authentication: disabled: false username: TuNombreDeUsuario password: TuContraseña # jwt: # key: ~ # ttl: 604800000 api_keys: my_api_key: key: UnStringLargoDeEntre16Y255Caracteres role: readonly cidr: 0.0.0.0/0,::/0
Y para cambiar el usuario y contraseña de la red Soulseek:
Cambia más abajo de
# soulseek: # address: vps.slsknet.org # port: 2271 # username: # password: ~
a
soulseek: address: vps.slsknet.org port: 2271 username: TuNombreDeUsuario password: TuContraseña
Ahora haz clic en Save.
Ahora puedes cerrar session y probar tu nuevo usuario y contraseña.
Una vez dentro haz clic en Disconnected para conectarte a la red Soulseek.
Verás que se ha activado el cuadro de búsqueda.
Si introduces cualquier termino a buscar Slskd buscará en la red Soulseek a otros usuarios que compartan archivos que coincidan con tu búsqueda:
Una vez acabada la búsqueda podrás entrar a ver los resultados:
Si lo deseas puedes seleccionar cualquiera que prefieras y enviarlo a la cola de descargas. Pero nosotros vamos a hacer que Soularr haga esto por nosotros automáticamente.
Pero primero hay que configurar Lidarr
Lidarr
Para configurar Lidarr vamos a la URL http://localhost:8686/
Lo primero que veremos será un popup que nos pide que creemos un usuario y contraseña, además de configurar el método de autenticación.
Yo recomiendo la configuración mostrada, así no hace falta iniciar sesión cada vez que entremos desde nuestra red local.
Primero vamos a cambiar el idioma a Español:
Haz clic en Settings > UI y selecciona Spanish al final de la página.
Luego haz clic en Save y actualiza.
Ahora hay que configurar la carpeta donde se descargará nuestra música.
Haz clic en Ajustes > Gestión de Medios y haz clic en el + para añadir una carpeta raíz.
Nosotros hemos configurado en nuestro docker-compose.yml
la carpeta ./musica
de la máquina anfitrión a la carpeta /musica
del contenedor Docker de Lidarr.
Por último vamos a Ajustes > General y copiamos la Clave API.
Antes de ir a configurar Soularr para conectar Lidarr y Slskd vamos a añadir algunos artistas a nuestra librería de música.
Haz clic en Biblioteca > Añadir Nuevo
Selecciona el que mejor se asemeje a tu búsqueda y añádelo cambiando las opciones que desees.
Ahora sí, vamos a configurar Soularr
Soularr
Primero vamos al directorio ./soularr/config
y creamos el siguiente archivo config.ini
[Lidarr] api_key = AQUI_TU_CLAVE_API_DE_LIDARR host_url = http://lidarr:8686 #Esta debería ser la ruta montada en Lidarr que apunta al directorio de descargas de Slskd. download_dir = /musica [Slskd] #Clave API de Slskd. Necesitas configurarla manualmente. Consulta el enlace a la documentación de Slskd arriba. api_key = AQUI_TU_CLAVE_API_DE_SLSKD host_url = http://slskd:5030 #Directorio de descargas de Slskd. Debería haberse configurado al instalar Slskd. download_dir = /app/downloads #Elimina las búsquedas de Slskd después de que la búsqueda termine. delete_searches = False #Tiempo máximo (en segundos) que el script esperará para que las descargas se completen. #Esto se utiliza para evitar que el script se ejecute indefinidamente debido a una descarga atascada. Por defecto, 1 hora. stalled_timeout = 3600 [Release Settings] #Selecciona el lanzamiento con la cantidad más común de pistas entre todos los lanzamientos. use_most_common_tracknum = True allow_multi_disc = True #Consulta la lista completa de países más abajo. accepted_countries = Europe,Japan,United Kingdom,United States,[Worldwide],Australia,Canada #Consulta la lista completa de formatos más abajo. accepted_formats = CD,Digital Media,Vinyl [Search Settings] search_timeout = 5000 maximum_peer_queue = 50 #Velocidad mínima de subida en bit/s minimum_peer_upload_speed = 0 #Reemplaza "flac,mp3" por "flac" si solo quieres archivos FLAC. allowed_filetypes = flac,mp3 ignored_users = User1,User2,Fred,Bob,SGAE #Establecer en False si solo deseas buscar álbumes completos. search_for_tracks = True #Establecer en True si deseas agregar el nombre del artista al principio de la búsqueda de álbumes. album_prepend_artist = False track_prepend_artist = True #Tipos de búsqueda válidos: all || incrementing_page || first_page #"all" buscará cada registro deseado cada vez que se ejecute Soularr. #"incrementing_page" comenzará con la primera página e incrementará a la siguiente en cada ejecución. #"first_page" buscará repetidamente la primera página. #Si utilizas el tipo de búsqueda "first_page", remove_wanted_on_failure debe estar habilitado. search_type = incrementing_page #Cantidad de álbumes a obtener en cada ejecución, debe ser un número entre 1 y 2,147,483,647. number_of_albums_to_grab = 10 #Desmonitoriza el álbum si Soularr no puede encontrarlo y lo coloca en "failure_list.txt". #Los álbumes fallidos pueden ser remonitorizados filtrando por "No monitorizados" en la lista de deseados de Lidarr. remove_wanted_on_failure = False #Lista separada por comas de palabras que no pueden estar en el título de álbumes o pistas. Insensible a mayúsculas. title_blacklist = BlacklistWord1,blacklistword2 [Logging] #Estas opciones se pasan directamente al método basicConfig() del registrador. #Esto significa que, si estás familiarizado con el módulo de registro de Python, puedes configurar #el registrador con opciones más allá de las listadas aquí por defecto. #Para más información sobre las opciones disponibles -- https://docs.python.org/3/library/logging.html#logging.basicConfig level = INFO #Formato del mensaje de registro -- https://docs.python.org/3/library/logging.html#logrecord-attributes format = [%(levelname)s|%(module)s|L%(lineno)d] %(asctime)s: %(message)s #Formato de las fechas y horas -- https://docs.python.org/3/library/time.html#time.strftime datefmt = %Y-%m-%dT%H:%M:%S%z
⚠ Ojo con los host_url
, como nosotros usamos Docker podemos usar los nombres de host de cada contenedor, si tu setup es diferente cámbialos por sus IPs correspondientes.
Una vez reiniciamos el contenedor de Soularr este ejecutará el script the monitorización y empezará a buscar y descargar álbumes.
Si accedemos a la interfaz web de Slskd podremos ver las búsquedas realizadas por Soularr
Y si ha encontrado alguna coincidencia según nuestros parámetros los habrá añadido a la cola de descargas.
Soularr ejecutará el script the monitorización cada 300 segundo o cada cuanto hayamos configurado en la variable de entorno SCRIPT_INTERVAL
Por último, cada cierto tiempo Lidarr escaneara el directorio raíz que añadimos /musica
y actualizara nuestra librería. También podemos forzar a un escaneo manual.