Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kolosovpetro/azureubuntuvmdeploy

Documentation on deploying an ASP.NET Core Web API on Azure Ubuntu VM with Nginx, Let's Encrypt SSL, and Cloudflare DNS for a secure, scalable setup.
https://github.com/kolosovpetro/azureubuntuvmdeploy

azure azure-devops azure-virtual-machine deployment github-actions latex lets-encrypt letsencrypt nginx ssh ubuntu2004

Last synced: 15 days ago
JSON representation

Documentation on deploying an ASP.NET Core Web API on Azure Ubuntu VM with Nginx, Let's Encrypt SSL, and Cloudflare DNS for a secure, scalable setup.

Awesome Lists containing this project

README

        

# Azure VM Deploy Guide

## Abstract

This document provides a comprehensive guide on deploying an ASP.NET Core Web API on an Azure Ubuntu Server virtual
machine (VM).
The deployment process leverages Nginx as a reverse proxy,
while secure HTTPS connection is being configured by using Let's Encrypt CertBot free SSL certificates.
Additionally, domain name (DNS) management is handled by utilizing Cloudflare.
This guide covers the end-to-end setup, including VM provisioning, API deployment, SSL configuration, and domain
integration,
ensuring a secure, scalable, and high-performance web application environment on Azure.

## GitHub Actions used

- https://github.com/actions/checkout
- https://github.com/GitTools/actions/blob/main/docs/examples/github/gitversion/index.md
- https://github.com/xu-cheng/latex-action
- https://github.com/actions/upload-artifact

## Build and run using PowerShell (Windows)

- Install `MikTeX`: https://miktex.org/download
- Update `MikTeX`
- Install `SumatraPDF` viewer: https://www.sumatrapdfreader.org/download-free-pdf-viewer
- `Rename-Tex-Files.ps1` renames main LaTeX and BibTeX files to match the repository root directory name
- `Build-Latex.ps1`

## Build and run in Intellij IDEA (Windows)

- Install `MikTeX`: https://miktex.org/download
- Update `MikTeX`
- Install `SumatraPDF` viewer: https://www.sumatrapdfreader.org/download-free-pdf-viewer
- Path to SumatraPDF: `C:\Program Files\SumatraPDF`
- Install `Intellij IDEA Ultimate`: https://www.jetbrains.com/idea/download/#section=windows
- Activate `Intellij IDEA Ultimate`
- Install `TeXiFy IDEA` plugin: https://plugins.jetbrains.com/plugin/9473-texify-idea
- Clone this repository locally: `https://github.com/kolosovpetro/github-latex-template.git`
- Open `github-latex-template` folder in `Intellij IDEA Ultimate` and configure as follows
- LaTeX Configuration
![LaTeX Configuration](./img/latex_configuration.PNG "LaTeX Configuration")
- BibTeX Configuration
![BibTeX Configuration](./img/bibtex_configuration.PNG "BibTeX Configuration")
- Configure Inverse Search in `Intellij IDEA` for SumatraPDF: `Tools -> LaTeX -> Configure Inverse Search`
- Compile document using `Shift + F10`

## How to use Mathematica package

- Open the package file `GithubLatexTemplateMathematicaPackage.m` in Wolfram Mathematica, I use version 13.0
- Execute the package using `Shift+Enter`
- Open the notebook file `GithubLatexTemplateMathematicaNotebook.nb`
- Execute the line: `Needs["GithubLatexTemplateMathematicaPackage"]`
- Continue your work as desired

## Configure CI / CD

- Update root file name in `build-pdf.yml` and `build-and-deploy-pdf.yml`
- Set repository secrets
- `GH_ACCESS_TOKEN`: Generate GitHub Personal access token at
`Settings -> Developer Settings -> Personal access tokens -> Generate mew token`

## Actions and their trigger policy

- `build-pdf.yml` builds project using `TeXLive`. Triggered on `pull_request`, `push` to `develop` branch
- `build-and-deploy-pdf.yml` builds project using `TeXLive` and deploys to `GitHub Pages`. Triggered on `push` to `main`
branch