Atlantic.Net Blog

How to Install Sails.js Framework with Nginx as a Reverse Proxy on Oracle Linux 8

Hitesh Jethva
by Atlantic.Net (468 posts) under Tutorials, VPS Hosting
0 Comments

Sails is the most popular MVC framework for Node.js. It is used for building production-ready enterprise Node.js applications. Sails is a lightweight server-side technology that uses Express for handling HTTP requests and wraps socket.io for managing WebSockets.
It is used to develop chat applications, real-time dashboards, and multiplayer games. Sails provide a simple data access layer that works with any database, including MySQL, MongoDB, PostgreSQL, Redis, and local disk.

In this post, we will show you how to install the Salis.js framework with Nginx as a reverse proxy on Oracle Linux 8.

Prerequisites

  • A server running Oracle Linux 8 on the Atlantic.Net Cloud Platform
  • A root password is configured on your server

Step 1 – Create Atlantic.Net Cloud Server

First, log in to your Atlantic.Net Cloud Server. Create a new server, choosing Oracle Linux 8 as the operating system with at least 2GB RAM. Connect to your Cloud Server via SSH and log in using the credentials highlighted at the top of the page.

Once you are logged in to your server, run the following command to update your base system with the latest available packages.

dnf update -y

Step 2 – Install Node.js

Before starting, you will need to install some required dependencies on your server. You can install all of them by running the following command:

dnf install curl gcc-c++ make -y

Once all the dependencies are installed, add the Node source repo with the following command:

curl -fsSL https://rpm.nodesource.com/setup_18.x | bash -

Next, install Node.js by running the following command:

dnf install nodejs -y

After the installation, you can verify the Node.js version using the following command:

node --version

You will get the following output:

v18.7.0

Step 3 – Install Sails.js

You can use the Node Package Manager (NPM) to install Sails.js easily on your server.

npm -g install sails

Once installed, create a directory for the Sails.js application.

mkdir sails

Next, change the directory to the sails and create a new application using the following command:

cd sails
sails new project

You will be asked to select the template for your application:

 Choose a template for your new Sails app:
 1. Web App  ·  Extensible project with auth, login, & password recovery
 2. Empty    ·  An empty Sails app, yours to configure
 (type "?" for help, or <CTRL+C> to cancel)
? 1

Type 1 and press the Enter key to create your application:

 info: Installing dependencies...
Press CTRL+C to cancel.
(to skip this step in the future, use --fast)
 info: Created a new Sails app `project`!

Step 4 – Start Sails.js Application

After creating the Sails.js application, change the directory to your application and start the application using the command below:

cd project
sails lift

You will get the following output:

 info: Starting app...

 info: Initializing project hook... (`api/hooks/custom/`)
 info: Initializing `apianalytics` hook...  (requests to monitored routes will be logged!)
 info: ·• Auto-migrating...  (alter)
 info:    Hold tight, this could take a moment.
 info:  ✓ Auto-migration complete.

