ZKVault· Tài liệu
Quay lại vault

Triển khai A-Z (Vercel + Supabase)

Toàn bộ quy trình từ con số 0 đến khi app chạy thật trên Vercel. Cần một tài khoản Supabase (miễn phí) và một tài khoản Vercel.

1. Tạo Supabase project
2. Điền .env.local (2 biến)
3. Tắt Confirm email
4. Chạy migration (bảng + RLS)
5. verify:supabase (kiểm tra)
6. dev (local) → 7. deploy Vercel
Quy trình triển khai.
  1. 1
    Tạo Supabase project
    Vào supabase.com, tạo project mới. Mở Project Settings → API, copy Project URLanon public key. Tuyệt đối không dùng service_role key trong app.
  2. 2
    Điền .env.local (2 biến)
    Sao chép .env.local.example thành .env.local rồi điền:
    NEXT_PUBLIC_SUPABASE_URL=https://xxxx.supabase.co
    NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOi...
    
    # tùy chọn - cho "npm run db:reset" (chứa mật khẩu DB, giữ bí mật)
    SUPABASE_DB_URL=postgresql://postgres.xxxx:MATKHAU@aws-0-region.pooler.supabase.com:5432/postgres
    Hai biến NEXT_PUBLIC_* đều công khai an toàn - bí mật của bạn được bảo vệ bởi master password. Email vault không phải biến env - bạn nhập trên màn hình khóa ở lần tạo/mở khóa đầu, app sẽ nhớ và điền sẵn sau đó.
  3. 3
    Tắt xác nhận email
    Trong Supabase: Authentication → Sign In / Providers → Email, tắt Confirm email. App tạo tài khoản rồi đăng nhập ngay bằng mật khẩu dẫn ra; nếu bật xác nhận thì phiên đầu sẽ bị chặn.
  4. 4
    Tạo schema + migration
    Mở SQL Editor, dán lần lượt supabase/migrations/0001_init.sql (bảng + RLS) rồi 0002_add_database_type.sql (cho loại mục database). Hoặc nếu đã đặt SUPABASE_DB_URL:
    npm run db:reset
    (db:reset áp dụng tất cả migration; chỉ dùng khi vault còn trống vì nó xóa sạch dữ liệu cũ.)
  5. 5
    Kiểm tra engine (live)
    Chạy smoke-test đầu cuối với tài khoản nháp (không đụng vault thật); truyền email thật bạn kiểm soát (plus-addressing):
    npm run verify:supabase ban@gmail.com
    Phải qua đủ 8 PASS: provision, đăng nhập, RLS, mở khóa, recovery key, mã hóa CRUD.
  6. 6
    Chạy local
    npm install
    npm run dev   # http://localhost:3000
    Mở trình duyệt, nhập email + tạo vault, lưu kỹ 24 từ recovery.
  7. 7
    Deploy lên Vercel + cài app
    Đẩy code lên GitHub, vào Vercel Add New → Project rồi import repo. Ở Environment Variables thêm 2 biến NEXT_PUBLIC_SUPABASE_URL + NEXT_PUBLIC_SUPABASE_ANON_KEY. Sau khi có domain HTTPS, mở app rồi bấm Install (Add to Home Screen) để cài như PWA.
Đừng commit .env.local
File .env.local chứa key và đã được gitignore. Chỉ commit .env.local.example. Đặt biến môi trường thật trực tiếp trên Vercel.