pufferpanel / documentation

Documentation pages
Apache License 2.0
6 stars 60 forks source link

Potentially outdated section #43

Closed PolarianDev closed 1 year ago

PolarianDev commented 1 year ago

Hello,

I was reading through the docs and I saw this: https://docs.pufferpanel.com/en/latest/games/minecraft/dependencies.html#multiple-java-versions

Now, this implies you need to add all the java versions you want to pufferfish, but when looking at the log output above, this configuration page seems to be outdated.

Pufferpanel currently pulls binaries (jre's).

I was debating which repository to submit this to, but having pufferfish pull java binaries is very undesired behaviour, it might make things easier for the end user, but it means having duplicate JVMs on the system. If setting the java paths are supported, it should be added to the docs (I am happy to PR if someone tells me how to do it).

Otherwise I will submit a feature request on the main repository.

LordRalex commented 1 year ago

This is by design. If a user does not want this, they can simply edit their templates and remove the command and change the command to be java. Refer to the docker templates, which do exactly that as well... it uses Docker and uses an image that has Java in it.

The downloader by design, tries to avoid having 20 dupes. Once it has a java17, it uses that. So, at worse. You have a system-level Java, Java 8 by us, Java 11 by us, and Java 17 by us. That's not much space in the grand scheme of things.

This is no different than Docker images.

The page isn't inaccurate, as this is still true before 2.6.

LordRalex commented 1 year ago

Also, this avoids the problem of "my game needs Java X, but even though I had java, it still fails" -> "update your java" -> "how?".

Templates are designed to be edited, and are not a one-size-fits-all. For most users, they are fine. For the 1% that feel like they are not, they can be quickly edited to suit the needs. And in this case, it's a very quick change.

PolarianDev commented 1 year ago

This is by design. If a user does not want this, they can simply edit their templates and remove the command and change the command to be java. Refer to the docker templates, which do exactly that as well... it uses Docker and uses an image that has Java in it.

Ah, I forgot the templates can be edited, quite a large oversight :/

The downloader by design, tries to avoid having 20 dupes. Once it has a java17, it uses that. So, at worse. You have a system-level Java, Java 8 by us, Java 11 by us, and Java 17 by us. That's not much space in the grand scheme of things.

Well, I can not speak for other distributions (I know java is a pain to deal with by many linux distributions) but within Arch Linux, all the Java versions are installed to a conventional path. However, this now means that although openjdk is installed from the AUR, along with other Java versions, your attempt to stop duplication has caused duplication, however it does make it easier to use, and more maintainable for the developers.

Pretty much anything can be packaged for the AUR, maybe the templates may start appearing on the AUR 📦

The joys of package management!

The page isn't inaccurate, as this is still true before 2.6.

But it is within the latest documentation, surely the documentation should be versioned otherwise conflicting comments could appear in the documentation.

As of the latest version (2.6.6), this causes confusion. I will most likely point it out within the archwiki, considering I am the writer of the archwiki page see Pufferpanel.

Also if the templates were in the AUR, it would mean arch users could pull templates as a package, with patches which make them more usable on Arch Linux, which cuts out the guess work for the end user on Arch Linux.

PolarianDev commented 1 year ago

Also, this avoids the problem of "my game needs Java X, but even though I had java, it still fails" -> "update your java" -> "how?".

No offense to the userbase, but if they do not know how to install Java, why are they installing a panel for hosting servers?

But, you do make a good point, it does make the panel a lot more usable, instead of the user having to go through sourcing dependencies (also makes it less distribution specific, some distributions to not package Java, or only package specific versions, and thus could be missing, while pufferpanel handles this inhouse).

Templates are designed to be edited, and are not a one-size-fits-all. For most users, they are fine. For the 1% that feel like they are not, they can be quickly edited to suit the needs. And in this case, it's a very quick change.

^^^ Documentation has a huge section on making and editing templates, so I am sure this will be quite an easy task (especially with the user friendly template editor which has been included within the web interface)

LordRalex commented 1 year ago

However, this now means that although openjdk is installed from the AUR, along with other Java versions, your attempt to stop duplication has caused duplication,

This is entirely subjective. I keep my host system completely clean, and use Docker to handle dependencies. What sense is there to install Java on my host... with the software I use handling it (whether Docker or it even downloading them).

As of the latest version (2.6.6), this causes confusion.

What confusion? You are the only person to ever mention it, let alone even basically complained about it. If it causes confusion, I want more people actually saying that.

Also if the templates were in the AUR,

I have no reason to move templates to be in the AUR, because... the panel has means to get them. And it'd be work, with 0 gain, to put them into the AUR.

Arch is a very niche user-base.

No offense to the userbase, but if they do not know how to install Java, why are they installing a panel for hosting servers?

Some want a simple GUI to stick in front so their friends can start the server. I don't set a large bar to use the software. The point is to make it as easy as we can.

PolarianDev commented 1 year ago

However, this now means that although openjdk is installed from the AUR, along with other Java versions, your attempt to stop duplication has caused duplication,

This is entirely subjective. I keep my host system completely clean, and use Docker to handle dependencies. What sense is there to install Java on my host... with the software I use handling it (whether Docker or it even downloading them).

So you are one of the docker people, I am the polar opposite, I like installation within a system, you do not need a container for security provided that the application permissions are properly managed, that again this is subjective.

As of the latest version (2.6.6), this causes confusion.

What confusion? You are the only person to ever mention it, let alone even basically complained about it. If it causes confusion, I want more people actually saying that.

Maybe because I am the only person who read the page, who knows, but it is confusing, you mention make sure to have a Java environment installed, which means most people see that, install openjdk 17 and don't realise in the logs that Pufferpanel is pulling Java versions itself.

It is worth a note at the bare minimum "as of x version, pufferpanel manages the Java versions itself", just because someone is more observant doesn't mean they are just more easily confused, it is genuinely confusing when you ask people to install Java in your documentation and then you don't need to, the point remains.

I am happy to PR this, but I got a feeling you would just decline it as you do not see any confusion in this page.

Also if the templates were in the AUR,

I have no reason to move templates to be in the AUR, because... the panel has means to get them. And it'd be work, with 0 gain, to put them into the AUR.

Not you, the developer is the developer, packaging is left up to packagers, you are not a one man army, neither do you Maintain pufferpanel-bin on the AUR (I do see the Pufferpanel AUR user is a Co-maintainer though). I was speaking about an idea I had to implement, not you.

Hope that cleared my miscommunication up a little :)

