KIMB-technologies / Radio-API

Silicon Frontier, Frontier Silicon, or Frontier Nuvola (Smart) Internet Radio alternative Web API — 📻💡
https://hub.docker.com/r/kimbtechnologies/radio_api
GNU General Public License v3.0
69 stars 5 forks source link

Docs required how to use project without docker. #23

Closed lokapal closed 11 months ago

lokapal commented 11 months ago

It seems that it would be good to have documentation how to setup this server without docker. It is required, e.g., for OpenWRT routers (routers can handle low load php-based webpages, but they definitely are not designed to use docker ecosystem!)

kimbtech commented 11 months ago

Hi,
unfortunately the system is not meant to run without Docker. There is the quite old version (v1.0) running without Docker. However, v1.0 provides less features (e.g., no multi user) and the setup is quite fiddly, i.e, if you do not have a radio from Hama, you will need to change the source code.

The current version of Radio-API heavily relies on Redis for caching and the embedded NGINX server for proxying requests. This is one of the reasons why I decided to require Docker starting with version 2.0.

In theory, it would be possible to update the code base for supporting plain php environments (including a simple file based replacement of Redis).

tackin commented 11 months ago

A local hosting means very very little request-load by the one or two radios in our local net. OK redis is implemented in the container and does not harm (so I don't complain about it), but for the usual use-cases the solution is used now, surely somewhat "oversized". A little webserver with php-service enabled would do the job just fine.

kimbtech commented 11 months ago

I will consider a possibility to run Radio-API without Docker, Redis and NGINX.

lokapal commented 11 months ago

Thanx a lot for the consideration to make it possible to use Radio-API straight up. Your solution is ready-for-action for VPS/VDS, of course, but it means that user has VPS/VDS (or have at home something with non-proprietary linux inside powerful enough to be docker carrier). The same considerations as for package choice: nginx is a brilliant heavy-load full-fledged server, but I suggest that for Radio-API for personal usage even for very big and noisy home (3-5 radios, 10 users) tinyproxy http://tinyproxy.github.io/ will fit (if we need only in proxying service of nginx). The same consideration for caching service - if it is TOO heavy to unroll - then let it will be redis, but for relatively weak router processors (a few but low frequency cores) multithreaded memcached https://memcached.org/ is definitely a viable option.

P.S. A lot of people will cling to Radio-API in the nearest future - Frontiers Silicon will disable favorites save at the devices from the 2024 March: https://subscriptions.frontier-nuvola.net/portal/en/home

kimbtech commented 11 months ago

I have added the possibility to run without Docker in v.2.7.0. It also does not rely on Redis and I used a proxy written in PHP itself. (However, this proxy seems to be a bit unstable or in other words, it does not work all the times, when NGINX works. But I do not really know why.) Generally, Radio-API should now more or less run on any web server with PHP.

I consider running without Docker as a beta feature, however it ran fine during my local tests. So, hopefully there are not so many bugs.

I added the setup instructions here: https://github.com/KIMB-technologies/Radio-API/blob/master/Setup.md#manual-setup