Coder Social home page Coder Social logo

soi-ktogbe / azure-redcap-paas Goto Github PK

View Code? Open in Web Editor NEW

This project forked from microsoft/azure-redcap-paas

0.0 0.0 0.0 2.65 MB

Automated deployment of REDCap with Azure Blob storage as the storage back-end

License: MIT License

Shell 5.42% PHP 0.78% PowerShell 3.56% Pascal 14.37% HTML 0.97% Smarty 0.04% HCL 26.59% Bicep 48.27%

azure-redcap-paas's Introduction

REDCap Deployment on Azure

Overview

This repository provides you with the necessary resources and guidance to deploy the REDCap application on Microsoft’s Azure cloud platform. This allows you to leverage the power of cloud computing for your research data management needs.

This template automates the deployment of the REDCap solution into Azure using managed PaaS resources. The template assumes you are deploying a version of REDCap that supports direct connection to Azure Blob Storage. If you deploy an older version, deployment will succeed but you will need to manually provision NFS storage in Azure, and delete the new storage account. For NFS, consider:

Deployment Options

  • Manual deployment

    • For manual deployment process, please navigate here
  • CI/CD Deployment with GitHub

    • Information pending
  • CI/CD Deployment with Azure DevOps

    • Information pending

Details

This template automates the deployment of the REDCap solution into Azure using managed PaaS resources. The template assumes you are deploying a version of REDCap that supports direct connection to Azure Blob Storage. If you deploy an older version, deployment will succeed but you will need to manually provision NFS storage in Azure, and delete the new storage account. For NFS, consider:

To deploy the REDCap source to Azure App Service, you must supply your REDCap Community site credentials. The deployment automation will use them to pull the REDCap source directly from the community site.

NOTE: These values will be stored within the Azure App Service as configuration settings. Once your deployment has succeeded, you should navigate to your Azure App Service resource and delete or clear the values so that they aren't stored here.

Azure App Service

https://projectredcap.org/wp-content/resources/REDCapTechnicalOverview.pdf

  • The template deploys the following:
    • Azure Web App
    • Azure DB for MySQL (1)
    • Azure Storage Account
    • Key Vault
    • Private DNS zones
    • Virtual Network
    • Application Insights

(1) Review https://learn.microsoft.com/azure/mysql/flexible-server/concepts-service-tiers-storage for details on available features, regions, and pricing models for Azure DB for MySQL.

Setup

This template will automatically deploy the resources necessary to run REDCap in Azure using PaaS (Platform-as-a-Service) features.

IMPORTANT: The "Workload Name" you choose will be re-used as part of the storage, website, and MySQL database name. Make sure you don't use characters that will be rejected by MySQL.

After the template is deployed, deployment automation will download the REDCap ZIP file you specify, and install it in your web app. It will then automatically update the database connection information in the app.

NOTE: The database will not be initialized; therefore, REDCap will not be usable until then. See the Post-Setup section below on how to initialize the database.

With the download and unzipping of REDCap application, the entire operation will take between 12-16 minutes.

If you need to connect to the MySQL database using the MySQL client, you will need to deploy a Virtual Machine with Bastion or AVD to the virtual network to run the client.

The database user name defaults to sqladmin and the password is a random string of 25 characters. The password is stored in Key Vault.

Post-Setup

After the deployment and installation of REDCap has completed, you will need to initialize the database manually. The application gets deployed via Kudu which calls the deploy.sh script. After deployment, the postbuild.sh script extracts the MySQL commands from REDCap's installation page (install.php) and drops the output into a file called install.sql. Both install.sh and install.sql files will be dropped into /home directory.

Once the source control deployment of REDCap has completed, you will need to SSH into the running container:

ssh

Execute the following command from the /home directory:

bash install.sh

ssh

It will take a few minutes to execute the SQL.

Once you regain access to the console, you can navigate to the root of your app service and confirm everything shows green on the REDCap Configuration Check page - with the exception of CronJob status which you may have to manually invoke. If anything displays on that page in red or yellow, it is recommended that you perform a "Restart" of the Azure "App Service". This needs to be done due to the fact that some necessary server environment settings get changed after the initial deployment, but restarting the App Service will load the service with the intended settings.

Note about REDCap "Easy Upgade"

The "Easy Upgrade" feature in REDCap 8.11.0 and later is currently not supported when deploying a REDCap instance on Azure. Support for "Easy Upgrade" on Azure is expected to come at a later time in a future REDCap release.

Resources

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://opensource.microsoft.com/cla/.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

azure-redcap-paas's People

Contributors

bretthackermsft avatar pauldotyu avatar taylorr4 avatar soi-ktogbe avatar matheuscarboni avatar svenaelterman avatar kalalvishal avatar microsoft-github-policy-service[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.