⚡ Ưu đãi Công nghệ & Khởi nghiệp: Template trọn bộ chỉ từ 790.000đ (nhập PRODEV20 giảm thêm 20%)

Mua 2 giảm 15%

Trọn gói Fullstack ALLINONE ~5M

⚡ Ưu đãi Công nghệ & Khởi nghiệp: Template trọn bộ chỉ từ 790.000đ (nhập PRODEV20 giảm thêm 20%)

Mua 2 giảm 15%

Trọn gói Fullstack ALLINONE ~5M

⚡ Ưu đãi Công nghệ & Khởi nghiệp: Template trọn bộ chỉ từ 790.000đ (nhập PRODEV20 giảm thêm 20%)

Mua 2 giảm 15%

Trọn gói Fullstack ALLINONE ~5M

⚡ Ưu đãi Công nghệ & Khởi nghiệp: Template trọn bộ chỉ từ 790.000đ (nhập PRODEV20 giảm thêm 20%)

Mua 2 giảm 15%

Trọn gói Fullstack ALLINONE ~5M

Hướng dẫn deploy Next.js lên VPS với Docker Compose và Caddy

Trong bài viết này, chúng ta sẽ tìm hiểu cách deploy một ứng dụng Next.js lên VPS bằng Docker Compose và Caddy. Đây là hướng dẫn dành cho những ai đang tìm cách triển khai website bán hàng với cấu hình VPS 2 GB RAM.

Chọn VPS phù hợp

Để deploy Next.js, bạn cần một VPS với tối thiểu 2 GB RAM. Đây là mức tối thiểu để đảm bảo ứng dụng của bạn chạy ổn định mà không gặp vấn đề về bộ nhớ. Bạn có thể tham khảo dịch vụ Cài đặt & deploy VPS của K-Source để có thêm lựa chọn.

  • Chọn VPS có hệ điều hành Ubuntu 20.04 hoặc mới hơn.
  • Đảm bảo rằng bạn có quyền truy cập SSH vào máy chủ.

Cài đặt Docker và Docker Compose

Đầu tiên, bạn cần cài đặt Docker và Docker Compose trên VPS của mình:

  1. Cập nhật hệ thống và cài đặt các gói cần thiết:

    sudo apt-get update
    sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
    
  2. Thêm Docker repository và cài đặt Docker:

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    sudo apt-get update
    sudo apt-get install docker-ce
    
  3. Cài đặt Docker Compose:

    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose
    

Build và deploy ứng dụng Next.js

Với Dockerfile và docker-compose.yml có sẵn từ K-Source, bạn có thể build và deploy dễ dàng:

  1. Build image trên CI (khuyến nghị dùng GitHub Actions) để tránh hết RAM trên VPS:

    docker build -t my-nextjs-app .
    docker push my-docker-repo/my-nextjs-app
    
  2. Trên VPS, pull image đã build:

    docker pull my-docker-repo/my-nextjs-app
    
  3. Chạy Docker Compose để khởi động ứng dụng:

    docker-compose up -d
    

Cấu hình Caddy cho HTTPS tự động

Caddy sẽ được sử dụng để cấp chứng chỉ SSL tự động và làm reverse proxy cho ứng dụng của bạn:

  • Tạo file Caddyfile với nội dung:

    yourdomain.com {
        reverse_proxy localhost:3000
    }
    
  • Khởi động Caddy:

    docker run -d -p 80:80 -p 443:443 -v /path/to/Caddyfile:/etc/caddy/Caddyfile caddy
    

Cập nhật phiên bản không downtime

Để cập nhật ứng dụng mà không bị downtime, bạn có thể sử dụng Docker Compose với các bước sau:

  1. Pull image mới từ registry:

    docker-compose pull
    
  2. Chạy lại container:

    docker-compose up -d
    

Backup và phục hồi dữ liệu

Đảm bảo bạn thường xuyên backup dữ liệu để phục hồi khi cần thiết:

  • Sử dụng lệnh docker-compose exec để sao lưu dữ liệu từ container.
  • Tạo cron job trên VPS để tự động backup theo lịch trình.

Những lỗi hay gặp

  • Hết RAM khi build trên VPS: Sử dụng CI để build và chỉ pull image trên VPS.
  • Caddy không cấp SSL: Kiểm tra file Caddyfile và đảm bảo domain đã trỏ về VPS.

Câu hỏi thường gặp

Có cần phải có kiến thức Docker để triển khai không?

Không cần quá nhiều kiến thức chuyên sâu, chỉ cần làm theo hướng dẫn là đủ.

Tại sao nên dùng Caddy thay vì Nginx hay Apache?

Caddy tự động cấp SSL và dễ cấu hình hơn, phù hợp cho deploy nhanh.

Làm sao để cập nhật mà không bị downtime?

Sử dụng docker-compose pullup -d để cập nhật phiên bản mới nhất mà không phải dừng dịch vụ.

Để triển khai nhanh chóng, bạn có thể tham khảo thêm các mẫu template có sẵn của K-Source.

Trang chủ
Đăng nhập
Template
0
Đã lưu
0
Giỏ hàng