Instalasi "strapi" di DigitalOcean

Instalasi "strapi" di DigitalOcean

Dear Pembaca setia,

Kali ini penulis hendak berbagi langkah-langkah yang dilakukan penulis saat melakukan instalasi strapi di DigitalOcean (bila belum punya akun, dapat klik di link berikut, untuk mendapatkan saldo $100: digitalocean).

Tutorial dari instalasi ini penulis dapatkan dari berbagai sumber, resmi dari DigitalOcean sendiri, ataupun dari forum yang ada di DigitalOcean juga.

Instalasi strapi

DigitalOcean sudah memberikan kemudahan dalam instalasi strapi, berupa image untuk droplet yang saat diinstal sudah langsung berisi strapi, dan konfigurasi firewall juga sudah dilakukan. Petunjuk tersebut penulis dapatkan di sini. Berikut langkah-langkahnya:

  • Create Droplet
  • Pilih tab 'Marketplace', dan di textbox ketikkan 'strapi'
  • Kemudian pilih 'Plan' untuk droplet nya, minimum adalah "2GB RAM / 1 CPU"
Minimum Requirement
  • Kemudian pilih 'Data Center' terdekat,
  • Pilih moda 'Authentication'-nya (SSL / Password, rekomendasi SSL)
  • Langsung tekan tombol hijau besar 'Create'
  • Tunggu 30 detik sampai 1 menit untuk droplet nya terbentuk
Menunggu instalasi selesai
  • Tunggu lagi beberapa menit (~5 menit), untuk instalasi strapi selesai
Tunggu beberapa menit
  • Cek di browser, untuk IP yang diberikan, untuk mengetahui apakah instalasi sudah selesai atau belum. Refresh terus halaman sampai keluar pesan berikut
  • Tekan tombol hijau 'Create the first administrator', dan selesaikan pengisiannya

Pengarahan Domain

Arahkan domain kita sendiri (misal: domainku.com) ke IP yang diberikan di droplet tersebut. Untuk cara pengarahan, dapat merujuk ke penyedia jasa domain masing-masing

Konfigurasi SSL di nginx

Tutorial ini penulis dapatkan di forum DigitalOcean juga, di link berikut: link

  • SSH ke server
ssh root@157.245.87.7
  • Modify file nginx yang mengatur konfigurasi routing-nya, dengan perintah
nano /etc/nginx/sites-available/strapi.conf
  • ubah "server_name _;", menjadi "server_name domainku.com www.domainku.com;"
server {

# Listen HTTP
    listen 80;
    server_name domainku.com www.domainku.com;

# Proxy Config
    location / {
        proxy_pass http://strapi;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_pass_request_headers on;
    }
}
strapi.conf
  • Login sebagai user strapi
sudo su strapi
  • Modifikasi file server.js yang dapat dilakukan di
nano ~/strapi-development/config/server.js
  • Ubah url: 'https://domainku.com'
module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  url: 'https://domainku.com',
  admin: {
    auth: {
      secret: env('ADMIN_JWT_SECRET'),
    },
  },
});
server.js

Installasi SSL

Instalasi ini menggunakan tutorial yang dapat diakses di link berikut:

  • Instal certbot
sudo apt install certbot python3-certbot-nginx
  • Pastikan sekali lagi konfigurasi sudah benar di
nano /etc/nginx/sites-available/strapi.conf
.....
    server_name domainku.com www.domainku.com;
.....
strapi.conf
  • Check apakah certbot dapat membaca file tersebut
sudo nginx -t
  • Mendapatkan file certificate dari Let's Encrypt
sudo certbot --nginx -d domainku.com -d www.domainku.com
  • Bila domain sudah diarahkan ke IP tersebut, dan konfigurasi nginx benar, maka akan keluar pesan sebagai berikut (rekomendasi pilih nomor 2)
Output

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
  • Kemudian akan keluar pesan berikut
Output

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2020-08-18. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
  • Perintah berikut untuk memastikan status timer pembaharuan certificatenya
sudo systemctl status certbot.timer
  • Dan berikut adalah tampilan hasilnya
Output

● certbot.timer - Run certbot twice daily
     Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled)
     Active: active (waiting) since Mon 2020-05-04 20:04:36 UTC; 2 weeks 1 days ago
    Trigger: Thu 2020-05-21 05:22:32 UTC; 9h left
   Triggers: ● certbot.service

Restart strapi services

  • Dapat dilakukan dengan login sebagai strapi user
sudo su strapi
  • Kemudian jalankan perintah
pm2 restart strapi-development

Demikian pembaca setia, tutorial kali ini. Semoga dapat membantu.

Salam,