Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please create Docker package #10

Closed
Larsvb0 opened this issue Dec 11, 2023 · 35 comments
Closed

Please create Docker package #10

Larsvb0 opened this issue Dec 11, 2023 · 35 comments
Labels
enhancement New feature or request

Comments

@Larsvb0
Copy link

Larsvb0 commented Dec 11, 2023

It would be great if this could run inside Docker!

thanks!

@TheBossME
Copy link

We're will working on that (i've discussed with Greg) when he has time to implement the ability of filter region, language and streams like for aac,mp3,FLAC etc. and compiled (for alpine Linux) then.

@coffeegreg
Copy link
Owner

Almost done... Just testing now new YTuner 1.1.0 "Xmas Edition". 🎅
Lots of code has been added and changed.

@coffeegreg coffeegreg added the enhancement New feature or request label Dec 14, 2023
@Larsvb0
Copy link
Author

Larsvb0 commented Dec 26, 2023

is this coming?

@TheBossME
Copy link

I've discussed with Greg.
If he has compiled for Alpine Linux, we will create it for easy installations.

@coffeegreg
Copy link
Owner

I'll want to tackle this first.
This may be helpful to Beatrice and her DSP-Z7 and maybe to others as well.
The XMas are over so maybe there will be some time to deal with it.

@rorso
Copy link

rorso commented Jan 4, 2024

Hi Greg, I came over here from the YCast Project .
I'm the one with the "Grundig Sonoclock 890A Web" ;-)

Unfortunately my pascal knowledge from 1990 (TurboPascal 5.5) has faded and I didn't get the FP/Lazarus running successfully on my Ubuntu 22.04. Too much errors on missing class-properties, folders, ... and SEGFAULT on running YTuner from the IDE. Too much hassle to figure out.

I still want to help, especially, if it results in a Docker package that I can install on my Synology NAS.

@TheBossME
Copy link

@rorso i didn't start with Docker implementation. I do wait for the alpine binaries to,start with, to make docker image small as possible.

Regards
Beatrice

@rorso
Copy link

rorso commented Jan 4, 2024

@TheBossME It's OK. Since I have a still unsupported device, the Docker is second. I just want to raise my hand on that Idea.

@coffeegreg
Copy link
Owner

coffeegreg commented Jan 4, 2024

Hi @rorso
The difference between 1990 Turbo Pascal and nowadays Free Pascal is like the difference between riding a bike 🚴 and flying a rocket. 🚀 😉 Don't worry about Lazrus problem I'll try to prepare all new YTuner functionalities for you.
You have to give me a little more time. You must admit that the ability to run YTuner with the full cache of radio-browser.info resources and without the need to communicate with radio-browser.info is worth attention. No more problems like #136. Until then, you can use YTuner based on Linux TinyCore VM. Whole OS require less then 30MB of free drive space and 64MB RAM. YTuner, as we know, is less than 2MB. No additional services, frameworks, packages, etc. I don't think it's much. I don't know how heavy the Docker container will be.
After "dockerize" YTuner (with the help of Beatrice, of course 👍 ) I'll try to take care of your "Grundig Sonoclock". I assume You've tested the YTuner with your Sonoclock ...

@coffeegreg
Copy link
Owner

coffeegreg commented Jan 24, 2024

@Larsvb0 @TheBossME @rorso
YTuner seems to work quite well in a Docker container based on Alpine 3.19 Docker image. 🚀

