Supabase là một giải pháp thay thế Firebase mã nguồn mở cung cấp cho bạn tất cả các công cụ cần thiết để phát triển ứng dụng của mình. Supabase cung cấp cơ sở dữ liệu PostgreSQL, xác thực người dùng, lưu trữ và API thời gian thực và tích hợp với các khuôn khổ và công cụ phổ biến như Angular, Flutter, Next.js, React, Svelte và Vue.
Có hai cách để sử dụng Supabase. Tùy chọn đầu tiên là đăng ký ứng dụng lưu trữ trên đám mây của họ, cung cấp nhiều tính năng hơn. Tùy chọn thứ hai là tự lưu trữ mã bằng Docker. Tuy nhiên, có một số cảnh báo về việc tự lưu trữ. Bạn không thể tạo hoặc quản lý các dự án. Hơn nữa, toàn bộ dự án đang trong giai đoạn beta và bạn chỉ nên sử dụng phiên bản tự lưu trữ để thử nghiệm và phát triển cục bộ. Đối với mọi mục đích khác, bạn nên sử dụng ứng dụng đám mây của họ.
Trong hướng dẫn này, bạn sẽ học cách cài đặt Supabase trên máy chủ chạy Debian 11 và proxy nó qua máy chủ Nginx.
[*]
Một số gói mà hệ thống của bạn cần.
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.
Kiểm tra xem tường lửa có đang chạy không.
Bạn sẽ nhận được kết quả sau.
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Cũng cho phép các cổng HTTP và HTTPS.
Bật Tường lửa
Kiểm tra lại trạng thái của tường lửa.
Bạn sẽ thấy đầu ra tương tự.
Xác nhận cài đặt.
Cài đặt kho lưu trữ Docker chính thức.
Cập nhật kho lưu trữ hệ thống Debian.
Cài đặt phiên bản Docker mới nhất.
Xác minh rằng Docker đang chạy.
Theo mặc định, Docker yêu cầu quyền root. Nếu bạn muốn tránh sử dụng sudo mỗi khi chạy lệnh docker, hãy thêm tên người dùng của bạn vào nhóm docker.
Bạn cần đăng xuất khỏi máy chủ và đăng nhập lại với cùng một người dùng để bật thay đổi này.
Chạy lệnh sau để tải xuống bản phát hành ổn định của Docker Compose.
Áp dụng quyền thực thi cho tệp nhị phân.
Tải xuống và cài đặt tập lệnh hoàn thành bash của Docker Compose.
Chạy lệnh sau để áp dụng các thay đổi.
Tham số --depth 1 thực hiện sao chép nông kho lưu trữ, tức là chỉ kéo các cam kết mới nhất chứ không phải toàn bộ lịch sử. Việc này được thực hiện để cải thiện hiệu suất.
Chuyển sang thư mục docker.
Tạo tệp môi trường từ tệp ví dụ.
Mở tệp mới tạo để chỉnh sửa.
Thay đổi giá trị của biến POSTGRES_PASSWORD bằng mật khẩu duy nhất được tạo mạnh.
Tạo một mật khẩu duy nhất khác dài hơn 32 ký tự và không có ký tự đặc biệt. Thay thế giá trị của JWT_SECRET bằng mật khẩu này.
Bạn có thể sử dụng trình tạo mật khẩu trực tuyến như Bitwarden hoặc 1password để tạo các mật khẩu trên.
Mở trang web Supabase và nhập JWT_SECRET của bạn để tạo ANON_KEY. Dán JWT_SECRET của bạn vào hộp đã chỉ định, chọn ANON_KEY từ menu thả xuống Preconfigured Payload và nhấp vào nút Generate JWT để tạo mã thông báo.
Sao chép và dán mã thông báo này làm giá trị cho ANON_KEY trong tệp .env.
Tương tự, lặp lại các bước tương tự để tạo SERVICE_KEY bằng cách chuyển đổi Preconfigured Payload và nhấn nút Generate JWT.
Sao chép mã thông báo đã tạo và dán làm giá trị cho SERVICE_KEY trong tệp .env.
Cấu hình cài đặt SMTP email bằng cách cấu hình các biến sau. Chúng tôi đang sử dụng dịch vụ SES của Amazon cho hướng dẫn của mình.
Cấu hình URL trang web.
Cấu hình URL REST công khai.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Các email xác thực được gửi qua SMTP sẽ có liên kết bị hỏng do lỗi phổ biến trong Supabase. Để khắc phục sự cố này, hãy mở tệp docker-compose.yml.
Thêm biến API_EXTERNAL_URL ngay bên dưới biến GOTRUE_SITE_URL để trông giống như sau.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. Tệp này sẽ bị ghi đè mỗi khi bạn nâng cấp cài đặt Supabase. Hy vọng lỗi sẽ được khắc phục vào lần tới. Bạn sẽ cần thêm biến này theo cách thủ công để đảm bảo lỗi email không lặp lại.
Mở tệp volumes/api/kong.yml để chỉnh sửa.
Trong phần consumers, hãy thay thế khóa của người dùng anon bằng ANON_KEY được tạo trước đó.
Ngoài ra, hãy thay thế khóa của service_role bằng SERVICE_KEY được tạo ở trên.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Kiểm tra trạng thái của các container đang chạy.
Chúng ta sẽ sử dụng trình cài đặt gói Snapd cho mục đích đó. Vì hầu hết các máy chủ Debian không đi kèm với công cụ này, hãy cài đặt trình cài đặt Snapd.
Đảm bảo rằng phiên bản Snapd của bạn đã được cập nhật.
Cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến thư mục /usr/bin.
Xác minh cài đặt.
Tạo chứng chỉ SSL.
Lệnh trên sẽ tải xuống chứng chỉ vào Thư mục /etc/letsencrypt/live/supabase.example.com trên máy chủ của bạn.
Tạo chứng chỉ nhóm Diffie-Hellman.
Tạo thư mục webroot thử thách để tự động gia hạn Let's Encrypt.
Tạo Cron Job để gia hạn SSL. Nó sẽ chạy hàng ngày để kiểm tra chứng chỉ và gia hạn nếu cần. Để thực hiện việc đó, trước tiên, hãy tạo tệp /etc/cron.daily/certbot-renew và mở tệp đó để chỉnh sửa.
Dán mã sau.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Thay đổi quyền trên tệp tác vụ để làm cho nó có thể thực thi được.
Nhập khóa ký Nginx chính thức.
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Cập nhật kho lưu trữ Debian.
Cài đặt Nginx.
Xác minh cài đặt. Đảm bảo bạn sử dụng sudo mỗi khi chạy lệnh Nginx trên Debian. Nếu không, nó sẽ không hoạt động.
Tạo và mở tệp /etc/nginx/conf.d/supabase.conf để chỉnh sửa.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.
Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Thêm dòng sau trước dòng include /etc/nginx/conf.d/*.conf;.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xác minh cú pháp tệp cấu hình Nginx.
Khởi động dịch vụ Nginx để kích hoạt cấu hình mới.
Bạn không thể tạo dự án mới, nhưng bạn có thể quản lý các dự án hiện có và cấu hình cơ sở dữ liệu, lưu trữ và xác thực.
Cài đặt gói apache2-utils cho Nginx.
Tạo tệp mật khẩu cho người dùng supabase. Bạn có thể chọn bất kỳ tên người dùng nào bạn muốn. Nó sẽ nhắc bạn nhập mật khẩu mới. Nhập mật khẩu mạnh để hoàn tất thiết lập tệp.
Cờ -c yêu cầu tiện ích tạo tệp mới. Nếu bạn bỏ qua tệp, bạn cần chỉ định vị trí của tệp hiện có.
Mở /etc/nginx/conf.d/supabase.conf để chỉnh sửa.
Thực hiện các thay đổi trong các phần sau của tệp, như được hiển thị bên dưới.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xác minh cấu hình.
Khởi động lại dịch vụ Nginx.
Lần sau khi bạn mở Supabase, bạn sẽ được chào đón bằng màn hình đăng nhập sau.
Chuyển sang thư mục Supabase.
Kéo kho lưu trữ Github mới nhất.
Kiểm tra bất kỳ thay đổi nào trong các tệp docker/.env, docker/volumes/api/kong.yml để tìm bất kỳ thay đổi nào cần cấu hình lại.
Tắt và dọn dẹp các vùng chứa Docker hiện có.
Kéo các hình ảnh mới nhất.
Khởi động lại các vùng chứa.
Có hai cách để sử dụng Supabase. Tùy chọn đầu tiên là đăng ký ứng dụng lưu trữ trên đám mây của họ, cung cấp nhiều tính năng hơn. Tùy chọn thứ hai là tự lưu trữ mã bằng Docker. Tuy nhiên, có một số cảnh báo về việc tự lưu trữ. Bạn không thể tạo hoặc quản lý các dự án. Hơn nữa, toàn bộ dự án đang trong giai đoạn beta và bạn chỉ nên sử dụng phiên bản tự lưu trữ để thử nghiệm và phát triển cục bộ. Đối với mọi mục đích khác, bạn nên sử dụng ứng dụng đám mây của họ.
Trong hướng dẫn này, bạn sẽ học cách cài đặt Supabase trên máy chủ chạy Debian 11 và proxy nó qua máy chủ Nginx.
Điều kiện tiên quyết
-
Một máy chủ chạy Debian 11 với RAM tối thiểu 2GB.
-
Một người dùng không phải root có quyền sudo.
-
Một tên miền (supabase.example.com) trỏ đến máy chủ.
-
Mọi thứ đều được cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade
Một số gói mà hệ thống của bạn cần.
Mã:
$ sudo apt install nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring -y
Bước 1 - Cấu hình Tường lửa
Bước đầu tiên là cấu hình tường lửa. Debian đi kèm với ufw (Tường lửa đơn giản).Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Mã:
Trạng thái: không hoạt động
Mã:
$ sudo ufw allow OpenSSH
Mã:
$ sudo ufw allow 80/tcp$ sudo ufw allow 443/tcp
Mã:
$ sudo ufw enableLệnh có thể làm gián đoạn các kết nối ssh hiện có. Tiến hành thao tác (y|n)? yTường lửa đang hoạt động và được bật khi khởi động hệ thống
Mã:
$ sudo ufw status
Mã:
Trạng thái: đang hoạt độngĐến Hành động Từ-- ------ ----OpenSSH ALLOW Anywhere80/tcp ALLOW Anywhere443/tcp ALLOW AnywhereOpenSSH (v6) ALLOW Anywhere (v6)80/tcp (v6) ALLOW Anywhere (v6)443/tcp (v6) ALLOW Anywhere (v6)
Bước 2 - Cài đặt Git
Cài đặt Git.
Mã:
$ sudo apt install git
Mã:
$ git --versiongit version 2.30.2
Bước 3 - Cài đặt Docker
Để cài đặt phiên bản Docker mới nhất, hãy thêm khóa GPG chính thức của Docker.
Mã:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Mã:
$ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Mã:
$ sudo apt update
Mã:
$ sudo apt install docker-ce docker-ce-cli containerd.io
Mã:
$ sudo systemctl status docker? docker.service - Docker Application Container Engine Đã tải: đã tải (/lib/systemd/system/docker.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ Hai 2022-03-21 03:19:09 UTC; 9 giây trướcĐược kích hoạt bởi: ? docker.socket Tài liệu: https://docs.docker.com PID chính: 15816 (dockerd) Nhiệm vụ: 7 Bộ nhớ: 27,9M CPU: 566ms CGroup: /system.slice/docker.service ??15816 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Mã:
$ sudo usermod -aG docker $(whoami)
Bước 4 - Cài đặt Docker Compose
Phiên bản mới nhất hiện có của Docker Compose là 2.0.x, nhưng vì lý do tương thích, chúng tôi sẽ cài đặt phiên bản cũ hơn và ổn định hơn v1.29.2.Chạy lệnh sau để tải xuống bản phát hành ổn định của Docker Compose.
Mã:
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Mã:
$ sudo chmod +x /usr/local/bin/docker-compose
Mã:
$ sudo curl \ -L https://raw.githubusercontent.com/docker/compose/1.29.2/contrib/completion/bash/docker-compose \ -o /etc/bash_completion.d/docker-compose
Mã:
$ source ~/.bashrc
Bước 5 - Tải xuống và cấu hình Supabase
Sao chép kho lưu trữ Github Supabase.
Mã:
$ git clone --depth 1 https://github.com/supabase/supabase.git
Chuyển sang thư mục docker.
Mã:
$ cd supabase/docker
Mã:
$ cp .env.example .env
Mã:
$ nano .env
Mã:
$ POSTGRES_PASSWORD=
Mã:
JWT_SECRET=
Mở trang web Supabase và nhập JWT_SECRET của bạn để tạo ANON_KEY. Dán JWT_SECRET của bạn vào hộp đã chỉ định, chọn ANON_KEY từ menu thả xuống Preconfigured Payload và nhấp vào nút Generate JWT để tạo mã thông báo.
Sao chép và dán mã thông báo này làm giá trị cho ANON_KEY trong tệp .env.
Tương tự, lặp lại các bước tương tự để tạo SERVICE_KEY bằng cách chuyển đổi Preconfigured Payload và nhấn nút Generate JWT.
Sao chép mã thông báo đã tạo và dán làm giá trị cho SERVICE_KEY trong tệp .env.
Cấu hình cài đặt SMTP email bằng cách cấu hình các biến sau. Chúng tôi đang sử dụng dịch vụ SES của Amazon cho hướng dẫn của mình.
Mã:
[emailprotected]SMTP_HOST=email-smtp.us-west-2.amazonaws.comSMTP_PORT=587SMTP_USER=SMTP_PASS=SMTP_SENDER_NAME=SupabaseAdmin
Mã:
SITE_URL=https://supabase.example.com
Mã:
PUBLIC_REST_URL=https://supabase.example.com/rest/v1/
Các email xác thực được gửi qua SMTP sẽ có liên kết bị hỏng do lỗi phổ biến trong Supabase. Để khắc phục sự cố này, hãy mở tệp docker-compose.yml.
Mã:
$ nano docker-compose.yml
Mã:
GOTRUE_SITE_URL: ${SITE_URL} API_EXTERNAL_URL: ${SITE_URL}
Mở tệp volumes/api/kong.yml để chỉnh sửa.
Mã:
$ nano volumes/api/kong.yml
Mã:
consumers: - username: anon keyauth_credentials: - key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE
Mã:
- tên người dùng: service_role keyauth_credentials: - khóa: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q
Bước 6 - Cài đặt Supabase
Chạy Supabase bằng cách sử dụng lệnh sau. Quá trình này sẽ mất một thời gian.
Mã:
$ docker-compose -f docker-compose.yml -f ./dev/docker-compose.dev.yml up -d
Mã:
$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESd25393873731 supabase/storage-api:v0.10.0 "/bin/sh -c \"./stora…" Khoảng một phút trước Lên Khoảng một phút 5000/tcp supabase-storagee6df7dcdd45b supabase/gotrue:v2.5.21 "gotrue" Khoảng một phút trước Lên Khoảng một phút supabase-authb3a758592d10 supabase/postgres-meta:v0.29.0 "postgres-meta" Khoảng một phút trước Lên Khoảng một phút 0.0.0.0:5555->8080/tcp, :::5555->8080/tcp supabase-metacdb18c248f79 supabase/realtime:v0.21.0 "bash -c './prod/rel…" Khoảng một phút trước Lên Khoảng một phút supabase-realtime71417337efae postgrest/postgrest:v9.0.0 "/bin/postgrest" Khoảng một phút trước Lên Khoảng một phút 3000/tcp supabase-rest2d51af16bd1f kong:2.1 "/docker-entrypoint.…" 2 phút trước Lên Khoảng một phút 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 8001/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp, 8444/tcp supabase-kongd6490380e4e8 supabase/postgres:14.1.0 "docker-entrypoint.s…" 2 phút trước Lên Khoảng một phút 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp supabase-db40a49d1482fa supabase/studio:latest "docker-entrypoint.s…" 2 phút trước Lên Khoảng một phút 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp supabase-studio3cce50db9782 inbucket/inbucket:stable "/start-inbucket.sh …" 2 phút trước Lên Khoảng một phút (khỏe mạnh) 0.0.0.0:1100->1100/tcp, :::1100->1100/tcp, 0.0.0.0:2500->2500/tcp, :::2500->2500/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp supabase-mail
Bước 7 - Cài đặt SSL
Để cài đặt chứng chỉ SSL bằng Let's Encrypt, chúng ta cần cài đặt công cụ Certbot.Chúng ta sẽ sử dụng trình cài đặt gói Snapd cho mục đích đó. Vì hầu hết các máy chủ Debian không đi kèm với công cụ này, hãy cài đặt trình cài đặt Snapd.
Mã:
$ sudo apt install snapd
Mã:
$ sudo snap install core && sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ certbot --versioncertbot 1.25.0
Mã:
$ sudo certbot certonly --standalone --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d supabase.example.com
Tạo chứng chỉ nhóm Diffie-Hellman.
Mã:
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
Mã:
$ sudo mkdir -p /var/lib/letsencrypt
Mã:
$ sudo nano /etc/cron.daily/certbot-renew
Mã:
#!/bin/shcertbot renew --cert-name supabase.example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Thay đổi quyền trên tệp tác vụ để làm cho nó có thể thực thi được.
Mã:
$ sudo chmod +x /etc/cron.daily/certbot-renew
Bước 8 - Cài đặt và cấu hình Nginx
Debian đi kèm với phiên bản Nginx cũ hơn. Bạn cần tải xuống kho lưu trữ Nginx chính thức để cài đặt phiên bản mới nhất.Nhập khóa ký Nginx chính thức.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \ http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
Mã:
$ sudo nginx -vnginx version: nginx/1.20.2
Mã:
$ sudo nano /etc/nginx/conf.d/supabase.conf
Mã:
map $http_upgrade $connection_upgrade { default upgrade; '' close;}upstream supabase { server localhost:3000;}upstream kong { server localhost:8000;}# enforce HTTPSserver { listen 80; listen [::]:80; server_name supabase.example.com; return 301 https://$host$request_uri;}máy chủ { lắng nghe 443 ssl http2; lắng nghe [::]:443 ssl http2; tên máy chủ supabase.example.com; nhật ký truy cập /var/log/nginx/supabase.access.log; nhật ký lỗi /var/log/nginx/supabase.error.log; bật gzip; # Chứng chỉ SSL ssl /etc/letsencrypt/live/supabase.example.com/fullchain.pem; khóa chứng chỉ ssl /etc/letsencrypt/live/supabase.example.com/privkey.pem; chứng chỉ ssl đáng tin cậy /etc/letsencrypt/live/supabase.example.com/chain.pem; thời gian chờ ssl_session 5 phút; bộ nhớ đệm ssl_session được chia sẻ:MozSSL:10 phút; ssl_session_tickets tắt; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers bật; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapling bật; ssl_stapling_verify bật; ssl_dhparam /etc/ssl/certs/dhparam.pem; resolver 8.8.8.8; client_max_body_size 100m; # Vị trí REST API ~ ^/rest/v1/(.*)$ { proxy_set_header Máy chủ $host; proxy_pass http://kong; proxy_redirect tắt; } # Vị trí xác thực ~ ^/auth/v1/(.*)$ { proxy_set_header Máy chủ $host; proxy_pass http://kong; proxy_redirect tắt; } # Vị trí thời gian thực ~ ^/realtime/v1/(.*)$ { proxy_redirect tắt; proxy_pass http://kong; proxy_http_version 1.1; proxy_set_header Nâng cấp $http_upgrade; proxy_set_header Kết nối $connection_upgrade; proxy_set_header Máy chủ $host; } # Vị trí Studio / { proxy_set_header Máy chủ $host; proxy_pass http://supabase; proxy_redirect tắt; proxy_set_header Nâng cấp $http_upgrade; }}
Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Mã:
server_names_hash_bucket_size 64;
Xác minh cú pháp tệp cấu hình Nginx.
Mã:
$ sudo nginx -tnginx: tệp cấu hình /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
Mã:
$ sudo systemctl start nginx
Bước 9 - Truy cập Supabase
Bây giờ bạn có thể truy cập Supabase qua URL https://supabase.example.com trong trình duyệt web của bạn.Bạn không thể tạo dự án mới, nhưng bạn có thể quản lý các dự án hiện có và cấu hình cơ sở dữ liệu, lưu trữ và xác thực.
Bước 10 - Kích hoạt xác thực HTTP
Supabase không cung cấp quản lý người dùng, vì vậy bạn cần bảo mật cài đặt Supabase của mình. Cách dễ nhất để thực hiện điều đó là bật xác thực HTTP bằng máy chủ Nginx.Cài đặt gói apache2-utils cho Nginx.
Mã:
$ sudo apt install apache2-utils
Mã:
$ sudo htpasswd -c /etc/nginx/.htpasswd supabaseMật khẩu mới:Nhập lại mật khẩu mới:Đang thêm mật khẩu cho người dùng supabase
Mở /etc/nginx/conf.d/supabase.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/supabase.conf
Mã:
# Vị trí REST API ~ ^/rest/v1/(.*)$ { auth_basic tắt; proxy_set_header Host $host; proxy_pass http://kong; proxy_redirect tắt; } # Vị trí xác thực ~ ^/auth/v1/(.*)$ { auth_basic tắt; proxy_set_header Host $host; proxy_pass http://kong; proxy_redirect tắt; } # Vị trí thời gian thực ~ ^/realtime/v1/(.*)$ { auth_basic tắt; proxy_redirect tắt; proxy_pass http://kong; proxy_http_version 1.1; proxy_set_header Nâng cấp $http_upgrade; proxy_set_header Kết nối $connection_upgrade; proxy_set_header Máy chủ $host; } # Vị trí Studio / { auth_basic “Đăng nhập Supabase Studio”; auth_basic_user_file /etc/nginx/.htpasswd; proxy_set_header Máy chủ $host; proxy_pass http://supabase; proxy_redirect tắt; proxy_set_header Nâng cấp $http_upgrade; }
Xác minh cấu hình.
Mã:
$ sudo nginx -tnginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: tệp cấu hình /etc/nginx/nginx.conf đã kiểm tra thành công
Mã:
$ sudo systemctl restart nginx
Bước 11 - Cập nhật Supabase
Supabase là sản phẩm đang trong quá trình hoàn thiện và sẽ liên tục thay đổi. Nếu bạn sử dụng nó như một phiên bản tự lưu trữ, bạn phải cập nhật cài đặt Supabase của mình.Chuyển sang thư mục Supabase.
Mã:
$ cd ~/supabase
Mã:
$ git pull
Tắt và dọn dẹp các vùng chứa Docker hiện có.
Mã:
$ docker-compose down --remove-orphans
Mã:
$ docker-compose pull
Mã:
$ docker-compose -f docker-compose.yml -f ./dev/docker-compose.dev.yml up -d