Skip to content

[*English Version*] TrevMorin.com is a portfolio website that showcases each web design concept created by Superklok Labs.

Notifications You must be signed in to change notification settings

Superklok/TrevMorinDotCom

Repository files navigation

TrevMorin.com (English Version) v1.8.24


Basic Root User Deployment Guide For App Evaluation

This guide is intended for deployment testing purposes & it uses the Root user. Creating a new user is strongly suggested for a production setup.

1. Deploy a Cloud Compute Ubuntu 22.04 server from Vultr named "TMdotCom".


2. Open a PowerShell (as Admin) terminal & connect to your TMdotCom server's IP address via SSH:

ssh root@enter.TMdotCom.IP.address
  • Enter the password provided by Vultr on the TMdotCom server page & follow all prompts until connected.

3. Update Ubuntu OS:

sudo apt update && sudo apt upgrade -y

4. Enable & setup UFW Firewall:

sudo ufw enable
sudo ufw status
  • It should display that the UFW Firewall is active.
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
  • Restart the TMdotCom server then reconnect via SSH (repeat step 2).
sudo reboot

5. Install Node onto the server:

curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install nodejs
npm --version
  • The NPM version should be displayed.
node --version
  • The Node version should be displayed.

6. Clone the TrevMorinDotCom GitHub repository to the TMdotCom server:

cd ~/
mkdir superkloklabs
cd superkloklabs
git clone https://github.com/Superklok/TrevMorinDotCom.git

7. Install dependencies:

cd TrevMorinDotCom/
npm i

8. Start app using PM2:

npm i pm2 -g
  • Set environment variables:
cd ~/
nano .bashrc
  • Add the following to the top of the file:
export PORT="ThePortTMdotComIsRunningOn"
export NODE_ENV="production"
  • Press ctrl+x & save changes, then refresh the user environment:
source .bashrc
  • Double check that the new environment variables have been set correctly.
env
  • Then start the app in cluster mode:
cd superkloklabs/TrevMorinDotCom/
pm2 start app.js --name "TMdotCom" -i max

9. Setup a start script to automatically start the app if the TMdotCom server is restarted:

pm2 startup ubuntu
pm2 save

10. Install & configure NGINX:

sudo apt install nginx
sudo nano /etc/nginx/sites-available/default
  • Add the following to the location part of the server block:
server_name yourwebsite.com www.yourwebsite.com;
    location / {
        proxy_pass http://localhost:ThePortTMdotComIsRunningOn;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
  • Press ctrl+x & save changes.
  • Check NGINX config:
sudo nginx -t
  • Restart NGINX:
sudo service nginx restart

11. Update your DNS "A" records for "yourwebsite.com" & "www.yourwebsite.com" with the TMdotCom server IP address.


12. Setup SSL with LetsEncrypt:

sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx -d yourwebsite.com -d www.yourwebsite.com
  • Enter your@email.com for the email address it requests, & select (y)es, then (n)o.
  • Test the 90 day renewal process:
certbot renew --dry-run
  • Test the PM2 startup script by restarting the TMdotCom server:
sudo reboot
  • Then reconnect to the TMdotCom server via SSH (repeat step 2).
  • Check PM2 to make sure TMdotCom is still running in cluster mode:
pm2 status
  • Logout of SSH:
exit


DONE!


Languages

Libraries, Frameworks & Runtime

Deployment Tools & Services



About

[*English Version*] TrevMorin.com is a portfolio website that showcases each web design concept created by Superklok Labs.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published