ladm@localubuntu20:~/Documents/Projects/ytuner/bin/Release/docker$ sudo docker build -t ytuner:1.2.1 .
[+] Building 1.2s (9/9) FINISHED                                                                                                                   docker:default
 => [internal] load build definition from Dockerfile                                                                                                         0.0s
 => => transferring dockerfile: 960B                                                                                                                         0.0s
 => [internal] load metadata for docker.io/library/alpine:3.19                                                                                               0.9s
 => [internal] load .dockerignore                                                                                                                            0.0s
 => => transferring context: 2B                                                                                                                              0.0s
 => [1/4] FROM docker.io/library/alpine:3.19@sha256:51b67269f354137895d43f3b3d810bfacd3945438e94dc5ac55fdac340352f48                                         0.0s
 => [internal] load build context                                                                                                                            0.0s
 => => transferring context: 436B                                                                                                                            0.0s
 => CACHED [2/4] RUN apk --no-cache --update add libc6-compat                                                                                                0.0s
 => CACHED [3/4] WORKDIR /app                                                                                                                                0.0s
 => CACHED [4/4] COPY x86_64-linux/ /app/                                                                                                                    0.0s
 => exporting to image                                                                                                                                       0.0s
 => => exporting layers                                                                                                                                      0.0s
 => => writing image sha256:1689a05a0a8cee97c6b16d27fd221d68061c81bb09bae0b39b41aee7f69f1cf5                                                                 0.0s
 => => naming to docker.io/library/ytuner:1.2.1                                                                                                              0.0s
