Deploy a Node.js server
On our platform you can deploy a standard HTTP Node.js server (i.e. using Express, Koa, Fastify, ...) on a FREE shared runner we provide for getting started purposes, so you can access it with traditional HTTP requests. You can use your favorite Node.js web framework to host all all your website by serving your static assets and backend, your microservice APIs, a backend proxy... without managing the cloud itself (provisioning, deployment, setup, HTTPS certificates, security patches, cloud change...)
In this quick tutorial, you'll learn how to create and deploy a basic Express HTTP Node.js server you can call from HTTP.
1. Prepare the project
Let's start from our ready-to-use project, and go directly to the step 4
git clone https://github.com/ScaleDynamics/server my-server
cd my-server/
npm install
or,
Let's create manually your own my-server
working directory, and follow the next steps
mkdir my-server
cd my-server/
2. Create a basic HTTP Express.js Node.js server
Create a package.json
file
{
"name": "my-server",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node ."
}
}
Install Express
npm install express
Create index.js
Create a new index.js
file in the server directory, and copy-paste the following code into it:
// my-server/index.js
const express = require("express");
const app = express();
const port = process.env.WARP_PORT || 3000;
app.get("/:name?", (req, res) => {
const name = req.params.name || "World";
const data = {
message: `Hello ${name} from Node.js`,
node: process.version,
date: new Date().toISOString(),
};
res.json(data);
});
app.listen(port, () => {
console.log(`This app listens on the port ${port}`);
});
Note that server must use
process.env.WARP_PORT
to identify which port to listen.
3. Install the ScaleDynamics SDK
To use the SDK you need Node.js installed on your computer.
Look at https://nodejs.org/en/download/ (opens in a new tab) to install it.
To access our CLI, use npx warp
. To get installation options of the SDK, look to SDK installation.
You can have the list of available commands and help with
npx warp help
4. Create the project and the environment
The deployment of a server continer requires to indicate in which project and which environment you want to run it.
A project identifies a set of containers to be deployed. Users can use project to logically represents a website, a web app, a microservice, an API...
An environment defines the cloud execution environment to deploy and run a project. For example you can have 'pre-prod', 'demo', 'staging' or 'production' environments.
Login to your account
To access projects and deployment resources you need a ScaleDynamics account. You can sign up here to create your account. Subscription is FREE, no credit card required.
Once your account is created, you can login to your account with your email and password:
npx warp login
Create a project
Let's create a server
project.
npx warp project create server
Create an environment
Let's create a demo
environment.
npx warp env create demo
5. Deploy the server
You're now ready to deploy the server container.
npx warp deploy --project server --env demo
During the deployment, you will have to indicate the url where you want to access your contaiiner after deployment.
✔ Enter a hostname for 'my-server' (fully qualified or not), leave blank for random: …
You can enter a name or press return to get a random one.
After that step you will have to indicate on which runner to deploy and run your container.
All runners that can be used by the env are shown and you can select the right one.
You can select the configuration scaledynamics-shared-runner
that is a FREE mutalized runner we provide for getting started purposes.
You need to select a runner for deployment configuration 'my-server'
? Pick a runner or a configuration: ›
❯ Config: scaledynamics-shared-runner
After deployment the url of your container is dumped on the terminal.
if you want to know the deployment url, you can access the console or use the following command to get it:
npx warp env info
6. Call the server
Now the server is deployed, let's call it from using curl for example:
curl https://DEPLOYMENT_URL
Chapeau!
Congrats', you deployed your first managed Node.js server container.
Want to continue? Create your first Runner