Wondering How to Deploy Node.js Application to DigitalOcean Server? We can help you.
Node. js is used to build robust, scalable apps and has the capability to handle thousands of requests.
It is very efficient when it comes to web and enterprise applications that have a lot of input-output operations that query the database.
At Bobcares, we often get requests to deploy node.js application to Digital ocean droplets as a part of our Server Management Services.
Today let’s see the steps our Support Engineers follow to do the deployment.
How to Deploy Node.js Application to DigitalOcean Server
Applications are written in JavaScript and runs on platforms such as Linux, OS X, FreeBSD, and Windows. Node.js also helps to manipulate files programmatically with the built-in fs module.
Though Node.js applications can be run at the command line we can also use it to automatically restart on reboot or failure of service.
The steps that ou Support Engineers follow are given below:
1. Building a simple NodeJS application:
Following are the commands for creating a sample node.js :
mkdir sample-nodejs-app
cd sample-nodejs-app
npm init -y
npm install express
touch index.js
After that open index.js and paste the following code into it:
// index.js const express = require('express') const app = express() app.get('/', (req, res) => { res.send('Hey, I\'m a Node.js app!') }) app.listen(3000, () => { console.log('Server is up on 3000') })
We can start the application with the following command:
$ node index.js
And we can access it from http://localhost:3000.
We can see “Hey, I’m a Node.js app!” as output.
2. Creating a New Droplet
First, we will log in to the Digital Ocean account and create a new droplet (server).
We will select NodeJS from the One-click apps.
Next, we will choose the $10 plan which will allow us to install the NPM dependencies as it needs at least 1GB RAM for installing the dependencies.
We will set the datacenter region with the default one.
After that, we can either add a new SSh key or choose from the existing one we have added and then choose a hostname for the droplet and click the Create button.
The new server can be seen up and running on Ubuntu 16.04 and NodeJS version 6.11.2. We have to note down the IP address of the newly created server to access the server using it.
[Need assistance to create a new Droplet? We can help you!]
3. Creating Non-root User on the Digital Ocean Server.
First, we will to login to the server as root by using the IP address we got.
$ ssh root@SERVER_IP_ADDRESS
Next, we will create a new user:
$ adduser bob
To give the user bob administrative privileges we will use the below sudo command:
$ usermod -aG sudo bob
This will add the user bob to the sudoers group and will allow the user to run commands with superuser privileges.
4. Setup SSH Key For The Newly Created User:
For setting up the SSH key for bob we need to copy the public key to the new server.
We can use the following command:
$ cat ~/.ssh/id_rsa.pub
Then copy it to add the public key to a special file in bob’s home directory.
Before that switch to user bob from the root with the following command.
$ su - bob
Next, we need to create a new directory called .ssh and restrict its permission:
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
Inside the .ssh directory, we will create a new file called authorized_keys with the following command:
$ touch ~/.ssh/authorized_keys
Then open the file and paste the public key into the file and set the permissions right:
$ vim ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
For returning to the root user we can use the following command:
$ exit
We can ensure access to the server with the new user by using the following command:
$ ssh bob@SERVER_IP_ADDRESS
5. Clone Node.js application to Digital Ocean Server
We will clone the node.js app on to the server directly in the user’s home directory (/home/bob) with the following command:
$ git clone https://github.com/ammezie/sample-nodejs-app.git
To install the dependencies give the following commands:
$ cd sample-nodejs-app
$ npm install
We will test the app to make sure everything is working as expected with the help of the following command:
$ node index.js
We can open a new terminal (without exiting the server) and enter the following command:
$ curl http://localhost:3000
The output “Hey, I’m a Node.js app!” can be seen.
Finally, the node.js application will be seen up and running.
[Need assistance to Deploy Node.js App? We are happy to help you!]
Conclusion
To conclude, we saw how to deploy node.js application to DigitalOcean Server. Also, we saw the steps our Support Engineers follow to implement this.
0 Comments