To deploy Node.js application in Internet we need server and domain name. We will use Ubuntu 18.04. On server install Node.js using commands:
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt-get install nodejs
Also we need to install Nginx web server to proxy http and https requests (from 80, 443 ports) to node application port.
sudo apt-get install nginx
We need to install Git if we want to deploy our application from git repository:
sudo apt-get install git
Next go to /home directory and use command:
git clone repositury_url
This command will clone all files from your git repository to server.
Next we need to install all dependencies from package.json:
npm install
And now we can run our application using command:
node index.js
But this command will stop work if our server will restart or if we close SSH connection to server. To run our application as daemon on server startm use special command pm2. Install it globally with Npm package manager:
sudo npm install pm2 -g
This program will run our node.js application in background:
pm2 start index.js
TO automatic start pm2 on system boot – generate startup script using command:
pm2 startup
And save configuration using command:
pm2 save