{Prod from Zero}

How to Deploy App to Digital Ocean

  • Create a droplet in the Digital Ocean
  • Add domain to IP server
  • Upload our app to the server
  • Subdomain to Proxy reverse
  • Config Nginx with SSL
  • Q&A

Agenda

# CHAPTER 1

Create a Droplet in Digital Ocean

sudo apt update
sudo apt upgrade -y

// install nginx
sudo apt install nginx

// install nodejs
cd ~
curl -sL https://deb.nodesource.com/setup_18.x -o nodesource_setup.sh
nano nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install nodejs

// start service
npm i -g pm2

# PRESENTING CODE

First commands

# CHAPTER 3

Add domain to IP server

// into /etc/nginx/sites-available/default

server {
  ...
  server_name codevs.cloud www.codevs.cloud;
  ...
  
}
# PRESENTING CODE

Config Nginx

# CHAPTER 3

Upload app to server

scp -r /build root@IP:/var/www

# CHAPTER 3

Add Subdomain to IP server

server {
  server_name api.codevs.cloud;
  
  location / {
    proxy_pass	http://127.0.0.1:3000;
  }
}
# PRESENTING CODE

Config Nginx

# CHAPTER 3

Enable SSL to server

sudo snap install core; sudo snap refresh core

sudo apt remove certbot

sudo snap install --classic certbot

sudo ln -s /snap/bin/certbot /usr/bin/certbot
# PRESENTING CODE

Install dependencies

sudo nano /etc/nginx/sites-available/example.com

...
server_name example.com www.example.com;
...

//Validate config
sudo nginx -t

sudo systemctl reload nginx

// validate ssl
sudo ufw status


sudo certbot --nginx -d codevs.cloud -d www.codevs.cloud
# PRESENTING CODE

Install dependencies part 2

sudo nano /etc/nginx/sites-available/example.com

...
server_name example.com www.example.com;
...

//Validate config
sudo nginx -t

sudo systemctl reload nginx

// validate ssl
sudo ufw status


sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

sudo certbot --nginx -d codevs.cloud -d www.codevs.cloud
# PRESENTING CODE

Code Transitions

{Q & A}

Made with Slides.com