davestephens / ansible-nas

Build a full-featured home server or NAS replacement with an Ubuntu box and this playbook.
MIT License
3.21k stars 486 forks source link

Add Logitech Media Server (Squeezebox) docker container support #145

Closed bcurran3 closed 11 months ago

bcurran3 commented 5 years ago

LMS has been slowly dying but there are still some of out there that religiously use it. It's also available as a plug-in on almost every NAS box out there. Ansible-NAS would be arguably better off with an option to install it. I plan on moving it off my Windows app server and moving it to a docker on my Ansible-NAS!

https://hub.docker.com/search?q=logitech&type=image

davestephens commented 5 years ago

I'm assuming there's a reasonably low level of demand for this so it's going to be somewhere near the bottom of my list - that said if you're keen for it to be supported I'll happily accept a pull request!

bcurran3 commented 5 years ago

Let me learn Ansible first... and I just might do that.

For the record LMS uses port 9000 by default and will conflict with Portainer.

davestephens commented 5 years ago

You can change the port with a port: declaration in the task yml file - there are a few that do this already eg calibre.yml

bcurran3 commented 5 years ago

So of surprise to me, today's Sourceforge.net Newsletter has:

For our October “Staff Pick” Project of the Month, we selected LMS plugins (https://sourceforge.us15.list-manage.com/track/click?u=aab6529d3675bd877963a652d&id=b103463e80&e=546c7012b8) Logitech Media Server or LMS is an open source multi-room audio system created by SlimDevices and then later acquired by Logitech. Although Logitech has ended development of hardware devices, the project is still very active with plenty of plugins released regularly. New hardware players can be added using PI devices and DAC board to build a high-quality multi-room audio system.

bcurran3 commented 4 years ago

For my own future reference:

9000 TCP: Web GUI 9090 TCP: CLI (for example used by Android app Squeezer) 3483 TCP: Physical Squeezebox

https://superuser.com/questions/1442385/which-ports-must-be-open-on-the-server-to-use-logitech-media-server-lms-for-sq

Yeah, I'm going to make this happen.

bcurran3 commented 4 years ago

I've got this done but there is a hiccup.

Though the web interface for LMS can be redirected, the fact is that all players still talk back to LMS on 9000. This causes a conflict with the ansible-nas default port for the Portainer container.

Soooooooooooooooo

What I propose to do is open a PR that changes the ansible-nas default assigned port for all containers to a variable that can be assigned in alt.yml. This has already been done and used by the Time Machine task:

    ports:
      - "{{ timemachine_port }}:445"

..and I think it's a good idea to move forward with this concept on all the container's setup. The advantage is when conflicts like this arise, users can change the ports to suit their needs. i.e. In the Logitech Media Server section of all.yml there will be a comment something along the lines of "This container REQUIRES use of port 9000. Please change the default port for Portainer before using enabling Logitech Media Server."

Though LMS is a program still in development and the docker container is continuously updated as well, the hardware hit EOL years ago. It's all in its death throws. Thus it would be completely ridiculous of me to request changing the default port of Portainer in ansible-nas. I think my proposed solution is a solid one that also sets up a solution for similar conflicts in the future. I'm sure there's an alternate SDN solution, but I don't want things to get overly complicated.

Let me know your thoughts before I do the PR.

bcurran3 commented 4 years ago

Well @animeai beat me to it: https://github.com/davestephens/ansible-nas/pull/188

Hoping this gets merged in soon...

bcurran3 commented 4 years ago

I just put in the PR for it: https://github.com/davestephens/ansible-nas/pull/265