Sails.js is a free, open-source, real-time MVC Framework developed on top of the Node.js environment. It makes it easy to build custom and enterprise-grade Node.js applications. Sails.js uses code generators to build an application with less manual writing of code. You can develop chat applications, real-time dashboards, and multiplayer games using the Salis.js framework.
In this post, we will show you how to install the Salis.js framework with Nginx on Rocky Linux 8.
Prerequisites
- A server running Rocky Linux 8 on the Atlantic.Net Cloud Platform
- A root password 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 Rocky 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 Node.js to your system. First, install all required dependencies using the following command:
dnf install curl gcc-c++ make -y
Next, add the Node source repo using the following command:
curl -fsSL https://rpm.nodesource.com/setup_16.x | bash -
Next, install Node.js by running the following command:
dnf install nodejs -y
Once Node.js is installed, you can verify the Node.js version using the following command:
node --version
You will get the following output:
v16.13.0
Step 3 – Install Sails.js
Now, you can use NPM to install Sails.js:
npm -g install sails
After installing Sails.js, you will need to create a directory for the Sails.js application.
mkdir sails
Next, change the directory to sails and create a new application using the following command:
cd sails sails new myapp
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 `myapp`!
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 myapp 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.0 |\ info: /|.\ info: / || \ info: ,' |' \ info: .-'.-==|/_--' info: `--'-------' info: __---___--___---___--___---___--___ info: ____---___--___---___--___---___--___-__ info: info: Server lifted in `/root/sails/myapp` info: To shut down Sails, press + C at any time. info: Read more at https://sailsjs.com/support. debug: ------------------------------------------------------- debug: :: Mon Nov 08 2021 09:20:32 GMT+0000 (Coordinated Universal 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 a good idea 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/myapp 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 Mon 2021-11-08 09:22:14 UTC; 7s ago Main PID: 48672 (node) Tasks: 22 (limit: 11411) Memory: 136.0M CGroup: /system.slice/sails.service ├─48672 node /usr/bin/sails lift └─48679 grunt Nov 08 09:22:16 rockylinux sails[48672]: info: ____---___--___---___--___---___--___-__ Nov 08 09:22:16 rockylinux sails[48672]: info: Nov 08 09:22:16 rockylinux sails[48672]: info: Server lifted in `/root/sails/myapp` Nov 08 09:22:16 rockylinux sails[48672]: info: To shut down Sails, press + C at any time. Nov 08 09:22:16 rockylinux sails[48672]: info: Read more at https://sailsjs.com/support. Nov 08 09:22:16 rockylinux sails[48672]: debug: ------------------------------------------------------- Nov 08 09:22:16 rockylinux sails[48672]: debug: :: Mon Nov 08 2021 09:22:16 GMT+0000 (Coordinated Universal Time) Nov 08 09:22:16 rockylinux sails[48672]: debug: Environment : development Nov 08 09:22:16 rockylinux sails[48672]: debug: Port : 1337 Nov 08 09:22:16 rockylinux sails[48672]: 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=48672,fd=19))
Step 6 – Configure Nginx as a Reverse Proxy for Sails.js
First, install 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 verify Nginx for any syntax error:
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://sails.example.com. You should see the Sails.js application on the following screen:
Conclusion
Congratulations! You have successfully installed Sails.js with Nginx on Rocky Linux 8. You can now start developing your first real-time application using the Sails.js framework. Try it out on your virtual private server from Atlantic.Net!