debug: Running v0 bootstrap script...  (looks like this is the first time the bootstrap has run on this computer)
 info: 
 info:                .-..-.
 info: 
 info:    Sails              <|    .-..-.
 info:    v1.5.3              |\
 info:                       /|.\
 info:                      / || \
 info:                    ,'  |'  \
 info:                 .-'.-==|/_--'
 info:                 `--'-------' 
 info:    __---___--___---___--___---___--___
 info:  ____---___--___---___--___---___--___-__
 info: 
 info: Server lifted in `/root/sails/project`
 info: To shut down Sails, press  + C at any time.
 info: Read more at https://sailsjs.com/support.

debug: -------------------------------------------------------
debug: :: Tue Aug 23 2022 03:54:53 GMT-0400 (Eastern Daylight Time)

debug: Environment : development
debug: Port        : 1337
debug: -------------------------------------------------------

Press CTRL+C to stop the application.

Step 5 – Create a Systemd Service File for Salis.js

It is recommended to create a systemd service file to manage the Sails.js application. You can create it using the following command:

nano /lib/systemd/system/sails.service

Add the following lines:

[Unit]
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/root/sails/project
ExecStart=/usr/bin/sails lift
Restart=on-failure

[Install]
WantedBy=multi-user.target

Save and close the file, then reload the systemd daemon to apply the changes:

systemctl daemon-reload

Now, start the Sails.js service and enable it to start at system reboot:

systemctl start sails
systemctl enable sails

You can also verify the status of the Sails.js service using the following command:

systemctl status sails

You will get the following output:

● sails.service
   Loaded: loaded (/usr/lib/systemd/system/sails.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2022-08-23 03:56:00 EDT; 7s ago
 Main PID: 12432 (node)
    Tasks: 22 (limit: 11409)
   Memory: 149.9M
   CGroup: /system.slice/sails.service
           ├─12432 node /usr/bin/sails lift
           └─12439 grunt

Aug 23 03:56:02 oraclelinux8 sails[12432]:  info:  ____---___--___---___--___---___--___-__
Aug 23 03:56:02 oraclelinux8 sails[12432]:  info:
Aug 23 03:56:02 oraclelinux8 sails[12432]:  info: Server lifted in `/root/sails/project`
Aug 23 03:56:02 oraclelinux8 sails[12432]:  info: To shut down Sails, press  + C at any time.
Aug 23 03:56:02 oraclelinux8 sails[12432]:  info: Read more at https://sailsjs.com/support.
Aug 23 03:56:02 oraclelinux8 sails[12432]: debug: -------------------------------------------------------
Aug 23 03:56:02 oraclelinux8 sails[12432]: debug: :: Tue Aug 23 2022 03:56:02 GMT-0400 (Eastern Daylight Time)
Aug 23 03:56:02 oraclelinux8 sails[12432]: debug: Environment : development
Aug 23 03:56:02 oraclelinux8 sails[12432]: debug: Port        : 1337
Aug 23 03:56:02 oraclelinux8 sails[12432]: debug: -------------------------------------------------------

At this point, the Sails.js application is started and listens on port 1337. You can check it using the following command:

ss -antpl | grep 1337

You will get the following output:

LISTEN 0      128                *:1337            *:*    users:(("node",pid=12432,fd=19))                                                                                               

Step 6 – Configure Nginx as a Reverse Proxy for Sails.js

Nginx reverse proxy allows you to access the Sails application via port 80. First, install the Nginx with the following command:

dnf install nginx

Next, create an Nginx virtual host configuration file using the following command:

nano /etc/nginx/conf.d/sails.conf

Add the following lines:

server {
 listen       80;
 server_name  sails.example.com;
   location / {
     proxy_pass        http://localhost:1337/;
     proxy_set_header  Host $host;
     proxy_buffering   off;
   }
 }

Save and close the file, then edit the Nginx main configuration file:

nano /etc/nginx/nginx.conf

Add the following line below http {:

server_names_hash_bucket_size 64;

Save and close the file, then verify the Nginx configuration:

nginx -t

You will get the following output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Finally, restart Nginx to apply the changes:

systemctl restart nginx

Step 7 – Access Sails.js

Now, open your web browser and access the Sails.js web interface using the URL http://salis.example.com. You should see the Sails.js application on the following screen:
Sails.js dashboard page

Conclusion

In this post, you learned how to install Sails.js with Nginx on Oracle Linux 8. You can now start developing your first real-time application using the Sails.js framework. Get started with Sails.js on VPS hosting from Atlantic.Net!

Get A Free To Use Cloud VPS

Free Tier Includes:
G3.2GB Cloud VPS Free to Use for One Year
50 GB of Block Storage Free to Use for One Year
50 GB of Snapshots Free to Use for One Year


Looking for a Hosting Solution?

We Provide Cloud, Dedicated, & Colocation.

  • Seven Global Data Center Locations.
  • Flexible Private, Public, & Hybrid Hosting.
  • 24x7x365 Security, Support, & Monitoring.
Contact Us Now! Med Tech Award FTC
SOC Audit HIPAA Audit HITECH Audit

Recent Posts

Best Cloud Consultancy or MSP in 2022
BAA Red Flags: What Should Your HIPAA-Compliant Hosting Company Be Willing to Accommodate?
HIPAA Compliance for Remote Workers: How to Maintain HIPAA Compliance with a Remote Team
How to Make the Best Use of the Cloud in the Internet of Things (IoT)
How to Make the Best Use of Artificial Intelligence in Cloud Computing

Get started with 12 months of free cloud VPS hosting

Free Tier includes:
G3.2GB Cloud VPS Server Free to Use for One Year
50 GB of Block Storage Free to Use for One Year
50 GB of Snapshots Free to Use for One Year


New York, NY

100 Delawanna Ave, Suite 1

Clifton, NJ 07014

United States

San Francisco, CA

2820 Northwestern Pkwy,

Santa Clara, CA 95051

United States

Dallas, TX

2008 Lookout Dr,

Garland, Texas 75044

United States

Ashburn, VA

1807 Michael Faraday Ct,

Reston, VA 20190

United States

Orlando, FL

440 W Kennedy Blvd, Suite 3

Orlando, FL 32810

United States

Toronto, Canada

20 Pullman Ct, Scarborough,

Ontario M1X 1E4

Canada

London, UK

14 Liverpool Road, Slough,

Berkshire SL1 4QZ

United Kingdom

Resources