Arch is a very niche user-base.

But also a very important userbase, seen as a lot of modern desktop distributions are arch based. You are the one who priorities simplicity, which means there is a good chance Manjaro users, or other Arch forks, will run this on their home computer for easy server maintaining.

People running Ubuntu servers are most likely going to go with a more robust panel, considering Pufferpanel is not as feature rich, nor provides the billing support some people want.

Although this is me trying to guess at the userbase, there is no metrics saying what distribution a user uses (and should remain that way for privacy reasons) but the AUR package does seem to get decently used, so if "niche" was meant as a small community, that is not the case here.

No offense to the userbase, but if they do not know how to install Java, why are they installing a panel for hosting servers?

Some want a simple GUI to stick in front so their friends can start the server. I don't set a large bar to use the software. The point is to make it as easy as we can.

True, I already highlighted the fact it makes it a lot easier, I was just highlighting the other fact that people may already have Java installed on their system, and you pulling java versions without checking does cause duplication.

But you already told me the solution to this, edit the templates.

One thing I would like to know is what directory are templates stored under?

Thanks for the help by the way :)

LordRalex commented 1 year ago

One thing I would like to know is what directory are templates stored under?

They are not stored in directories.

PolarianDev commented 1 year ago

They are not stored in directories.

How they stored then, within the database?