# How to Deploy NodeJs-express app with a static front-end in a pug on Elestio So you made a static full stack frontend pug with nodejs backend application and want to deploy it to the cloud 🚀 You probably heard about Kubernetes (and all its complexity) or various options to deploy your apps like Heroku, Render Fly, or Railways. They all have something in common, those products are building your own source code on every commit from your GIT repository. Elestio is doing the same ... **but different!** Instead of deploying your app to a shared cluster, we deploy to dedicated VMs. In this tutorial, we will deploy a simple NodeJs-express app with a static front-end in a pug that the backend in nodejs was created using the npm init command. You can use any existing application, create a new one with npm init, or simply fork and use our example by following the ***[link](https://github.com/elestio-examples/nodejs-express-pug)***.
To learn more about the elestio CI-CD, go *[**here**](https://docs.elest.io/books/cicd-pipelines/page/overview).*
If you're new, sign up for *[Elestio](https://dash.elest.io/)*, otherwise, login to your existing account. #### **Deploy a NodeJs-express app with a static front-end in a pug with CI/CD to the cloud** #### Step 1: Go to CI/CD from the left sidebar. #### Step 2: Now, select the deployment source. [![Screenshot 2022-11-02 185434.png](https://docs.elest.io/uploads/images/gallery/2022-11/scaled-1680-/screenshot-2022-11-02-185434.png)](https://docs.elest.io/uploads/images/gallery/2022-11/screenshot-2022-11-02-185434.png) In this tutorial, I'm deploying using GITHUB, but you can also use GITLAB if you have a project there. #### Step 3: Select the repository. If you have already authenticated your GITHUB or GITLAB account in ci-cd for repository access, you can choose the desired repository to deploy directly. Otherwise, you must first authenticate your GIT account with elestio ci-cd for repository access. [![Screenshot 2022-11-03 181459.png](https://docs.elest.io/uploads/images/gallery/2022-11/screenshot-2022-11-03-181459.png)](https://docs.elest.io/uploads/images/gallery/2022-11/imPscreenshot-2022-11-02-191248.png) #### Step 4: Choose Deployment Targets [![Screenshot 2022-11-02 191657.png](https://docs.elest.io/uploads/images/gallery/2022-11/scaled-1680-/screenshot-2022-11-02-191657.png)](https://docs.elest.io/uploads/images/gallery/2022-11/screenshot-2022-11-02-191657.png) Elestio offers two types of deployment targets "**Deploy on a new VM**" and "**Deploy on an existing VM**".You are allowed to set up n pipelines on each elestio Ci-CD target/VM. According to the project configuration you select and the project you're deploying, the number of pipelines varies.
If you want to deploy these projects as a pipeline on a new Target/VM or don't have any installed targets, choose "Deploy on a new VM." If you already have any installed or previously configured ci-cd targets/VMs, choose "Deploy on an existing VM," and then choose the existing target from the targets dropdown. Follow the steps below only if you select "**Deploy on a new VM**," otherwise click the next button to proceed.CI/CD Pipelines by Elestio are available with our 5 cloud partners (AWS Lightsail, Digital Ocean, Vultr, Linode & Hetzner) in 85 locations over 27 countries but also on any cloud (AWS, Azure, Google, Oracle, ...) and on-premise with [BYOVM.](https://doc.elest.io/books/cloud-providers/page/byovm-bring-your-own-vm)
-