Quay lại danh sách
Tin tức công nghệ

Hướng Dẫn Tự Host Supabase Thay Thế Firebase Trên Một VPS Duy Nhất Bằng Docker Compose

7 tháng 6, 2026

Giới Thiệu Về Xu Hướng Self-Hosting Và Supabase

Trong kỷ nguyên chuyển đổi số, việc quản lý và làm chủ dữ liệu trở thành yếu tố sống còn đối với các doanh nghiệp. Firebase của Google từ lâu đã là lựa chọn quen thuộc của các nhà phát triển nhờ tính tiện lợi và khả năng triển khai nhanh chóng. Tuy nhiên, mô hình tính phí theo mức độ sử dụng (pay-as-you-go) của Firebase đôi khi tạo ra những gánh nặng tài chính không thể dự đoán trước, cùng với đó là nỗi lo về việc "vendor lock-in" (bị phụ thuộc hoàn toàn vào một nhà cung cấp).

Chính vì lý do đó, Supabase nổi lên như một giải pháp thay thế mã nguồn mở (Open-source Firebase alternative) hoàn hảo. Supabase cung cấp đầy đủ các tính năng cốt lõi như Database (PostgreSQL), Authentication, Instant APIs, Realtime và Storage. Đặc biệt hơn, Supabase cho phép doanh nghiệp tự host (self-host) toàn bộ hệ thống trên hạ tầng riêng. Bài viết này sẽ hướng dẫn chi tiết cách triển khai một hệ thống Supabase hoàn chỉnh trên một máy chủ ảo (VPS) duy nhất bằng Docker Compose, giúp tối ưu hóa chi phí và bảo mật thông tin tuyệt đối.

Tại Sao Nên Chọn Supabase Và Triển Khai Trên Docker?

Trước khi đi vào chi tiết kỹ thuật, chúng ta cần hiểu rõ những lợi ích chiến lược mà mô hình này mang lại cho doanh nghiệp:

  • Làm chủ hoàn toàn dữ liệu: Đáp ứng các tiêu chuẩn bảo mật nghiêm ngặt và tuân thủ pháp lý về lưu trữ dữ liệu người dùng tại địa phương.
  • Tối ưu hóa chi phí cố định: Thay vì trả tiền theo số lượng request hay dung lượng băng thông biến động, doanh nghiệp chỉ cần trả một khoản chi phí cố định hàng tháng cho VPS.
  • Sức mạnh của PostgreSQL: Khác với NoSQL của Firebase, Supabase xây dựng trên nền tảng PostgreSQL - hệ quản trị cơ sở dữ liệu quan hệ mạnh mẽ, hỗ trợ các truy vấn phức tạp và toàn vẹn dữ liệu cao.
  • Triển khai nhanh chóng với Docker Compose: Đóng gói toàn bộ các dịch vụ phức tạp của Supabase (Kong, GoTrue, PostgREST, Realtime, Storage, Inbucket...) vào các container riêng biệt, giúp việc quản lý, cập nhật và sao lưu trở nên dễ dàng hơn bao giờ hết.

Chuẩn Bị Hạ Tầng Trước Khi Triển Khai

Để đảm bảo hệ thống vận hành mượt mà và ổn định, cấu hình phần cứng và phần mềm của VPS cần đạt các tiêu chuẩn tối thiểu sau:

1. Cấu hình phần cứng khuyến nghị

  • CPU: Tối thiểu 2 Cores (Khuyến nghị 4 Cores cho môi trường Production).
  • RAM: Tối thiểu 4GB (PostgreSQL và các dịch vụ đi kèm khá ngốn RAM khi có tải cao).
  • Ổ cứng: Tối thiểu 40GB SSD/NVMe (Tốc độ đọc ghi cao là bắt buộc cho database).
  • Hệ điều hành: Ubuntu Server 22.04 LTS hoặc 24.04 LTS.

2. Điều kiện tiên quyết về mạng và bảo mật

Bạn cần chuẩn bị một tên miền (domain hoặc subdomain) đã được trỏ về IP của VPS (ví dụ: supabase.yourcompany.com). Ngoài ra, hãy đảm bảo các cổng sau đã được mở trên Firewall của VPS:

  • Cổng 80 và 443: Dành cho lưu lượng web và chứng chỉ SSL (HTTPS).
  • Cổng 22: Truy cập SSH quản trị.

Quy Trình Triển Khai Supabase Bằng Docker Compose

Hãy thực hiện theo các bước chuẩn hóa dưới đây để thiết lập hệ thống.

Bước 1: Cài đặt Docker và Docker Compose trên VPS

Cập nhật hệ thống và cài đặt Docker Engine cùng Docker Compose plugin bằng các lệnh sau:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git apt-transport-https ca-certificates gnupg lsb-release

Tiếp theo, cài đặt Docker chính thức từ Docker repository và kích hoạt dịch vụ:

