NINAnor / communication_tools

0 stars 1 forks source link

Create workflow to containarize and publish shiny-apps #9

Open jenast opened 1 month ago

jenast commented 1 month ago

Several shiny apps in NINA are containerized already. However, we (might?) need some infrastructure to publish them, as well as some tutorial on how to containerize an app.

You might be working on this already, but I'll start this issue to document any progress. Are you willing to work on this?

We have some money to be spent in 2024, if needed.

frafra commented 1 month ago

Only people in IT drift and miljødata have access to the deployment system, and I am not aware of plans to create an area for researchers to deploy their own containers.

We could provide a template, researchers could use it a blueprint to make their own containers, the usual GitHub CI workflow would build the docker image, and we would take care of deploying it.

We have a way to deploy R Shiny apps, but I guess it might pose some limits on complex application, isn't it? What has been your experience with that?

jenast commented 1 month ago

Nice. Sure, I'm not suggesting researchers deploying all by themselves. But rather a template like you suggest to create a docker with github workflow. A simple tutorial with ready template to get people going with moving their apps to a containerized workflow. I think Datahjelp really would like to move towards that.

I'm not sure of any limits of complex applications. Haven't gotten so far as to deploy anything yet. But for example some apps need access to databases or possibly some large static files that are stored outside the container. Is that what you were thinking of?

frafra commented 1 month ago

Ok, then we could have such a template. Where should we have it? In a standalone repository or further extend https://github.com/NINAnor/nina-template-r?

I am not aware of the network rules for the internal NINA Shiny server, but it should be possible to access to databases and external files. The main limitations I see is that the app is tied to the R version and the set of libraries that are available or can be installed on the server, while a container gives more freedom for that.

jenast commented 3 weeks ago

Probably it makes sense to have a separate repo for this. I'm thinking including minimal shiny example, with docker image build in the github workflow. And a simple readme file on how to start your shiny app development, using the template.