Back to Explore
Bí quyết duy trì dự án Supabase miễn phí luôn hoạt động với GitHub Actions

Bí quyết duy trì dự án Supabase miễn phí luôn hoạt động với GitHub Actions

Khám phá giải pháp kỹ thuật giúp ngăn chặn việc Supabase tạm dừng các dự án miễn phí do không hoạt động, bằng cách sử dụng GitHub Actions để tự động hóa các yêu cầu API định kỳ.

Website
Upvote this postSign in to upvote this article.

Bài viết được dịch và tổng hợp từ tin tức gốc. Bạn có thể đọc bài viết gốc bằng tiếng Anh tại đây.

Điểm tin nhanh:

  • Dự án Supabase ở gói miễn phí sẽ bị tạm dừng nếu không có hoạt động trong một khoảng thời gian nhất định.
  • Sử dụng GitHub Actions với tính năng Cron job là giải pháp hoàn toàn miễn phí để duy trì trạng thái hoạt động cho dự án.
  • Kỹ thuật này đảm bảo API endpoint luôn phản hồi và tránh được việc phải kích hoạt lại thủ công.

Việc duy trì các dự án cá nhân trên hạ tầng cloud miễn phí luôn là một bài toán cân não đối với lập trình viên. Bạn đã bao giờ rơi vào tình huống dở khóc dở cười khi khách hàng hoặc người dùng truy cập vào ứng dụng của bạn, chỉ để nhận lại thông báo lỗi vì database đã bị "ngủ đông" do không có traffic? Đối với những ai đang sử dụng Supabase, việc hiểu rõ cơ chế tạm dừng dự án của họ là yếu tố sống còn để đảm bảo tính ổn định cho sản phẩm mà không tốn một xu chi phí hạ tầng.

Ảnh bìa bài viết

Tại sao dự án Supabase miễn phí lại bị tạm dừng?

Supabase, giống như nhiều nền tảng Backend-as-a-Service (BaaS) khác, áp dụng chính sách tạm dừng các dự án thuộc gói miễn phí (Free Tier) nếu chúng không ghi nhận bất kỳ hoạt động nào trong một khoảng thời gian (thường là 1 tuần). Đây là cách họ tối ưu hóa tài nguyên phần cứng cho cộng đồng. Tuy nhiên, nếu bạn đang xây dựng các dự án như công cụ rút gọn URL hay một hệ thống quản lý nhỏ, việc này sẽ gây ra gián đoạn trải nghiệm người dùng nghiêm trọng.

Giải pháp: Tự động hóa với GitHub Actions

Thay vì phải truy cập thủ công vào dashboard mỗi tuần, chúng ta có thể thiết lập một GitHub Action để thực hiện một request định kỳ tới API của dự án. Điều này đánh lừa hệ thống rằng dự án vẫn đang có người dùng truy cập.

Bước 1: Thiết lập API Endpoint

Bạn cần một endpoint đơn giản trong Supabase (có thể là một bảng trống hoặc một hàm Edge Function) để gửi request tới. Đảm bảo rằng endpoint này có thể truy cập được từ bên ngoài.

Bước 2: Cấu hình GitHub Actions

Trong repository của dự án, hãy tạo file .github/workflows/keep-alive.yml với nội dung sau:

name: Keep Supabase Alive
on:
  schedule:
    - cron: '0 0 * * 1' # Chạy vào 0h00 thứ Hai hàng tuần
jobs:
  ping:
    runs-on: ubuntu-latest
    steps:
      - name: Ping Supabase API
        run: curl -X GET https://your-project-id.supabase.co/rest/v1/your-table
        env:
          API_KEY: ${{ secrets.SUPABASE_ANON_KEY }}

Mẹo hay: Hãy sử dụng GitHub Secrets để lưu trữ các thông tin nhạy cảm như API Key thay vì để lộ trực tiếp trong mã nguồn, giúp bảo mật dự án tốt hơn như cách chúng ta quản lý các công cụ quản lý quyết định dựa trên Git.

Cover image for How to Keep Your Supabase Free Project Active

So sánh các phương pháp duy trì dự án

Phương pháp Chi phí Độ phức tạp Tính ổn định
Truy cập thủ công Thấp Thấp
GitHub Actions Trung bình Cao
Nâng cấp gói Pro Cao Thấp Rất cao

Việc tối ưu hóa quy trình này cũng tương tự như khi bạn tối ưu hóa quy trình phát triển phần mềm, giúp bạn tập trung vào việc phát triển tính năng thay vì lo lắng về hạ tầng.

Đánh giá & Lời khuyên Thực tiễn

Giải pháp này cực kỳ hiệu quả cho các dự án cá nhân, portfolio hoặc các ứng dụng nội bộ nhỏ. Tuy nhiên, với các dự án Production thực thụ, tôi khuyên bạn nên cân nhắc nâng cấp gói dịch vụ khi lượng người dùng tăng lên. Việc dựa vào "ping" để giữ dự án sống không thay thế được việc tối ưu hóa kiến trúc hệ thống hoặc xây dựng ứng dụng AI cấp độ Production.

Lưu ý: Hãy cẩn trọng với tần suất ping. Việc ping quá nhiều lần trong thời gian ngắn có thể bị hệ thống bảo mật của Supabase đánh dấu là hành vi bất thường hoặc tấn công DDoS.

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

GitHub Actions có bị tính phí nếu chạy Cron job không?

GitHub cung cấp một lượng phút chạy Actions miễn phí rất hào phóng cho các public repository và cả private repository, do đó việc chạy một Cron job hàng tuần gần như không tốn phí.

Có cách nào khác ngoài GitHub Actions không?

Bạn có thể sử dụng các dịch vụ như UptimeRobot hoặc các công cụ serverless khác để gửi request định kỳ tới API của bạn.

Liệu việc này có vi phạm chính sách của Supabase?

Đây là một kỹ thuật kỹ thuật hợp lệ để duy trì hoạt động, miễn là bạn không sử dụng nó để lạm dụng tài nguyên hệ thống một cách quá mức.

Kết luận

Việc duy trì dự án Supabase miễn phí không còn là nỗi lo nếu bạn biết cách tận dụng sức mạnh của CI/CD. Hãy bắt đầu thiết lập ngay hôm nay để đảm bảo dự án của bạn luôn sẵn sàng phục vụ. Nếu bạn đang tìm kiếm thêm các giải pháp tối ưu hóa chi phí, đừng quên tham khảo các bài viết về tự xây dựng công cụ rút gọn URL trên hi_dev. Hãy để lại bình luận nếu bạn gặp khó khăn trong quá trình cấu hình!

Discussion (0)

You need to log in to post comments. Log In

No comments yet. Start the discussion!