ladm@localubuntu20:~/Documents/Projects/ytuner/bin/Release/docker$ sudo docker images
REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
ytuner        1.2.1     1689a05a0a8c   10 minutes ago   9.98MB
ladm@localubuntu20:~/Documents/Projects/ytuner/bin/Release/docker$ sudo docker run --rm -p 80:80/tcp -p 53:53/udp ytuner:1.2.1
YTuner v1.2.1 Copyright (c) 2024 Greg P. (https://github.com/coffeegreg)
24-1-24 12:21:20 : Inf : Starting services...
24-1-24 12:21:20 : Inf : Successfully loaded 10 my stations.
24-1-24 12:21:20 : Inf : Getting Radio-browser.info UUIDs...
24-1-24 12:21:20 : Dbg : Radio-browser.info: GET stations.
24-1-24 12:21:20 : Inf : DNS Service: listening on: 172.17.0.2:53.
24-1-24 12:21:20 : Inf : Web Service: listening on: 172.17.0.2:80.
24-1-24 12:21:33 : Inf : Successfully downloaded 44311 RB UUIDs.
24-1-24 12:21:33 : Inf : Successfully saved 44311 RB UUIDs to cache file.

...and with support of all cache types :

ladm@localubuntu20:~/Documents/Projects/ytuner/bin/Release/docker$ sudo docker build -t ytuner:1.2.1 .
[+] Building 0.7s (10/10) FINISHED                                                                                                                 docker:default
 => [internal] load build definition from Dockerfile                                                                                                         0.0s
 => => transferring dockerfile: 986B                                                                                                                         0.0s
 => [internal] load metadata for docker.io/library/alpine:3.19                                                                                               0.5s
 => [internal] load .dockerignore                                                                                                                            0.0s
 => => transferring context: 2B                                                                                                                              0.0s
 => [1/5] FROM docker.io/library/alpine:3.19@sha256:51b67269f354137895d43f3b3d810bfacd3945438e94dc5ac55fdac340352f48                                         0.0s
 => [internal] load build context                                                                                                                            0.0s
 => => transferring context: 300B                                                                                                                            0.0s
 => CACHED [2/5] RUN apk --no-cache add libc6-compat                                                                                                         0.0s
 => CACHED [3/5] RUN apk --no-cache add sqlite-libs                                                                                                          0.0s
 => CACHED [4/5] WORKDIR /app                                                                                                                                0.0s
 => CACHED [5/5] COPY x86_64-linux/ /app/                                                                                                                    0.0s
 => exporting to image                                                                                                                                       0.0s
 => => exporting layers                                                                                                                                      0.0s
 => => writing image sha256:12ee6d05aa72a94285a790d7bf79271afe1907ea6139c917368050d98a1f29f0                                                                 0.0s
 => => naming to docker.io/library/ytuner:1.2.1                                                                                                              0.0s
ladm@localubuntu20:~/Documents/Projects/ytuner/bin/Release/docker$ sudo docker images
REPOSITORY    TAG       IMAGE ID       CREATED          SIZE
ytuner        1.2.1     12ee6d05aa72   33 seconds ago   11.4MB
ladm@localubuntu20:~/Documents/Projects/ytuner/bin/Release/docker$ sudo docker run --rm -p 80:80/tcp -p 53:53/udp ytuner:1.2.1
YTuner v1.2.1 Copyright (c) 2024 Greg P. (https://github.com/coffeegreg)
24-1-24 14:14:21 : Inf : Starting services...
24-1-24 14:14:21 : Inf : Successfully loaded 10 my stations.
24-1-24 14:14:21 : Dbg : Database library : 3.44.2.
24-1-24 14:14:21 : Inf : Checking local database.
24-1-24 14:14:21 : Inf : Preparing local database This may take a while...
24-1-24 14:14:21 : Dbg : Creating tables.
24-1-24 14:14:21 : Dbg : Filling out countries table.
24-1-24 14:14:21 : Dbg : Radio-browser.info: GET countries.
24-1-24 14:14:21 : Dbg : Filling out languages table.
24-1-24 14:14:21 : Dbg : Radio-browser.info: GET languages.
24-1-24 14:14:22 : Dbg : Filling out codecs table.
24-1-24 14:14:22 : Dbg : Radio-browser.info: GET codecs.
24-1-24 14:14:22 : Dbg : Filling out tags table.
24-1-24 14:14:22 : Dbg : Radio-browser.info: GET tags.
24-1-24 14:14:23 : Dbg : Creating indexes.
24-1-24 14:14:24 : Dbg : Filling out stations table.
24-1-24 14:14:24 : Dbg : Radio-browser.info: GET stations.
24-1-24 14:15:31 : Dbg : Cleaning tables.
24-1-24 14:16:01 : Dbg : Rebuilding indexes.
24-1-24 14:16:02 : Inf : Local database is ready.
24-1-24 14:16:02 : Inf : DNS Service: listening on: 172.17.0.2:53.
24-1-24 14:16:02 : Inf : Web Service: listening on: 172.17.0.2:80.

With container size of 11.4MB. 🚀 👍
In my opinion, there is no point in placing cache, config and db with the contents in the container and we should use the options CacheFolderLocation, ConfigFolderLocation and DBFolderLocation of ytuner.ini file and point to host resources to remain persistent.

@Larsvb0
Copy link
Author

Larsvb0 commented Jan 29, 2024

sounds good, if you can get a tutorial out I can create one myself, or can you share your docker image? Would be good to have a volume where I can drop the ini and yml file

@coffeegreg
Copy link
Owner

@Larsvb0
Tutorial is already here 😉
I made it 5 days ago.

@Larsvb0
Copy link
Author

Larsvb0 commented Jan 30, 2024

I tried and tried but I am just not good enough for this. From the manual I do not get why do I create the Ytuner and config direcorty but not use it? I am working fully in the Ytuner-docker directory. Extract gives me errors that the files do not exist. I copied them manually, tried to build an image (which succeeded but I cannot seem to install the docker.

Can't you upload yours to docker.io?
Can I use Portainer to attach an external volume to /app/host-shared?

@coffeegreg
Copy link
Owner

coffeegreg commented Jan 31, 2024

I assume you have installed Docker correctly and you can run sudo docker run hello-world.

From the manual I do not get why do I create the Ytuner and config direcorty but not use it? I am working fully in the Ytuner-docker directory.

YTuner will use them.

  • Described YTuner-docker is the working directory in which we place Dockerfile (your docker container configuration file) and x86_64-linux subdirectory containing the ytuner and ytuner.ini files (ytuner.ini prepared with the appropriate YTuner configuration for you). The contents of this directory are only used to build the contents of the container. It is not used later.
  • Described YTuner directory is the permament host shared volume. A good place to store config, cache and/or database files to maintain file persistence but you must use the CacheFolderLocation, ConfigFolderLocation parameters in DBFolderLocation in the ytuner.ini file.

As you probably know, the contents of the container are not permanent and after restarting it, everything you previously saved in it (cache,config,db) will be lost. Therefore, there is no point in saving cache, config and data in the container structure. Therefore, parameters CacheFolderLocation, ConfigFolderLocation and DBFolderLocation were added to enable the use of directories shared on the host (permanent ones).
I will not share docker images for the reason I described. Everyone may need a different YTuner configuration.

Extract gives me errors that the files do not exist.

What extract? This one: unzip -d x86_64-linux/ ytuner-1.2.2-x86_64-linux.zip ytuner ytuner.ini ?
Unzip the zip file your way and copy only the ytuner and ytuner.ini files.

At what step of my mini tutorial did you stuck? I tried to describe it as best as I could, but maybe I was wrong somewhere...

Finally, fundamental question. Why do you want to run YTuner in a container? Because it's fashionable or do you really need to isolate the YTuner process ?

Can I use Portainer to attach an external volume to /app/host-shared?

Unfortunately, I'm not familiar with a Portainer.

@Larsvb0
Copy link
Author

Larsvb0 commented Jan 31, 2024

thanks, I will try again and let you know how it goes.

The main problem is I have no linux experience. Using Docker and Portainer allows me to understand what I am doing and installing and understand how it work. And it work perfect for other containers as well. i have the config files connected to a share using volumes so I can control what the application in the containers does.

@rorso
Copy link

rorso commented Jan 31, 2024

Finally, fundamental question. Why do you want to run YTuner in a container? Because it's fashionable or do you really need to isolate the YTuner process ?

For me it's going to run on a Synology NAS where the only two possibilities are "within a dedicated VM with own OS" or "within a Docker container and fetched from DockerHub". Given the limited resources on this NAS, a VM is overkill.

Eventually this function can get moved to a HomeAssistant instance where it may run "as an integration" or "as an add-in, running in Docker".

Even with regular Linux, application installations tend to go into Docker, SNAP, AppImage instead of distribution packages.

@TheBossME
Copy link

TheBossME commented Jan 31, 2024

It's time for me to come back to ytuner and building a docker-compose.yaml file right ? I'm actually in a network recreation involved for a friend of mine. I will come back soon.

@Larsvb0
Copy link
Author

Larsvb0 commented Jan 31, 2024

when going through the manual I now have the following:

  1. Ytuner folder with empty config folder
  2. YTuner-docker folder with Dockerfile, Ytuner-1.2.2-x86-64-linux.zip and a x86-64-linux folder with Ytuner and Ytuner.ini.

When I run this: sudo docker build -t ytuner:1.2.2 .
I get this:
[+] Building 1.4s (10/10) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.2s
=> => transferring dockerfile: 571B 0.0s
=> [internal] load .dockerignore 0.2s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/alpine:3.19 0.9s
=> [1/5] FROM docker.io/library/alpine:3.19@sha256:c5b1261d6d3e430716269 0.0s
=> [internal] load build context 0.1s
=> => transferring context: 2.41MB 0.1s
=> CACHED [2/5] RUN apk --no-cache add libc6-compat 0.0s
=> CACHED [3/5] RUN apk --no-cache add sqlite-libs 0.0s
=> CACHED [4/5] WORKDIR /app 0.0s
=> CACHED [5/5] COPY x86_64-linux/ /app/ 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:9ca1f0f76fd7a0ea84d8d52c3cc953714829756c175f1 0.0s
=> => naming to docker.io/library/ytuner:1.2.2 0.0s

so it seems I build a 11MB file.

Now when I run this: sudo docker run --rm -p 80:80/tcp -p 53:53/udp -v ~/YTuner:/app/host-shared ytuner:1.2.2
I get this:
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "./ytuner": permission denied: unknown.

@coffeegreg
Copy link
Owner

@rorso
Did you try a Linux TinyCore VM descibed before? It is very light and works very well on a very low-spec platforms.

@coffeegreg
Copy link
Owner

coffeegreg commented Jan 31, 2024

@Larsvb0
Before you start building your container use the following command :

ladm@localubuntu20:~/YTuner-docker$ sudo chmod +x x86_64-linux/ytuner

The reason for your error is prosaic and results from the lack of permissions to execute the ytuner 😉
I need to make my mini-tutorial a little bit more detailed.
My another mistake: When I was writing this, I assumed that I'll zip all YTuner files without a directory. Later, however, I packed the whole catalog differently than before. 😉
I've changed YTuner 1.2.2 release zip files and updated mini tutorial. If you encounter any further problems, let me know.

@coffeegreg
Copy link
Owner

It's time for me to come back to ytuner and building a docker-compose.yaml file right ?

@TheBossME
Hi Beatrice
Feel free to prepare new tutorial for docker compose. 👍
In our case, it seems to me that we want to use a cannon (docker compose) to shoot a fly (YTuner). 😉 But any new knowledge and experience will probably be useful. 👍

@TheBossME
Copy link

I've tried to start ytuner under alpine Linux x64_x86 without success. I've already changed the executable bit with command: chmod +x ytuner

So,the musl libraries seems to be missed.

Will check with arm64 (aarch64) and will come back.

@coffeegreg
Copy link
Owner

@TheBossME
Please check my YTuner docker mini tutorial
Pay attention to Dockerfile line(s):

# Install libc6-compat, required for executables generated by FPC.
RUN apk --no-cache add libc6-compat

😉
They will also come in handy :

# Install sqlite-libs to support [catDB,catMemDB,catPermMemDB] cache types.
RUN apk --no-cache add sqlite-libs

Now, You know what to do to run YTuner on Alpine Linux. 😉

@TheBossME
Copy link

We never read readme's 🤣🙈😂🥂👍

ashes to my head 🤣🙈🔥

@Larsvb0
Copy link
Author

Larsvb0 commented Jan 31, 2024

yes, I got the Docker running. However, it is not handing out any radiostations.

I ran Ytuner.exe on Windows and this works. I copied thesame stations.ini to the Docker version but My stations and Browser on Denon X3200W is giving an empty list.

Loglevel is 4:
YTuner v1.2.2 Copyright (c) 2024 Greg P. (https://github.com/coffeegreg)
31-1-24 16:22:58 : Inf : Starting services...
31-1-24 16:22:58 : Inf : Successfully loaded 10 my stations.
31-1-24 16:22:58 : Dbg : Database library : 3.44.2.
31-1-24 16:22:58 : Inf : Checking local database.
31-1-24 16:22:58 : Inf : Local database is ready.
31-1-24 16:22:58 : Inf : Web Service: listening on: 172.17.0.5:80.
31-1-24 16:24:47 : Dbg : GET /setupapp/denon/asp/BrowseXML/loginXML.asp?token=0.
31-1-24 16:24:47 : Dbg : GET /setupapp/denon/asp/browsexm2/loginXML.asp?mac=6599DCBBF03940D650CFF54376B1B8FF&fver=1.754333&dlang=eng&startitems=1&enditems=10.
31-1-24 16:24:47 : Dbg : GET /setupapp/denon/asp/browsexm2/loginXML.asp?mac=6599DCBBF03940D650CFF54376B1B8FF&fver=1.754333&dlang=eng&startitems=1&enditems=10.

@TheBossME
Copy link

How,do you handle dns requests from your avr ?

Via dnsmasq or static on the avr ?

@Larsvb0
Copy link
Author

Larsvb0 commented Jan 31, 2024

I disabled DNS in config file and do DNS static via router. All to vtuner.com are routed to Docker. This works with the Windows version. You can see in the log that it reaches the docker container. The three GETs are from accessing My Stations.

@TheBossME
Copy link

Here my dnsmasq entries:
Maybe it helps you.

����"address=/radioyamaha.vtuner.com/192.168.178.100",
����"address=/radioyamaha2.vtuner.com/192.168.178.101",
����"address=/primary1b.vtuner.com/192.168.178.100",
����"address=/backup2.vtuner.com/192.168.178.101"

I'm testing with two ytuner machines actually. Tests not finished yet.

@coffeegreg
Copy link
Owner

coffeegreg commented Jan 31, 2024

I assume you see root screen menu with My stations, Radio browser and Bookmark because I can see requests like :

GET /setupapp/......../loginXML.asp

Unfortunately, I can't see any line of your log related to get My stations queries stored in ini/yaml file like:

GET /ytuner/my_stations .....

If there are no such requests in the log, it means that such queries do not reach YTuner. So where are they blocked?
Can you compare logs from both solutions (based on Windows and Linux container)?
Is Windows version use a "DNS static via router" too ?
Can you try to use "dockerized" YTuner Linux version with YTuner's build-in DNS server? This solution worked for me without any problems.
Also remember that your Denon does not see the IP address of the container. Use the host address. In the container launch command, parameters -p 80:80/tcp -p 53:53/udp are used to map container ports to host's IP interface ports.

@Larsvb0
Copy link
Author

Larsvb0 commented Feb 1, 2024

Windows SSl=1 DNS=1 Loglevel=4:

YTuner v1.2.2 Copyright (c) 2024 Greg P. (https://github.com/coffeegreg)
1-2-2024 10:46:57 : Inf : Starting services...
1-2-2024 10:46:57 : Inf : Successfully loaded 10 my stations.
1-2-2024 10:46:57 : Dbg : Database library : 3.45.0.
1-2-2024 10:46:57 : Inf : Checking local database.
1-2-2024 10:46:57 : Inf : Local database is ready.
1-2-2024 10:46:57 : Inf : DNS Service: listening on: 10.0.0.196:53.
1-2-2024 10:46:57 : Inf : Web Service: listening on: 10.0.0.196:80.
1-2-2024 10:47:11 : Dbg : GET /ytuner/icon?id=MS_9A59E3F94348.
1-2-2024 10:47:21 : Dbg : GET /ytuner/icon?id=MS_F9A0F0A87902.
1-2-2024 10:47:44 : Dbg : GET /ytuner/icon?id=MS_F9A0F0A87902.
1-2-2024 10:48:27 : Dbg : GET /setupapp/denon/asp/BrowseXML/loginXML.asp?token=0.
1-2-2024 10:48:27 : Dbg : GET /setupapp/denon/asp/browsexm2/loginXML.asp?mac=6599DCBBF03940D650CFF54376B1B8FF&fver=1.754333&dlang=eng&startitems=1&enditems=10.
1-2-2024 10:48:27 : Dbg : GET /setupapp/denon/asp/browsexm2/loginXML.asp?mac=6599DCBBF03940D650CFF54376B1B8FF&fver=1.754333&dlang=eng&startitems=1&enditems=10.
1-2-2024 10:48:34 : Dbg : GET /ytuner/my_stations?ytuner=true&mac=6599DCBBF03940D650CFF54376B1B8FF&fver=1.754333&dlang=eng&startitems=1&enditems=10.
1-2-2024 10:48:36 : Dbg : GET /ytuner/my_stations/Pop%20Music?ytuner=true&mac=6599DCBBF03940D650CFF54376B1B8FF&fver=1.754333&dlang=eng&startitems=1&enditems=10.
1-2-2024 10:48:40 : Dbg : GET /ytuner/icon?id=MS_1476918547C2.
1-2-2024 10:48:40 : Dbg : Getting https://www.skyradio.nl/icons/apple-icon.png.
1-2-2024 10:48:40 : Err : Error getting image from: "https://www.skyradio.nl/icons/apple-icon.png"? (Could not initialize OpenSSL library).
1-2-2024 10:48:40 : Err : Unsupported image type: "https://www.skyradio.nl/icons/apple-icon.png".
1-2-2024 10:48:40 : Wrn : Cannot process image from "https://www.skyradio.nl/icons/apple-icon.png".
1-2-2024 10:48:45 : Dbg : GET /ytuner/icon?id=MS_6BCFB64617E6.
1-2-2024 10:48:45 : Dbg : Getting https://www.538.nl/icons/apple-icon.png.
1-2-2024 10:48:45 : Err : Error getting image from: "https://www.538.nl/icons/apple-icon.png"? (Could not initialize OpenSSL library).
1-2-2024 10:48:45 : Err : Unsupported image type: "https://www.538.nl/icons/apple-icon.png".
1-2-2024 10:48:45 : Wrn : Cannot process image from "https://www.538.nl/icons/apple-icon.png".

Docker SSl=1 DNS=1 Loglevel=4:

YTuner v1.2.2 Copyright (c) 2024 Greg P. (https://github.com/coffeegreg)
1-2-24 09:52:58 : Inf : Starting services...
1-2-24 09:52:58 : Inf : Successfully loaded 10 my stations.
1-2-24 09:52:58 : Dbg : Database library : 3.44.2.
1-2-24 09:52:58 : Inf : Checking local database.
1-2-24 09:52:58 : Inf : Local database is ready.
1-2-24 09:52:58 : Inf : DNS Service: listening on: 172.17.0.5:53.
1-2-24 09:52:58 : Inf : Web Service: listening on: 172.17.0.5:80.
1-2-24 09:56:32 : Dbg : GET /setupapp/denon/asp/BrowseXML/loginXML.asp?token=0.
1-2-24 09:56:32 : Dbg : GET /setupapp/denon/asp/browsexm2/loginXML.asp?mac=6599DCBBF03940D650CFF54376B1B8FF&fver=1.754333&dlang=eng&startitems=1&enditems=10.
1-2-24 09:56:32 : Dbg : GET /setupapp/denon/asp/browsexm2/loginXML.asp?mac=6599DCBBF03940D650CFF54376B1B8FF&fver=1.754333&dlang=eng&startitems=1&enditems=10.

first entry is because old stream is loaded.
My Stations on x3200W times out and then empty list.

@coffeegreg
Copy link
Owner

1-2-2024 10:48:34 : Dbg : GET /ytuner/my_stations?ytuner=true&mac=6599DCBBF03940D650CFF54376B1B8FF&fver=1.754333&dlang=eng&startitems=1&enditems=10.

Yes, this is a valid request for "My Stations" content. As mentioned before and as you can see such queries do not reach YTuner running in your container.
Described problem is probably related to the fact that YTuner with default settings presents itself with its internal IP address (172.17.0.5) of the container in the first request. Then your Denon tries to reach that particular IP address but it is not possible. I mentioned this post earlier.
Please try to run your container with command:

sudo docker run --rm --network host -v ~/YTuner:/app/host-shared ytuner:1.2.2

@coffeegreg
Copy link
Owner

coffeegreg commented Feb 1, 2024

I'm also concerned about this line (windows) :

Err : Error getting image from: "https://www.skyradio.nl/icons/apple-icon.png"? (Could not initialize OpenSSL library).

Do you have OpenSSL library files :

  • OpenSSL 1.0.2 and earlier:
    • ssleay32.dll (or libssl32.dll) and libeay32.dll
  • OpenSSL 1.1.x:
    • 64-bit: libssl-1_1-x64.dll and libcrypto-1_1-x64.dll
    • 32-bit: libssl-1_1.dll and libcrypto-1_1.dll
  • OpenSSL 3.x.x:
    • 64-bit: libssl-3-x64.dll and libcrypto-3-x64.dll
    • 32-bit: libssl-3.dll and libcrypto-3.dll

in the YTuner directory ?

@Larsvb0
Copy link
Author

Larsvb0 commented Feb 1, 2024

This works: sudo docker run --rm --network host -v ~/YTuner:/app/host-shared ytuner:1.2.2
Station Images are loading as well.

On Windows I do not have those libraries in the Ytuner directory. I was not aware these were needed.
thanks!

@coffeegreg
Copy link
Owner

This works: sudo docker run --rm --network host -v ~/YTuner:/app/host-shared ytuner:1.2.2
Station Images are loading as well.

I'm glad to know it works for you 👍 Thanks to you, I managed to improve my mini tutorial.

On Windows I do not have those libraries in the Ytuner directory. I was not aware these were needed.

As Beatrice @TheBossME mentioned before #10 (comment) :

We never read readme's 🤣🙈😂🥂👍

Maybe I should include these OpenSSL libraries as standard in the Windows version of YTuner release but I'm not entirely sure if that would violate the OpenSSL license. 🤔

@coffeegreg
Copy link
Owner

I think I can close this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants