shinyproxy basic basics (+ some general web knowledge) - web

The problem
While searching for ways to deploy shiny apps I stumbled across ShinyProxy. From what I understand it's an alternative for ShinyServer. However, I lack some (very basic) knowledge to follow the guide provided.
The questions
Can ShinyProxy be installed just on any bought/rented server? Do I need to preinstall some other software?
Where do I type in the commands provided in the ShinyProxy guide?
Does Docker need to be installed on the server or is it a tool to deploy to the server and is thus installed locally?
The ShinyProxy guide misses a point about installing ShinyProxy. Why? Is it not installed (or is installation so obvious)?
I couldn't actually find instructions on how to run a shiny app with ShinyProxy.

The authors of ShinyProxy can probably provide a much better answer, but here is my understanding:
Your server needs to support Java 8 and Docker (or you can install Java 8 and Docker on your server).
Assuming you logon to your server via SSH, the commands will be typed in the SSH terminal.
Yes Docker needs to be installed on the server
It appears that ShinyProxy does not need to be installed. You just need to download it (the shinyproxy-0.5.0.jar file) to a location on the server, and then run java -jar shinyproxy-0.5.0.jar (in your SSH terminal)
To run a Shiny app, you need to package it as an R package first, then build a Docker image for the R package. The app is then actually running inside a Docker container. You also need a configuration file to tell ShinyProxy where to look for your Docker image. Example is here https://github.com/openanalytics/shinyproxy-demo

Related

How to install Node JS in Docker with a Windows Container dotnet/aspnet:6.0?

Seems like something that should be fairly simple, but since windows containers are using nano and don't have msiexec.exe to install packages with I'm not finding a well established alternative after googling for several hours now. So, how would one best do the below in a nano based windows container?
RUN msiexec.exe /i https://nodejs.org/dist/v18.7.0/node-v18.7.0-x64.msi /quiet
What I'm using:
Windows Docker Containers
dockerfile VS makes, which has a base of dotnet/aspnet:6.0 and uses dotnet/sdk:6.0 in the build stage
Base stage of dockerfile where I want to do my install of node at:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
# install node for npm usage
RUN msiexec.exe /i https://nodejs.org/dist/v18.7.0/node-v18.7.0-x64.msi /quiet
For what it's worth, I'm use to Linux based containers and this is the first time I've tried out using Windows ones. Please correct me on anything I may have misspoken on or misrepresented.
Welcome to the Windows world! :)
On Windows, .Net has two flavors: .Net and .Net Framework. The former (.Net) was previously called .Net Core and since its renaming to .Net it has caused some confusion.
To clarify:
.Net Framework is the legacy framework on which .Net was only available in Windows.
.Net (formerly called .Net Core) is available on Windows and Linux. At first, .Net on Windows was only available on Nano Server base container images. However, recently the team made it available on the Server Core image, which supports a wider range of pre-requisites, such as MSIEXEC.
My suggestion to you is to look at the list of available tags for the image you want to use here: https://mcr.microsoft.com/en-us/product/dotnet/aspnet/tags
Also, look at the documentation of Windows containers. There's a particularity of Windows containers which is a version match requirement between container host and container. More details here: https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility?tabs=windows-server-2022%2Cwindows-11-21H2

How to install dependent binaries on Azure App Service with Linux?

