YunoHost-Apps / my_webapp_ynh

Custom Web app with SFTP access
GNU General Public License v3.0
47 stars 39 forks source link

Add NodeJS server as an alternative to PHP #136

Open limaanto opened 3 months ago

limaanto commented 3 months ago

Problem

I wanted to have an app similar to my_webapp but with nodejs instead of PHP. After hesitating to create a new app, I decided it was better to improve this one instead.

Solution

For this, I added, with the help of @oiseauroch:

The install/remove/backup/restore have been adapted and tested. The upgrade script is updated but not tested The change_url script does not change

It is not possible to have both PHP and NodeJS to keep the scripts simple.

PR Status

Automatic tests

Automatic tests can be triggered on https://ci-apps-dev.yunohost.org/ after creating the PR, by commenting "!testme", "!gogogadgetoci" or "By the power of systemd, I invoke The Great App CI to test this Pull Request!". (N.B. : for this to work you need to be a member of the Yunohost-Apps organization)

oiseauroch commented 3 months ago

!testme

yunohost-bot commented 3 months ago

Fingers crossed! Test Badge

oiseauroch commented 3 months ago

!testme

yunohost-bot commented 3 months ago

Alrighty! Test Badge

alexAubin commented 3 months ago

This sounds cool but i don't know what to think about this ... This raises the question of what really is the scope of this app. Somebody could also add support for Python, Ruby or whatever and we end up in Feature creep hell

To me the support for PHP+SQL db should already justify splitting the half in two apps, once for pure static hosting (possibly with Git actions in the config panel) and the other one for PHP(+SQL). There's also the Flask app, which is somewhat similar but for Python ... Imho we should really discuss wether we want a single mywebapp that fits every use case, or several "my_webapp" that are skeletons that are design for specific technologies

limaanto commented 3 months ago

Hi! Thanks for answering so quickly I agree that this is not as clean as I first though. Just with nodejs, I saw a lot of edge cases that were hard to keep track of, and this will only get worse. Maybe it was a mistake to directly open a PR and we should first discuss this in a dedicated issue. In this case, I'll be happy to participate in the discussion :)