MichaIng / DietPi

Lightweight justice for your single-board computer!
https://dietpi.com/
GNU General Public License v2.0
4.8k stars 494 forks source link

finding available ports #6612

Open dirkhh opened 1 year ago

dirkhh commented 1 year ago

In a different thread @MichaIng mentioned that a complete list of the used ports can be found in .github/workflows/dietpi-software.bash I tried to understand what this script might be doing and how it's used, but with the level of commenting and the density of shell code I failed (side remark... this project has a very, very steep learning curve for people coming in - and almost no developer facing documentation that I was able to find so far).

A few questions/comments based on that script and the comment linked above (a) .github/workflows/dietpi-software.bash doesn't mention the ports used by the ADS-B Feeder (1090-1099) -- should it? (b) it does mention port 80 for software 141 - which ADS-B Feeder doesn't use (c) that caused me to turn around an search for 141, and I realize that .update/patches seems to force uninstall 141 (d) and that .meta/dietpi-survey_report appears to list 141 as "Spotify Connect Web" which makes me think that maybe I didn't pick the right number for the ADS-B Feeder as 141 clearly isn't as free as I believed.

Should I submit a PR to change the software number allocated for ADS-B Feeder? What number should be changed to? Should I submit a PR to change the dietpi-survey_report? Should someone who understands .update/patches and .github/workflows/dietpi-software.bash address what is currently incorrect with respect to software 141?

I'm happy to do any and all of that - but I'm not sure what the correct action would be. And I'm not sure I wouldn't inadvertently break something else if I did.

MichaIng commented 1 year ago

It could make sense to add a commented entry for ADS-B Feeder to the script, with the ports and the service name added for testing. However, currently it cannot work as Docker cannot start within the test containers. We'd first need to switch to network-capable containers, i.e. with a dedicated guest network Docker can edit. Or, what I have not checked yet, probably it is possible to grant Docker/the container write access to the host network via CAP_NET_ADMIN or so. I needs to add the veth interfaces, routes and iptables rules, and this should not break the host's network. But cleaner would be a dedicated guest network, of course.

Spotify Connect Web was software ID 141 before, and has been removed recently. No idea why it is still in the script adding MariaDB, PHP and webserver tests. That entry is a mistake or typo, which I just removed. ... ah now I know: MediaWiki was added in the same release where Spotify Connect Web was added, and at fist added with ID 141. But as we cannot remove and add the same software ID within one release, it was changed. Obviously it was then forgotten to change the test script entry as well.

And yes, when a software option is removed, the related install state entry is removed as well. The related software ID needs to be empty/unused for at least one DietPi version before it can be re-used for a new one, so that the install state removal does not collide.

dietpi-survey_report contains all software names per DietPi version, so that on the resulting page it is differentiated between e.g. Spotify Connect Web installs on systems with older DietPi versions and ADS-B Feeder from v8.22+ DietPi systems. The survey upload contains the software ID, not the name, hence the hassle: https://dietpi.com/survey/#software