I have a spring boot application that I am running on Azure App Service (Linux). My application has a dependency on a binary and needs it to be present on the system. How do I install it on my App service?
I tried the following two options:
Did ssh via Kudu and installed the package ($ apk add package). But the changes are not persisted beyond /home. The dependencies were installed in other folders and when the app service was re-deployed all those dependencies were gone
Used the post deployment hook to run the command "$ apk add package" to install once the deployment finishes. This script is run as can be seen from the custom log statements but still i do not see the installed package. Even when is use apt-get it says "unable to lock administration directory"
Using a statically compiled binary is not an option for me since that has its own issues.
Thanks
For the Tomcat, Java SE and WildFly apps on App Service Linux, you can create a file at /home/startup.sh and use it to initialize the container in any way you want (Example: you can install the required packages using this script).
App Service Linux checks for the presence of /home/startup.sh at the time of startup. If it exists, it is executed. This provides web app developers with an extension point which can be used to perform necessary customization during startup, like installing necessary packages during container startup.
I think this is a common problem with Linux on Azure.
I recommend having a step back and consider one of the following options.
Run your application in a container that has all the dependencies
you are looking for.
Run your application on Linux VM IaaS instead
of Azure App Service (Linux),PaaS.
Run your application on Windows OS PaaS and add extension for your dependency.(Most likely you won't run into this problem when using Windows OS)
While I understand that none of them might be acceptable by you, but I have not found a solution for that problem in those specific circumstances.

Hyperledger Fabric setup

I would like to setup Hyperledger Fabric on an Ubuntu machine with docker (docker-compose up). Is it possible to run the chaincode and nodejs code from another system (Mac system), as I already have Go and nodejs ready on the Mac.
Please help me with this query.
you can use same environment in different systems. This is the main reason to choose docker and docker-compose.
Just follow steps. Please confirm the version of tools.
To run on another system, you only have to simply build the image of your current hyperledger package on current system(Ubuntu). and use this image on another system(MAC).
Yes you can totally do that. Use this example: https://github.com/hyperledger/fabric-sdk-node/tree/master/examples/balance-transfer
Run docker-compose in your ubuntu machine. Update the app config.json and /app/network-config.json with ubuntu machine IP and make sure required ports are opened.
Run app on your mac.

How to run Shiny Server on linux using remote acces?

I'm trying to put in production my shiny app. I can run my shiny app locally on my Windows machine, from R. However, since we need to use Linux to deploy the app over the web, we decided to use a Linux server for that. We access this Linux server remotely, from our local machines (running Windows).
I followed the instruction at the RStudio website, and successful installed Shine Server on the Linux server. Its's running on it. I don't know what to do next. So, my question is: what should I do next? Please, remember that I access the Linux server remotely (using puty). Also, I have almost no knowledge of Linux.
Any guidance on what to do next is very welcome.
Some info that may be useful:
I use a Ubuntu 12.04.3
I ran as root (I think, but I can use sudo, for sure).
Another person has access to this server besides me.
We use R 3.0.2
you can follow the instructions here:
https://groups.google.com/forum/#!msg/shiny-discuss/NuZp0ziVXvw/BXHcIoXThnoJ
Short answer:
# this is all one line
sudo wget\
https://raw.github.com/rstudio/shiny-server/master/config/upstart/shiny-server.conf\
-O /etc/init/shiny-server.conf
# Start the server
sudo start shiny-server
Then just open a browser and point to it

Meteor support developing on Windows

Does Meteor support developing on Windows? I did not see any downloads or mention of Windows in the docs.
The "Quick Start" assumes you are on *Nix OS.
Meteor 1.1+: official Windows support launched on https://win.meteor.com/
Meteor 1.0+: there is an official Windows preview.
Meteor 0.8 and older: see http://win.meteor.com/
Proof, Meteor running on Windows.
Edit: See Tom's answer.
Old answer below.
No, this is not yet supported on windows. If you try to install in you will receive the following error:
Sorry, this OS is not supported yet.
As a workaround you can run a linux box in a VM and use that as a server to run meteor but still do all development from within windows. I've done this using VirtualBox to run Ubuntu with no GUI. Here's the steps:
Install VirtualBox
Grab Ubuntu ISO
Setup Ubuntu VM using VirtualBox (just follow the wizard steps)
Install samba on VM to enable file access from windows. This article was a great help.
Install ssh using Ubuntu Software Center. This was helpful.
Shutdown VM and run from a DOS prompt using vboxheadless -startvm "VM Name"
You can then use a ssh client (I'm using cygwin) to connect to the box to run commands e.g. ssh user#box_ip_address
Can browse and edit files using windows file share e.g. \\box_ip_address\share
Can run meteor apps within local browser, just replace the localhost in the address that meteor assigns with the ip address of the box.
I just tried to install it with curl on Windows 7, and got:
Sorry, this OS is not supported yet.
A substantial update as the existing answers to this question are very out of date.
Official Windows support can be found at https://github.com/meteor/meteor/wiki/Preview-of-Meteor-on-Windows
Unofficial Windows support for Meteor can be found on http://win.meteor.com/
There are 3 solutions outlined on win.meteor.com, one native MSI installer, and 2 virtualized solutions based on Vagrant:
1) MSI Installer:
Stephen Darnell has picked up where Tom Wijsman graciously left off.
This solution is the most straight forward way to get Meteor running
on Windows with an MSI Installer provided. There are some trade-offs
because this is a fork and can lag behind the latest version as
Stephen can update to and test the latest version.
2) Vagrant Shell Provisioning
Gabriel Pugliese has posted a guide for how to provision Meteor on
Linux with Vagrant's Shell Provisioning. These may be more accessible
to users familier with Linux and Shell scripts. This solution is
easier to tweak through the straight forward shell commands than the
Chef alternative.
3) Vagrant Chef Provisioning
Matthew Sullivan is maintaining a set of Vagrant files, Chef cookbook,
and guide for provisioning Meteor on Linux with Vagrant. This Chef
solution is a slightly more automated and configurable than the shell
solution, however likely not as simple to tweak beyond the provided
configuration parameters as the Shell solution.
GitHub Repos and details can be found on win.meteor.com. The three authors are very responsive on the Meteor-talk Google Group.
A bit of history:
Unofficial Windows support for Meteor was started by Tom Wijsman, and was supported by Tom until 0.5.9. Versions 0.6.0 and later are by Stephen Darnell, Gabriel Pugliese, and Matt Sullivan.
I do not see Nitrous.io mentioned here.
I am using Nitrous.io together with Nitrous Desktop, which allows you to use your favourite text editor (in my case, Sublime Text).
There is a quick tutorial here and Discover Meteor also deals with this in chapter 2.
It sounds like Windows is not supported yet. If you want to play with it, I would suggest grabbing VirtualBox and installing your favorite flavor of Linux on it.
I downloaded the above .msi installer and installed to c:\Meteor
Add the c:\Meteor directory you just made to your PATH environment variable.
Run the following command: npm install Meteor-Test-Installer
Add the C:\Meteor\bin\node_modules\npm\bin directory you just made to your PATH environment variable.
Log below from my DOS screen:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\mike>cd\
C:\>cd meteor
C:\Meteor>cd C:\Meteor\bin\node_modules\npm\bin
C:\Meteor\bin\node_modules\npm\bin>meteor create try-meteor
try-meteor: created.
To run your new app:
cd try-meteor
meteor
C:\Meteor\bin\node_modules\npm\bin>curl
‘curl’ is not recognized as an internal or external command,
operable program or batch file.
C:\Meteor\bin\node_modules\npm\bin>cd try-meteor
C:\Meteor\bin\node_modules\npm\bin\try-meteor>meteor
[[[[[ C:\Meteor\bin\node_modules\npm\bin\try-meteor ]]]]]
Initializing mongo database… this may take a moment.
Running on: http://localhost:3000/
Open http://localhost:3000/ in broswer ... Voila !!
Hello World!
Welcome to try-meteor.
If you get error like this below :
{
[[[[[ D:\sms\Apps\Meteor\bin\node_modules\npm\bin\try-meteor ]]]]]
Unexpected mongo exit code 127. Restarting.
Unexpected mongo exit code 127. Restarting.
////////////////////////////////////////
////////////////////////////////////////
meteor is out of date. Please run:
meteor update
////////////////////////////////////////
////////////////////////////////////////
Unexpected mongo exit code 127. Restarting.
Can't start mongod. Check for other processes listening on port 3002 or other me
teors running in the same project.
}
Update the MondoDB folder with the latest mogodb files from the mongodb site.
I've found that new coders who are also new to Meteor might have installed it correctly, but are having trouble figuring out how to open and run it. So I'll just address that issue in this post.
1) I assume you went here: http://win.meteor.com/ and downloaded the MSI installer
2) I assume you then created a newapp in meteor and then ran meteor
3) If steps 1 & 2 are complete, you should see this in your command line:
Initializing mongo database... this may take a moment.
=> Meteor server running on: http://localhost:3000/
4) Open Chrome and type in the local host address: http://localhost:3000/
5) Open your newapp folder - should be located in your Meteor folder wherever its installed on your hard drive
6) Open your newapp.html, newapp.css, and newapp.js files in your favorite editor (like Sublime Text 2)
7) Begin editing these files as you like and watch your page automatically update, as Meteor is designed to do.
Voila!! You're building with Meteor. Enjoy!!
As of two days ago, a preview version is available here:
https://github.com/meteor/meteor/wiki/Preview-of-Meteor-on-Windows
Recent check of their site and checking their FAQ, you'll find the Meteor Development Roadmap. They host it on Trello and after the 1.0 launch, you'll see "Official Windows Support." So, it's on the map - now we wait!
https://trello.com/board/meteor-roadmap/508721606e02bb9d570016ae
Using linux in VM you probably want meteorite which isn't easy if you are as bad as I am to Linux... Here's how (thank you johntday Unable to install meteorite on Ubuntu VM):
Here are my Install Steps
Update and Upgrade your Ubuntu Depending on how up-to-date your image is, this may take a while.
sudo apt-get update && sudo apt-get upgrade
Install curl sudo apt-get install curl
Install node http://lucidservices.com/2013/09/17/install-node-on-ubuntu/
Install meteor curl https://install.meteor.com | sh
Install meteorite sudo -H npm install -g meteorite
If you have problems setting a high screen resolution, here's a fix:
http://youtu.be/t36wXUu1UtQ

Resources