Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mykalmachon/azuretodo
a todo app deployed via Azure SWA, Container apps, and Cosmos DB ✨
https://github.com/mykalmachon/azuretodo
azure container-apps cosmosdb static-web-app
Last synced: 26 days ago
JSON representation
a todo app deployed via Azure SWA, Container apps, and Cosmos DB ✨
- Host: GitHub
- URL: https://github.com/mykalmachon/azuretodo
- Owner: MykalMachon
- Created: 2023-06-15T03:50:09.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-06-27T04:50:55.000Z (over 1 year ago)
- Last Synced: 2024-11-30T09:44:26.378Z (about 1 month ago)
- Topics: azure, container-apps, cosmosdb, static-web-app
- Language: TypeScript
- Homepage: https://azuretodo.mykal.codes
- Size: 428 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AzureTodo
a proof of concept todo app using Azure SWA, Container Apps, and Cosmos Database.
## Architecture
This application utilizes both GitHub actions and Azure Cloud for hosting and CI/CD.
![Diagram of Azure Todo architecture](./docs/assets/azure-todo.png)
### Azure Static Web Apps
This hosts the static web application (react app using vite: see `/packages/todo-website/`), user authentication system, and as an API proxy to our Azure Container App.
The static web app system seems to put a reverse proxy in-front of the static web app to provide both the authentication layer (`/.auth/**/*` handles sessions, headers, etc.) and the API (`/api/**/*` is routed to the connected backend.) all from the same host.
For more information on Azure Static Web Apps [see here](/)
### Azure Container App / Azure Container Environment
This hosts our API (node.js web server using express.js: see `/packages/todo-api`). Azure Container Apps uses Kubernetes and a number of other services under the hood to function.
The app will scale up/down as needed and can actually scale all the way down to 0 (aka no running app when usage is low over time) to save costs.
### Azure Container Registry
This hosts our containers and makes them callable
### Azure Cosmos Database
This is used to store data for the application in a cost efficient, geographically distributed, and fast.
## Development
- start the API
- open `/packages/todo-api/`
- run `npm run start` to start the server (TODO: dev server via nodemon)
- start the Website
- open `/packages/todo-websites`
- run `npm run azure:dev` to the start the Azure SWA emulator & CLI