All Projects → clevr-dev → Shinystudio

clevr-dev / Shinystudio

Licence: mit
A fully Dockerized, self-hosted development environment for teams. Develop where you serve.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
r
7636 projects
powershell
5483 projects

Projects that are alternatives of or similar to Shinystudio

learning R
List of resources for learning R
Stars: ✭ 32 (-84.31%)
Mutual labels:  shiny, rstudio
shiny.fluent
Microsoft's Fluent UI for Shiny apps
Stars: ✭ 170 (-16.67%)
Mutual labels:  shiny, rstudio
shinyAppTutorials
a collection of shiny app demonstrations 📊
Stars: ✭ 50 (-75.49%)
Mutual labels:  shiny, rstudio
Shinyapps links
A collection of Shiny applications (links shared on Twitter)
Stars: ✭ 109 (-46.57%)
Mutual labels:  shiny, rstudio
Shinydashboard
Shiny Dashboarding framework
Stars: ✭ 718 (+251.96%)
Mutual labels:  shiny, rstudio
Shiny
Easy interactive web applications with R
Stars: ✭ 4,507 (+2109.31%)
Mutual labels:  shiny, rstudio
VOSONDash
R Shiny application for interactive analysis of networks created by vosonSML.
Stars: ✭ 44 (-78.43%)
Mutual labels:  shiny, rstudio
Awesome Rshiny
An awesome R-shiny list!
Stars: ✭ 523 (+156.37%)
Mutual labels:  shiny, rstudio
Docker Images
Out-of-box Data Science / AI platform | AI/数据科学的瑞士军刀
Stars: ✭ 25 (-87.75%)
Mutual labels:  vscode, rstudio
Rtutor
Creating interactive R Problem Sets. Automatic hints and solution checks. (Shiny or RStudio)
Stars: ✭ 141 (-30.88%)
Mutual labels:  shiny, rstudio
Vscode Jest
The optimal flow for Jest based testing in VS Code
Stars: ✭ 2,357 (+1055.39%)
Mutual labels:  vscode
Codetour
VS Code extension that allows you to record and playback guided tours of codebases, directly within the editor.
Stars: ✭ 1,139 (+458.33%)
Mutual labels:  vscode
Bookdownplus
The easiest way to use R package bookdown for writing varied types of books and documents
Stars: ✭ 198 (-2.94%)
Mutual labels:  rstudio
Metals Vscode
Visual Studio Code extension for Metals
Stars: ✭ 200 (-1.96%)
Mutual labels:  vscode
Vscode Java Test
Run and debug Java test cases in Visual Studio Code.
Stars: ✭ 177 (-13.24%)
Mutual labels:  vscode
Sonarlint Vscode
SonarLint for Visual Studio Code
Stars: ✭ 197 (-3.43%)
Mutual labels:  vscode
Vscode Chrome Debug
Debug your JavaScript code running in Google Chrome from VS Code.
Stars: ✭ 2,126 (+942.16%)
Mutual labels:  vscode
Vscode Journal
Lightweight journal and simple notes support for Visual Studio Code
Stars: ✭ 174 (-14.71%)
Mutual labels:  vscode
Vscode Live Frame
Run your web app inside VS Code
Stars: ✭ 173 (-15.2%)
Mutual labels:  vscode
Addon Vscode
Visual Studio Code - Home Assistant Community Add-ons
Stars: ✭ 201 (-1.47%)
Mutual labels:  vscode

ShinyStudio

A Docker orchestration of open-source solutions to facilitate secure, collaborative development.

Overview

The ShinyStudio project is an orchestration of various open-source solutions with the goal of providing:

  • a secured, collaborative development environment for R, Python, PowerShell, and more.
  • a secured, convenient way to share apps and documents written in Shiny, RMarkdown, plain Markdown, or HTML.
  • easily reproducible, cross-platform setup leveraging Docker for all components.

There are two distributions of ShinyStudio, the image and the stack, explained below.

ShinyStudio Image

The ShinyStudio image, hosted on DockerHub, builds upon the Rocker project to include:

The image is great for a personal instance, a quick demo, or the building blocks for a very customized setup.

Get Started with the Image

ShinyStudio

ShinyStudio Stack

The ShinyStudio stack builds upon the image to incorporate:

Each component of the stack is run in a Docker container for reproducibility, scalability, and security. Only the NGINX port is exposed on the host system; all communication between ShinyProxy and other components happens inside an isolated Docker network.

Get Started with the Stack

Getting Started

The setup has been verified to work on each of Docker (for Linux) and Docker Desktop (for Mac and Windows).

Note: when upgrading ShinyStudio, please setup from scratch and migrate existing content/settings afterward.

Note: Setup must be run as a non-root user.

Image

To download and run the ShinyStudio image from DockerHub, first, create a docker network named shinystudio-net:

docker network create shinystudio-net

Then, execute docker run in the terminal for your OS:

  • Bash (Linux/Mac)
docker run -d --restart always --name shinyproxy \
    --network shinystudio-net \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e USERID=$USERID \
    -e USER=$USER \
    -e PASSWORD=password \
    -e CONTENT_PATH="${HOME}/ShinyStudio" \
    -e SITE_NAME=shinystudio \
    -p 8080:8080 \
    dm3ll3n/shinystudio
  • PowerShell (Windows)
docker run -d --restart always --name shinyproxy `
    --network shinystudio-net `
    -v /var/run/docker.sock:/var/run/docker.sock `
    -e USERID=1000 `
    -e USER=$env:USERNAME `
    -e PASSWORD=password `
    -e CONTENT_PATH="/host_mnt/c/Users/$env:USERNAME/ShinyStudio" `
    -e SITE_NAME=shinystudio `
    -p 8080:8080 `
    dm3ll3n/shinystudio

Notice the unique form of the path for the CONTENT_PATH variable in the Windows setup.

Once complete, open a web browser and navigate to http://<hostname>:8080. Log in with your username and the password password.

Stack

The stack distribution of ShinyStudio is delivered through the GitHub repo and introduces two additional requirements:

HTTPS is configured by default, so SSL/TLS certs are required in order for the stack to operate. Use the provided script certify.sh (certify.ps1 for Windows) to create a self-signed certificate, or to request one from LetsEncrypt (more on that).

Minimal setup:

# copy the setup files.
git clone https://github.com/dm3ll3n/ShinyStudio

# enter the directory.
cd ShinyStudio

# run certify to generate self-signed cert.
./certify.[sh/ps1]

Now, browse to http://<hostname> (e.g., http://localhost) to access ShinyStudio. On first launch, you will need to accept the warning about an untrusted certificate. See the customized setup to see how to request a trusted cert from LetsEncrypt.

The default logins are below. See the customized setup to see how to add/remove accounts.

username password
user user
admin admin
superadmin superadmin

Customized setup:

There are three files essential to a customized configuration:

  1. .env

The docker-compose environment file. The project name, content path, and HTTP ports can be changed here.

Note that Docker volume names are renamed along with the project name, so be prepared to migrate or recreate data stored in Docker volumes when changing the project name.

  1. application.yml

The ShinyProxy config file. Users can be added/removed here. Other configurations are available too, such as the site title and the ability to provide a non-standard landing page.

Using the provided template, you can assign users to the following groups with tiered access:

  • readers: can only view content from “Apps & Reports”, “Documents”, and “Personal”.
  • admins: can view all site content and develop content with RStudio and VS Code.
  • superadmins: can view and develop site content across multiple instances of ShinyStudio. Can also manage all user files.

Review the ShinyProxy configuration documentation for all options.

  1. nginx.conf

The NGINX config file. Defines the accepted site name and what ports to listen on.

If you change the ports here, you must also change the ports defined in the .env file. Also, if you change the domain name, you must provide/generate a new certificate for it.

  1. certify.[sh/ps1]

The script used to generate a self-signed cert, or to request a trusted cert from LetsEncrypt.

With no parameters, certify generates a self-signed cert for example.com (the default domain name defined in nginx.conf).

To generate a self-signed cert with another domain name, first edit the domain name in nginx.conf. Afterward, generate a new cert with:

./certify.sh <domain name>

# e.g., ./certify.sh www.shinystudio.com

If your server is accessible from the web, you can request a trusted certificate from LetsEncrypt. First, edit nginx.conf with your domain name, then request a new cert from LetsEncrypt like so:

./certify.sh <domain name> <email>

# e.g., ./certify.sh www.shinystudio.com [email protected]

CertBot, included in the stack, will automatically renew your LetsEncrypt certificate.

To manage the services in the stack, use the native docker-compose commands, e.g.:

# stop all services.
docker-compose down

# start all services.
docker-compose up -d

Develop

Open either RStudio or VS Code and notice two important directories:

  • __ShinyStudio__
  • __Personal__

Files must be saved in either of these two directories in order to persist between sessions.

These two folders are shared between instances RStudio, VS Code, and Shiny Server. So, creating new content is as simple as saving a file to the appropriate directory.

Tools

The ShinyStudio image comes with…

  • R
  • Python 3
  • PowerShell

…and ODBC drivers for:

  • SQL Server
  • PostgresSQL
  • Cloudera Impala.

These are persistent because they are built into the image.

Persistent
__ShinyStudio__ directory Yes
__Personal__ directory Yes
Other directories No
R Libraries Yes
Python Packages Yes
PowerShell Modules Yes
RStudio User Settings Yes
VS Code User Settings Yes
Installed Apps No
Installed Drivers No

References

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].