Hướng dẫn sử dụng

Dành cho người vừa được cấp một dự án. Mọi thông tin riêng (địa chỉ, tài khoản, mật khẩu, khoá) nằm trong thư bạn nhận được khi dự án tạo xong.

1. Bạn nhận được những gì

Thành phầnDùng để làm gì
Trang quản trị (Studio)
https://tenduan.sb.rdcpc1hn.xyz
Tạo bảng, gõ SQL, xem dữ liệu, quản lý tệp và người dùng — giao diện giống hệt supabase.com
Đổi mật khẩu tại https://tenduan.sb.rdcpc1hn.xyz/doi-mat-khau — nên đổi ngay lần đầu đăng nhập
REST API
.../rest/v1
Web của bạn đọc ghi dữ liệu qua thư viện supabase-js
Storage
.../storage/v1
Lưu ảnh, tệp đính kèm
Authentication
.../auth/v1
Đăng ký, đăng nhập cho người dùng web của bạn
Kết nối database trực tiếp
postgresql://...
Cho DBeaver, pgAdmin, Prisma, Drizzle, hoặc SQL thuần

2. Tạo bảng đầu tiên

Vào trang quản trị, mở SQL Editor rồi chạy:

create table san_pham (
  id          bigserial primary key,
  ten         text not null,
  gia         numeric(12,2),
  tao_luc     timestamptz default now()
);

insert into san_pham (ten, gia) values ('Sản phẩm thử', 100000);

Hoặc dùng Table Editor để bấm chuột tạo bảng, không cần viết SQL.

3. Gọi từ web của bạn

Cài thư viện:

npm install @supabase/supabase-js

Rồi dùng đúng SUPABASE_URL và ANON_KEY trong thư của bạn:

import { createClient } from '@supabase/supabase-js';

const supabase = createClient(
  'https://tenduan.sb.rdcpc1hn.xyz',  // SUPABASE_URL
  'eyJhbGciOiJIUzI1NiIs...'          // ANON_KEY
);

// đọc
const { data, error } = await supabase.from('san_pham').select('*');

// thêm
await supabase.from('san_pham').insert({ ten: 'Bàn gỗ', gia: 250000 });

// tải tệp lên
await supabase.storage.from('anh').upload('bia.jpg', file);

ANON_KEY để trong mã chạy ở trình duyệt được. SERVICE_ROLE_KEY thì tuyệt đối không, vì nó bỏ qua mọi luật phân quyền — chỉ dùng ở phía máy chủ.

4. Bật phân quyền dòng (quan trọng)

Mặc định bảng mới ai có ANON_KEY cũng đọc ghi được. Muốn giới hạn, bật RLS rồi viết luật:

alter table san_pham enable row level security;

-- ai cũng xem được
create policy "cho doc" on san_pham
  for select using (true);

-- chỉ người đã đăng nhập mới thêm được
create policy "nguoi dang nhap duoc them" on san_pham
  for insert to authenticated with check (true);

5. Nối bằng công cụ database

Dùng chuỗi kết nối trong thư, dán vào DBeaver hoặc pgAdmin. Bắt buộc bật mã hoá:

postgresql://postgres.tenduan:<mật_khẩu>@tenduan.sb.rdcpc1hn.xyz:<cổng>/postgres?sslmode=require

Trong DBeaver: chọn PostgreSQL, điền Host là tenduan.sb.rdcpc1hn.xyz, Port là cổng trong thư, Database postgres, rồi ở tab SSL tích Use SSL.

6. Những điều cần biết trước khi làm thật

ViệcTình trạng
Bảng, SQL, REST API, Storage, RealtimeDùng được ngay
Đăng nhập bằng email có thư xác nhậnChưa chạy. Phải tự khai báo máy chủ gửi thư (SMTP) của bạn thì Supabase mới gửi được
Edge FunctionsKhông triển khai được, vì cần quyền trên máy chủ
Sao lưu dữ liệuChưa có tự động. Bạn tự xuất dữ liệu định kỳ, hoặc nhờ quản trị viên
Hiệu năngMáy dùng chung, 2 nhân CPU. Tránh truy vấn quét toàn bảng lớn và vòng lặp gọi API liên tục
Dừng dự ánBáo quản trị viên. Khi xoá, máy chủ sao lưu lại trước rồi mới xoá

Gặp trục trặc hoặc cần thêm dung lượng, liên hệ quản trị viên Trần Đức Toản. Về trang đăng ký