Như ở bài viết trước, có rất nhiều vấn đề khi sử dụng Vercel free.
Trong khuôn khổ bài viết này, mình sẽ sử dụng server Ubuntu nha!
Lựa chọn server theo mình có 3 tiêu chí mình quan tâm:
Tùy thuộc theo độ ưu tiên về mục tiêu sử dụng, ví dụ như trang blog này tập trung vào user Việt Nam, ngôn ngữ Việt Nam, user nước ngoài đọc cũng chả hiểu.
Cũng tùy để làm gì, mình có triển khai 1 dự án nó chặn location Châu Á, nên mình dùng giải pháp dùng server US cho lẹ.
Nói chung là vậy nha: Tùy thuộc theo độ ưu tiên về mục tiêu sử dụng
Cũng tùy hệ điều hành để lựa chọn, tuy nhiên trong khuôn khổ bài viết, mình sẽ chọn Ubuntu server v22 để sử dụng vì nó đang phổ biến nhất, và cũng nhiều cộng đồng lớn, nhiều công cụ hỗ trợ!
Nói chung là: Mình sẽ lựa chọn Ubuntu OS
Nếu dự án chúng ta ít, mà cũng ít user, thì chỉ cần 1 server khoảng 2vCPU và 2GB Ram là đủ run rồi!
Còn nếu nhiều hơn thì có thể mở rộng 2 chiều, nhưng trong khuôn khổ bài viết hướng tới, thì tạm thời coi như chúng ta có 1 server nhoa :v
Ở Việt Nam thì có Bitfly cloud với mức giá trung bình, Thuê VPS Giá rẻ với mức giá như tên, còn nếu muốn xịn xò con bò thì có thể sử dụng CMC Cloud
Ở Việt Nam hiện mình vẫn đang dùng của Bitfly cloud vì mình dùng quen rui :v
Còn ở nước ngoài(quốc tế) thì có thể sử dụng EC2 với nhiều sự lựa chọn và nhiều địa điểm, hoặc Cotabo như một giải pháp rẻ hơn.
Nói gì thì nói, mình vẫn ưng bên Digital Ocean mỗi tội hơi đắt xíu :(
Đầu tiên, sau khi đăng ký và trả tiền, chúng ta sẽ được cung cấp một tài khoản, thường là tài khoản root và một số thông tin đi kèm.
Tên server: ten-server
Tên đăng nhập: username-server
Mật khẩu: password-server
WAN Address: ip.cua.ser.ver
Sau đó, chúng ta sẽ thực hiện SSH vào server của chúng ta với công thức sau:
ssh [email protected]
# Sau đó nhập mật khẩu
Ố kề, sau khi đăng nhập xong thì là coi như ổn rồi, sợ mỗi không đăng nhập được thoiii.
Sau đó hãy chạy lệnh này trước khi làm gì đó nhé!
sudo apt update && sudo apt-get update
Như tiêu đề bài viết, giờ chúng ta cần cài đặt NVM sau đó cài phiên bản Node.js cần thiết.
Đầu tiên, chúng ta cần cài đặt script một chút, nhanh thôi:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
Sau khi chạy xong, nó có một phần script chúng ta cần phải viết. Vậy nên chúng ta hãy viết nó và bấm Enter:
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
Okela, sau khi export
xong, chúng ta có thể sử dụng nvm
rồi. Mình sẽ cài đặt bản Node.js v20!
nvm install 20
Sau đó, chúng ta có thể thử xem node
và npm
đã được cài đặt chưa với cách check version:
node -v
npm -v
Nếu chưa hoặc không hiện phiên bản, thì hãy thử nvm use
sau đó thử lại check version lại nhóe!
nvm use 20
Sau đó, nếu muốn cài đặt Bun.js, chúng ta có thể sử dụng một vài option dưới đây:
1. Cách nhanh nhất:
npm i -g bun
2. Cách được để ở trang chủ của Bun.js:
Để sử dụng cách này, chúng ta cần cài package unzip
trong server trước:
sudo apt install unzip
Sau đó có thể cài như sau:
curl -fsSL https://bun.sh/install | bash
Sau đó hãy chạy đoạn dưới đây hoặc thoát ssh server vào lại:
source ~/.bashrc
Nếu đây là server của chúng ta, hãy cài đặt ssh key vào và sử dụng git cho dễ dàng, đỡ phải đăng nhập lại nhiều lần.
Hãy chạy đoạn sau, với tiêu đề của ssh key là email git của bạn.
ssh-keygen -t ed25519 -C "email git cua ban"
Hãy lấy publish key và copy nó:
cat ~/.ssh/id_ed25519.pub
Sau đó truy cập vào nơi chúng ta sử dụng (github/gitlab) và add key publish vào:
https://gitlab.cua.congty.ban/-/profile/keys
.Sau khi cài đặt npm
, chúng ta cần cài đặt thêm git
.
sudo apt install git
Sau đó git clone
một dự án Node.js nào đó của bạn về. Rồi hãy chạy một vài lệnh cơ bản:
bun i
bun run build # Nếu cần
bun start # hoặc script nào đó để start bản production
Sau khi chạy được và ổn thỏa, hãy cài đặt pm2
và sử dụng nó để start dự án. Nó sẽ giúp chúng ta nhiều thứ như:
Oke, cài đặt thôi:
npm install -g pm2
Sau khi cài đặt xong, hãy thử sử dụng nó:
pm2
Và nó sẽ hiện một đống thứ. Oke vậy là được.
Giờ quay lại dự án của bạn, mình sẽ coi như chúng ta sử dụng bun start
để start bản production. Hãy sử dụng PM2 làm điều đó:
pm2 start --name="ten-du-an" "bun start"
Với pm2 start
là lệnh start, với --name="ten-du-an"
hãy thay tên dự án đó vào. Cuối cùng là lệnh start để trong 2 dấu ""
.
Sau khi chạy lên, các bạn hãy thử check list pm2 để xem có lỗi gì không:
pm2 l
Nếu có lỗi, hãy thử:
pm2 log ten-du-an
Với pm2 log
để xem log, ten-du-an
hoặc id của dự án trong bản sau khi list ra để xem chỉ một dự án start.
Sau đó, nếu muốn xem rõ ràng hơn, chúng ta có thể truy cập vào pm2.io, đăng nhập, đăng ký,…
Sau đó tìm đoạn pm2 link some-thing some-thing
, hãy copy nó và chạy trên server. Sau đó quay lại trang web đợi một lúc.
Nếu hiện thị các app đang chạy là được nhaaa <3
Đáng ra mình có thêm một ít cơ, nhưng thoi, dài quá mỏi tay, để mình nghỉ chút rồi viết bài sau nha. Bài sau sẽ có một số thứ sau:
Sau đó sẽ có thêm một số phần như:
Vậy nhaaa, cảm ơn các bạn đã đọc aaaaaa <3