Mục lục

Self-hosting Supabase: Docker Deployment

Hướng dẫn triển khai Supabase Open Source trên server riêng tối ưu hóa chi phí và quyền kiểm soát dữ liệu.

Triển khai Supabase Cloud rất nhanh chóng, nhưng việc tự host (Self-hosting) trên server riêng giúp bạn hoàn toàn làm chủ dữ liệu, không giới hạn số lượng project và tối ưu hóa chi phí vận hành cho các dự án quy mô lớn.

1. Kiến trúc Self-hosting

Supabase không phải là một single binary, nó là một tập hợp các dịch vụ mã nguồn mở:

  • GoTrue: Quản lý Authentication.
  • PostgREST: Biến Database thành REST API.
  • Realtime: WebSockets cho các cập nhật thời gian thực.
  • Storage API: Quản lý tệp tin.
  • Kong: API Gateway điều phối toàn bộ traffic.

2. Quy trình triển khai với Docker

Đây là cách an toàn và chuẩn mực nhất để deploy Supabase trên server của bạn.

Bad Practice: Manual Installation

Cố gắng cài đặt từng dịch vụ (Postgres, Kong, GoTrue...) trực tiếp lên OS của server.

  • Nguy cơ: Xung đột phiên bản, cực kỳ khó cấu hình ranh giới mạng và khó nâng cấp sau này.

Good Practice: Docker Compose Strategy

bash:
# 1. Clone repo cấu hình chính thức
git clone --depth 1 https://github.com/supabase/supabase

# 2. Di chuyển vào thư mục docker
cd supabase/docker

# 3. Tạo file env từ mẫu
cp .env.example .env

# 4. QUAN TRỌNG: Thay đổi JWT_SECRET và mật khẩu POSTGRES mặc định
# Không bao giờ dùng thông số mặc định cho môi trường Production

Sau khi cấu hình, bạn chỉ cần chạy:

bash:
docker compose up -d

3. Quản lý Bảo mật và Kết nối

Bad Practice: Mở toàn bộ Ports ra Internet

Để các ports nhạy cảm như 5432 (Postgres) hoặc các API nội bộ mở công khai.

✅ Good Practice: Reverse Proxy (Nginx/Traefik) + SSL

Chỉ mở cổng 80/443 và sử dụng một Reverse Proxy để xử lý SSL (Let's Encrypt) và điều hướng traffic vào Kong API Gateway.

nginx:
# Cấu hình Nginx mẫu
server {
    listen 443 ssl;
    server_name supabase.yourdomain.com;

    location / {
        proxy_pass http://localhost:8000; # Kong Gateway
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

4. Backup và Recovery

Khi tự host, việc sao lưu dữ liệu là trách nhiệm của bạn.

Good Practice: WAL-G hoặc Cron Jobs

Sử dụng công cụ WAL-G để backup liên tục lên S3-compatible storage (như MinIO hoặc AWS S3) để đảm bảo khả năng phục hồi dữ liệu tại bất kỳ thời điểm nào (Point-in-time recovery).

Tổng kết "Failure to Feature"

Thất bại lớn nhất khi tự triển khai Supabase là bỏ qua cấu hình bảo mật ban đầu (JWT, mật khẩu DB). Bằng cách sử dụng Docker Compose kết hợp với một Reverse Proxy mạnh mẽ, bạn biến một cụm dịch vụ phức tạp thành một nền tảng Backend-as-a-Service mạnh mẽ, an toàn và hoàn toàn miễn phí về mặt bản quyền.

Quảng cáo
mdhorizontal