Dùng Strapi làm backend

  1. Cài đặt Nginx, Mysql, Nodejs, git. Về version của Nodejs và npm thì theo yêu cầu của dự án bạn đã tạo.
  2. Clone project về theo cú pháp.
    git clone https://github.com/ibn-ashimi/my-project.git
  3. Di chuyển vào foder chứa code của bạn. Rồi chạy các lệnh bên dưới để tải thu viện về và cài đặt PM2
    npm install --production
    and
    npm i forever -g
    or
    npm i pm2 -g
  4. Cài đặt dotenv
    npm i dotenv
  5. Build dự án của bạn với lệnh bên dưới.
    NODE_ENV=production yarn build
    #or
    NODE_ENV=production npm run build
  6. Thêm file server.js
    nano server.js
    và đưa đoạn code bên dưới.
    const strapi = require('@strapi/strapi');
    strapi(/* {...} */).start();
  7. Build dự án
    NODE_ENV=production pm2 start server.js --name api
    # or
    NODE_ENV=production forever start server.js

Nếu bạn build trên server yếu thì ở giai đoạn build sẻ không thành công và bị kill process

Bạn hãy tạo mới dự án
npx create-strapi-app@latest

điền các thông tin theo hướng dẫn tạo dự án. Sau đó start project luôn và không cần build

pm2 start npm -- start

Cấu hình Proxy trên nginx

server {
listen 443 ssl;
server_name api.domain.com;
root /var/www/html;
# SSL Config
ssl_certificate /etc/letsencrypt/live/api.canonn.fyi/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/api.canonn.fyi/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# Proxy Config
location / {
proxy_pass http://strapi;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $custom_forwarded_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";
}
}