Hi All Shiny community!
I just started a new job where they use shiny.
"So, pardon me for any silly question I raise"
The organization have created multiple shiny apps under the same Shiny folder:
Shiny/app1
Shiny/app2
Shiny/app3
All the different apps (app1, app2...) read from the same R library path.
Meaning the old apps using old package versions will have clashes
if I want to use new libraries to develop app12.
I am looking to restructure the architecture so that each app has its own R library path.
So that even apps build in 1922 will still function because they will have its own libraries environment.
What would be the best practice when maintaining old and new apps under the same roof?
Note* other useful info - they are all served using shiny-server on CentOS.
http://virtualmachinename/shiny/app1
http://virtualmachinename/shiny/app2...
My idea is use renv package to encapsulate R version and dependencies particular to each app.
I read that shiny creates one single R session per app and it uses this for all Apps.
Correct me If I am wrong with the following statement:
- renv and shiny will not work on its own and you need to use docker in order to encapsulate each of the apps.
Questions:
- Can shiny and renv sove my issue without docker? or not?
- Are other alternatives such as variables on shiny configuration files that I am not aware and this problem can be solved in a more easy/straight forward way?
- If the implementation is renv and docker would it have any effect on shiny app responsiveness/loading speed? or other collateral issues?
Don't blame me if there are answers out there about how to solve this.
I found lots of good resources but I couldn't figure out how to connect all the pieces together.
what approach should I take and why is the best approach for this specific problem.
Hope you understand,
Thanks a lot!
Shiny regards,
Elia Borras