curl -fsSL [https://get.docker.com](https://get.docker.com) -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable docker --now

Bước 2: Clone Source Code Cấu Hình Supabase Self-Hosted

Supabase cung cấp sẵn một kho lưu trữ cấu hình dành riêng cho việc self-host. Chúng ta sẽ tiến hành clone repository này về VPS:

git clone --depth 1 [https://github.com/supabase/supabase.git](https://github.com/supabase/supabase.git)
cd supabase/docker

Bước 3: Cấu Hình Biến Môi Trường (.env)

Đây là bước quan trọng nhất ảnh hưởng trực tiếp đến tính bảo mật của toàn bộ hệ thống. Sao chép file cấu hình mẫu:

cp .env.example .env

Tiến hành chỉnh sửa file .env bằng trình soạn thảo nano:

nano .env

Bạn bắt buộc phải thay đổi các tham số bảo mật cốt lõi sau:

  • POSTGRES_PASSWORD: Mật khẩu quản trị tối cao của cơ sở dữ liệu PostgreSQL. Hãy sử dụng một chuỗi ngẫu nhiên dài và phức tạp.
  • JWT_SECRET: Chuỗi bí mật dùng để mã hóa và xác thực token người dùng. Chuỗi này phải có độ dài tối thiểu 32 ký tự.
  • ANON_KEY và SERVICE_ROLE_KEY: Đây là các API key dùng cho Client và Server. Bạn cần tạo lại các key này dựa trên JWT_SECRET mới thông qua công cụ JWT generator của Supabase hoặc sử dụng các lệnh mã hóa JWT chuyên dụng.
  • SITE_URL: Trỏ về domain của bạn (ví dụ: [https://supabase.yourcompany.com](https://supabase.yourcompany.com)).

Bước 4: Khởi Chạy Hệ Thống

Sau khi đã kiểm tra kỹ lưỡng các biến môi trường, tiến hành tải các Docker image và khởi chạy các dịch vụ ở chế độ chạy ngầm (detached mode):

sudo docker compose up -d

Quá trình này có thể mất từ 3 đến 5 phút tùy thuộc vào tốc độ mạng của VPS. Bạn có thể kiểm tra trạng thái hoạt động của các container bằng lệnh:

sudo docker compose ps

Thiết Lập Reverse Proxy Với Nginx Và SSL Let's Encrypt

Để đảm bảo an toàn cho dữ liệu truyền tải trên môi trường internet, việc cấu hình HTTPS là bắt buộc. Chúng ta sẽ sử dụng Nginx làm Reverse Proxy để điều hướng lưu lượng từ cổng 443 vào cổng API Gateway (Kong - mặc định chạy ở cổng 8000) của Supabase.

1. Cài đặt Nginx và Certbot

sudo apt install -y nginx certbot python3-certbot-nginx

2. Cấu hình Nginx Virtual Host

Tạo file cấu hình mới cho domain của bạn:

sudo nano /etc/nginx/sites-available/supabase

Thêm đoạn cấu hình sau (thay thế domain bằng tên miền thực tế của bạn):

server {
    listen 80;
    server_name supabase.yourcompany.com;

    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $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;
    }
}

Kích hoạt cấu hình và khởi động lại Nginx:

sudo ln -s /etc/nginx/sites-available/supabase /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

3. Cấp phát chứng chỉ SSL miễn phí

Sử dụng Certbot để tự động cấu hình SSL bảo mật:

sudo certbot --nginx -d supabase.yourcompany.com

Tối Ưu Hóa Và Quản Trị Hệ Thống Cho Doanh Nghiệp

Triển khai thành công mới chỉ là bước khởi đầu. Để hệ thống hoạt động ổn định lâu dài trong môi trường sản xuất (Production), các kỹ sư hệ thống cần lưu ý các điểm sau:

1. Chiến lược sao lưu (Backup) dữ liệu

Cơ sở dữ liệu PostgreSQL chứa toàn bộ tài sản thông tin của doanh nghiệp. Hãy thiết lập một cron job tự động chạy lệnh pg_dump hàng ngày và đẩy file backup lên một dịch vụ lưu trữ đám mây độc lập (ví dụ: AWS S3 hoặc Backblaze B2) để phòng ngừa sự cố phần cứng VPS.

2. Giám sát hiệu năng (Monitoring)

Sử dụng các công cụ như Prometheus và Grafana, hoặc đơn giản là cài đặt các agent như Netdata trên VPS để theo dõi mức độ tiêu thụ CPU, RAM, IOPS của ổ cứng. Điều này giúp bạn kịp thời nâng cấp cấu hình VPS trước khi hệ thống rơi vào trạng thái quá tải.

3. Bảo mật lớp mạng

Mặc định, Supabase Studio (giao diện quản trị) chạy ở cổng 8000 (thông qua Kong). Hãy đảm bảo bạn đã cấu hình chặn quyền truy cập trực tiếp vào các cổng không cần thiết từ môi trường bên ngoài bằng UFW (Uncomplicated Firewall) trên Ubuntu, chỉ cho phép truy cập thông qua Reverse Proxy đã có mã hóa.

Lời Kết

Tự host Supabase bằng Docker Compose trên một VPS duy nhất là một giải pháp kinh tế, hiệu quả và đầy mạnh mẽ cho các doanh nghiệp vừa và nhỏ, cũng như các startup muốn tối ưu hóa chi phí vận hành hạ tầng backend. Bằng việc làm chủ công nghệ này, doanh nghiệp không chỉ tiết kiệm được ngân sách lớn so với việc sử dụng các dịch vụ Cloud độc quyền, mà còn nắm trọn quyền kiểm soát, bảo mật thông tin và sẵn sàng cho các bước thang trưởng tiếp theo trong tương lai.