เซิร์ฟเวอร์เฉพาะ: ตั้งค่า Supabase บน Linux
คู่มือนี้ถูกสร้างขึ้นด้วยผลิตภัณฑ์ดังต่อไปนี้:
(รายละเอียดอาจแตกต่างกันไปตามผลิตภัณฑ์จากผู้ให้บริการต่างๆ แต่แนวคิดหลักยังคงเหมือนเดิม)
แนะนำ
Supabase คือแพลตฟอร์มพัฒนา Postgres แบบโอเพ่นซอร์สที่มาพร้อมฐานข้อมูล Postgres เต็มรูปแบบ รวมถึงระบบยืนยันตัวตน, API ทันที, ระบบเรียลไทม์ และพื้นที่เก็บข้อมูล ทำให้เป็นทางเลือกโอเพ่นซอร์สแทน Firebase
กำลังคิดจะโฮสต์บริการนี้เองอยู่ใช่ไหม? เราจะพาคุณผ่านทุกขั้นตอนการตั้งค่าและกำหนดค่า พร้อมทุกสิ่งที่คุณต้องรู้เพื่อให้การใช้งานราบรื่น
ความต้องการเบื้องต้น
ก่อนติดตั้ง Supabase ให้แน่ใจว่าสภาพแวดล้อมโฮสต์ของคุณตรงตามข้อกำหนดต่อไปนี้ เพื่อรับประกันการติดตั้งที่ราบรื่นและประสิทธิภาพที่ดีที่สุด
| ฮาร์ดแวร์ | ขั้นต่ำ | คำแนะนำจาก ZAP-Hosting |
|---|---|---|
| CPU | 1 คอร์ CPU | 4 คอร์ CPU |
| RAM | 4 GB | 8 GB |
| พื้นที่ดิสก์ | 25 GB | 25 GB |
ซอฟต์แวร์ต้องการให้ติดตั้ง dependencies ที่จำเป็นทั้งหมดและรันบนระบบปฏิบัติการที่รองรับ ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ของคุณตรงตามข้อกำหนดต่อไปนี้ก่อนเริ่มติดตั้ง:
Dependencies: Git, Docker (Engine และ Compose)
ระบบปฏิบัติการ: เวอร์ชันล่าสุดของ Ubuntu/Debian ที่รองรับ Docker 2
ตรวจสอบให้แน่ใจว่าติดตั้ง dependencies ครบถ้วนและใช้ระบบปฏิบัติการเวอร์ชันที่ถูกต้อง เพื่อหลีกเลี่ยงปัญหาความเข้ากันได้ระหว่างการติดตั้ง Supabase
การเตรียมตัว
ก่อนตั้งค่า Supabase คุณต้องเตรียมระบบของคุณก่อน ซึ่งรวมถึงการอัปเดตระบบปฏิบัติการเป็นเวอร์ชันล่าสุดและติดตั้ง dependencies ที่จำเป็นทั้งหมด การเตรียมตัวเหล่านี้ช่วยให้สภาพแวดล้อมมีความเสถียรและป้องกันปัญหาระหว่างหรือหลังการติดตั้ง
อัปเดตระบบ
เพื่อให้แน่ใจว่าระบบของคุณรันด้วยซอฟต์แวร์และการปรับปรุงความปลอดภัยล่าสุด คุณควรอัปเดตระบบก่อนเสมอ โดยรันคำสั่งนี้:
sudo apt update && sudo apt upgrade -y
คำสั่งนี้จะช่วยให้ระบบของคุณมีแพตช์ความปลอดภัยและเวอร์ชันซอฟต์แวร์ล่าสุดก่อนดำเนินการต่อ
ติดตั้ง dependencies
เมื่ออัปเดตเสร็จแล้ว ก็สามารถติดตั้ง dependencies ต่อได้
Git
ข้อมูล Supabase จะถูกดาวน์โหลดผ่าน GitHub ซึ่งต้องติดตั้ง Git ก่อน รันคำสั่งนี้:
sudo apt install git-all
Docker
Supabase จะถูกดีพลอยและรันบนเครื่องของคุณผ่านคอนเทนเนอร์ Docker ซึ่งต้องติดตั้ง Docker ก่อน รันคำสั่งนี้:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
คู่มือการติดตั้งและวิธีใช้ Docker แบบละเอียดมีให้ใน คู่มือ Docker
การติดตั้ง
เมื่อทุกข้อกำหนดครบถ้วนและเตรียมตัวเรียบร้อยแล้ว คุณก็สามารถติดตั้งแอป Supabase ได้เลย
ดึงรีโพซิทอรี Supabase สร้างไดเรกทอรีโปรเจกต์เฉพาะ และคัดลอกไฟล์ Docker และไฟล์ตัวอย่าง environment เข้าไป
git clone --depth 1 https://github.com/supabase/supabase
mkdir supabase-project
cp -rf supabase/docker/* supabase-project
cp supabase/docker/.env.example supabase-project/.env
เปลี่ยนไปยังไดเรกทอรีโปรเจกต์ ดึงอิมเมจคอนเทนเนอร์ล่าสุด และรันสแตกในโหมด detached
cd supabase-project
docker compose pull
docker compose up -d
ตอนนี้คุณสามารถเข้าถึง Supabase Studio ผ่าน http://<your-ip>:8000 ระบบจะขอชื่อผู้ใช้และรหัสผ่าน ค่าเริ่มต้นคือ:
- ชื่อผู้ใช้:
supabase - รหัสผ่าน:
this_password_is_insecure_and_should_be_updated
แอปของคุณกำลังรันด้วยข้อมูลเข้าสู่ระบบเริ่มต้น รีบตั้งค่าความปลอดภัยให้บริการของคุณโดยเร็วที่สุดตามคำแนะนำด้านล่าง
การกำหนดค่า
อย่าดีพลอยด้วยค่าตัวอย่างหรือค่าเริ่มต้นเด็ดขาด คุณควรเปลี่ยนทุกตัวแปรเป็นความลับที่แข็งแรงและไม่ซ้ำใคร ตรวจสอบการตั้งค่าตามความต้องการด้านความปลอดภัยของคุณ และรีสตาร์ทบริการทั้งหมดเพื่อให้การเปลี่ยนแปลงมีผล
สร้าง API keys ที่ปลอดภัยก่อนเปิดเผยบริการ เริ่มจากเลือก JWT secret ความยาว 40 ตัวอักษร คุณสามารถใช้ค่าที่ให้มา หรือสร้างเองก็ได้ เก็บความลับนี้ไว้ในที่ปลอดภัย ห้ามแชร์หรือคอมมิตลงระบบควบคุมเวอร์ชัน ใช้ความลับนี้สร้าง JWT แล้วสร้าง anon และ service API keys ตามฟอร์มในเอกสาร Supabase: https://supabase.com/docs/guides/self-hosting/docker#generate-api-keys
รันฟอร์มสองครั้งเพื่อสร้างทั้งสองคีย์ อัปเดตไฟล์ ./docker/.env ด้วย:
ANON_KEY: คีย์ anonSERVICE_ROLE_KEY: คีย์ service
อัปเดตความลับที่จำเป็นใน ./docker/.env ค่าต่อไปนี้ต้องตั้งเพื่อให้ดีพลอยทำงานได้:
POSTGRES_PASSWORD: รหัสผ่านสำหรับ rolepostgresJWT_SECRET: ใช้โดย PostgREST และ GoTrueSITE_URL: URL หลักของเว็บไซต์คุณSMTP_*: ข้อมูลรับรองเซิร์ฟเวอร์เมลPOOLER_TENANT_ID: tenant id ที่ใช้โดย Supavisor pooler
ปกป้องแดชบอร์ดด้วยข้อมูลเข้าสู่ระบบใหม่ก่อนใช้งานจริง แก้ไข ./docker/.env:
DASHBOARD_USERNAME: ผู้ใช้แดชบอร์ดDASHBOARD_PASSWORD: รหัสผ่านแดชบอร์ด
คุณสามารถกำหนดผู้ใช้แดชบอร์ดหลายคนใน ./docker/volumes/api/kong.yml:
basicauth_credentials:
- consumer: DASHBOARD
username: user_one
password: password_one
- consumer: DASHBOARD
username: user_two
password: password_two
ถ้าต้องการเปิดใช้ฟีเจอร์แดชบอร์ดทั้งหมดนอก localhost ให้ตั้งค่า SUPABASE_PUBLIC_URL ใน ./docker/.env เป็น URL หรือ IP ที่จะใช้เข้าถึงแดชบอร์ด
ใช้การเปลี่ยนแปลงโดยรีสตาร์ทสแตก:
docker compose down
docker compose up -d
สรุปและแหล่งข้อมูลเพิ่มเติม
ยินดีด้วย! ตอนนี้คุณติดตั้งและกำหนดค่า Supabase บนเซิร์ฟเวอร์เฉพาะของคุณเรียบร้อยแล้ว เรายังแนะนำให้ดูแหล่งข้อมูลต่อไปนี้ที่จะช่วยให้คุณได้รับคำแนะนำและความช่วยเหลือเพิ่มเติมในกระบวนการตั้งค่าเซิร์ฟเวอร์
- Supabase.com - เว็บไซต์ทางการ
- Supabase.com/docs/guides/self-hosting - เอกสาร Supabase
มีคำถามเฉพาะที่ไม่ได้กล่าวถึงที่นี่ไหม? หากต้องการคำถามเพิ่มเติมหรือความช่วยเหลือ ติดต่อทีมซัพพอร์ตของเราได้เลย พร้อมช่วยเหลือคุณทุกวัน! 🙂