Shinyhero

An end-to-end pipeline for the DevOps-illiterate.

Project preview

What it is:

  • A template for building Shiny applications and hosting them on Heroku (or other PaaS)
  • An automated pipeline for the development lifecyle of an application

What I did:

  • Created a minimal example of a Shiny application locally
  • Set up renv to responsibly handle package dependencies
  • Wrote a Dockerfile to containerize the app for hosting
  • Wrote a .travis.yml to automate the CI/CD process to Heroku on each push to Github

What I learned:

  • PaaS
    • Heroku
  • DevOps
    • Docker
    • Travis CI
    • CI/CD pipeline
    • Container Registries
  • Package management
    • Renv

Why it interests me:

  • Shiny applications are not necessarily written by people with experience in DevOps or web infrastructure
  • Shinyapps.io allows Shiny developers to deploy easily, but with many restrictions at the free tier
  • Rather than learning another language or framework, this tool allows R users more freedom in deployment
  • I struggled to understand how to get these tools to work together and want to contribute my solution to the R ecosystem