{"id":18272301,"url":"https://github.com/maximrouiller/msp001","last_synced_at":"2025-09-17T11:32:55.114Z","repository":{"id":145025775,"uuid":"245006748","full_name":"MaximRouiller/msp001","owner":"MaximRouiller","description":"MSP001 Train The Trainer on How to Host a Node.js API on Azure with GitHub Actions","archived":false,"fork":false,"pushed_at":"2020-04-13T05:21:10.000Z","size":22,"stargazers_count":10,"open_issues_count":6,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-01T07:25:20.078Z","etag":null,"topics":["azure","nodejs","presentation-materials","training-materials"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaximRouiller.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-04T21:22:57.000Z","updated_at":"2022-07-06T06:36:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"f02b5e68-3556-46f8-ba91-46c1f265032c","html_url":"https://github.com/MaximRouiller/msp001","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximRouiller%2Fmsp001","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximRouiller%2Fmsp001/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximRouiller%2Fmsp001/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximRouiller%2Fmsp001/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaximRouiller","download_url":"https://codeload.github.com/MaximRouiller/msp001/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233378904,"owners_count":18667392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","nodejs","presentation-materials","training-materials"],"created_at":"2024-11-05T11:41:52.995Z","updated_at":"2025-09-17T11:32:49.735Z","avatar_url":"https://github.com/MaximRouiller.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# MSP001: How to host a NodeJS website on Azure\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-3-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\n## Session Abstract\n\nWe are in a cloud world. There are so many options on how to do deploy something on Azure that it can be confusing. In this session, we're going to walk through one of the simplest scenario on how to get something in the cloud the right way. We're going to go through together on how to host a NodeJS API on Azure with GitHub Actions.\n\nAfter this session, you will be able to create an API, create the Azure resource's, and automatically deploy that application to work with teammates.\n\n## Table of Content\n\n| Resources         | Links                            |\n|-------------------|----------------------------------|\n| PowerPoint        | - [Presentation](https://mspttt.azureedge.net/content/msp001/presentations/msp001.pptx) |\n| Videos            | - [Full session](https://mspttt.azureedge.net/content/msp001/videos/msp001.mp4) |\n| Demos             | - [Demo 1 - Hello World](./demos/README.md#demo-1---hello-world) \u003cbr/\u003e- [Demo 2 - Node.js API](./demos/README.md#demo-2-nodejs-api) \u003cbr/\u003e- [Demo 3 - Pushing to Azure](./demos/README.md#demo-3---pushing-to-azure) |\n\n## How To Use\n\nWelcome!\n\nWe're glad you are here and look forward to your delivery of this amazing content.\n\nAs a new(or veteran) presenter, we'll give you all the necessary content to ensure that you give a session of quality! This guide will provide you a full run-through of the presentation. This presentation is a creation of the Cloud Advocates team.\n\nAlong with the video of the presentation, this document will link to all the assets you need to successfully present including PowerPoint slides and demo instructions \u0026 code.\n\n1. Read document in its entirety.\n2. Watch the video presentation\n3. Ask questions\n\n## Get Started\n\nThis training repository is divided in to the following sections:\n\n| [Slides](#slides) | [Demos](./demos/README.md) |\n|-------------------|---------------------------|\n| 16 slides - 13 minutes, | 3 demos - 25 minutes\n\n [Full-length video can be viewed here](https://mspttt.azureedge.net/content/msp001/videos/msp001.mp4).\n\n## Slides\n\nThe slides are divided in four sections:\n\n Section                                   | Slides        | Notes\n-------------------------------------------|---------------|------\nIntroduction and prerequisites             | 1-3           |\nAzure hosting options, static vs dynamic   | 8-10          |\nAppService                                 | 11-12         |\nConclusion                                 | 15-16         |\n\n\n\u003c!-- ## Deployment / Preparation\n\n\u003e**What's Here?** Deploying the demo environment on Azure - including the prerequisites.\n\n[Instructions and prerequisites are outlined here](deployment/README.md). \nNo deployments required for this session --\u003e\n\n## Demos\n\n\u003e What's Here? Pre-delivery preparation, stage ready videos, required files (such as JSON templates), and walk-through videos\n\nDetailed explanations of each demonstration associated with this presentation can be found in this section. These are technical demonstrations that utilize a number of tools both in and out of Azure. [You can get a high level overview of the tools and how we will be using them here](.demos/README.md).\n\n| Demo                                            | Minutes | Video\n--------------------------------------------------|---------|-----------------\n|  [1 - Hello World](./demos/README.md#demo-1---hello-world)      | 5:22    | [Download video](https://mspttt.azureedge.net/content/msp001/videos/msp001-Demo1.mp4)\n|  [2 - NodeJS API](./demos/README.md#demo-2-nodejs-api)       | 7:50    | [Download video](https://mspttt.azureedge.net/content/msp001/videos/msp001-Demo2.mp4)\n|  [3 - Pushing to Azure](./demos/README.md#demo-3---pushing-to-azure) | 13:55   | [Download video](https://mspttt.azureedge.net/content/msp001/videos/msp001-Demo3.mp4)\n\n## Required Learning before presenting\n\nOne (1) of the following:\n\n* [Azure Fundamentals](https://aka.ms/msp001/learn-fun)\n* [AppServices](https://aka.ms/msp001/learn-app)\n\n## Qualified Student Partner Presenters ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://blog.maximerouiller.com\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/209384?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMaxime Rouiller\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#content-MaximRouiller\" title=\"Content\"\u003e🖋\u003c/a\u003e \u003ca href=\"#example-MaximRouiller\" title=\"Examples\"\u003e💡\u003c/a\u003e \u003ca href=\"#video-MaximRouiller\" title=\"Videos\"\u003e📹\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/saifeemustafaq\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/15520369?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003esaifeemustafaq\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#talk-saifeemustafaq\" title=\"Talks\"\u003e📢\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/Yash-Yadav\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/32845721?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYash-Yadav\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/MaximRouiller/msp001/commits?author=Yash-Yadav\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-enable --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaximrouiller%2Fmsp001","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaximrouiller%2Fmsp001","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaximrouiller%2Fmsp001/lists"}