ภาพรวม
Environment variables ช่วยให้คุณสามารถเก็บค่าการตั้งค่าและ secrets ที่แอปพลิเคชันของคุณจำเป็นต้องใช้ในการทำงาน กรณีการใช้งานทั่วไป ได้แก่:- API keys และ tokens
- ข้อมูลประจำตัวของบริการภายนอก
- Feature flags
- การตั้งค่าเฉพาะสำหรับแต่ละ environment
Deployment Targets
Environment variable แต่ละตัวสามารถตั้งค่าได้สำหรับหนึ่งหรือหลาย deployment targets:Sandbox
Environment สำหรับการพัฒนาที่คุณสร้างและทดสอบแอปพลิเคชันของคุณ เมื่อคุณแก้ไข sandbox environment variables, dev server จะรีสตาร์ทโดยอัตโนมัติเพื่อใช้การเปลี่ยนแปลงPreview
Branch preview deployments ที่สร้างขึ้นสำหรับ Git branches เฉพาะ ใช้ preview variables เพื่อทดสอบกับข้อมูลที่คล้ายกับ production โดยไม่กระทบกับเว็บไซต์ที่เผยแพร่แล้วProduction
แอปพลิเคชันที่เผยแพร่และใช้งานจริงของคุณ Production variables ถูกใช้เมื่อคุณ deploy โปรเจคของคุณไปยังโดเมนที่กำหนดเองหรือ URL เริ่มต้นproject-slug.stardeck.site
คุณสามารถเลือกหลาย targets สำหรับ variable เดียว ช่วยให้คุณสามารถใช้การตั้งค่าเดียวกันในหลาย environments
ประเภทของ Variable
Stardeck รองรับสองประเภทของ environment variables ที่มีรูปแบบการมองเห็นและการเข้าถึงที่แตกต่างกัน:Non-Secret Variables
Non-secret variables เหมาะสำหรับค่าการตั้งค่าที่ไม่ละเอียดอ่อนซึ่งสามารถเปิดเผยได้อย่างปลอดภัย:- การเข้าถึงในขั้นตอน Build: มีอยู่แล้วโดยอัตโนมัติสำหรับ Vite ด้วย prefix
VITE_ในระหว่างกระบวนการ build - การเข้าถึงในขั้นตอน Runtime: มีอยู่เป็น environment variables ปกติ
- การมองเห็น: ค่าจะมองเห็นได้ (แต่ถูกซ่อน) ใน project settings UI
- กรณีการใช้งาน: Public API endpoints, feature flags, การตั้งค่าที่ไม่ละเอียดอ่อน
เมื่อคุณสร้าง non-secret variable ชื่อ
API_URL, Stardeck จะทำให้มันพร้อมใช้งานโดยอัตโนมัติทั้งเป็น VITE_API_URL (สำหรับ client-side code) และ API_URL (สำหรับ server-side code)Secret Variables
Secret variables ถูกเข้ารหัสและเก็บไว้อย่างปลอดภัย:- Runtime-only: มีอยู่เฉพาะใน runtime เท่านั้น ไม่เคยถูกเปิดเผยในระหว่างกระบวนการ build
- การจัดเก็บแบบเข้ารหัส: ค่าถูกเข้ารหัสใน database
- ซ่อนใน UI: ค่าจะไม่ถูกแสดงใน project settings เลย
- กรณีการใช้งาน: API keys, tokens, passwords, database credentials
Reserved Variables
ชื่อ environment variable บางอันถูกจองไว้โดย Stardeck สำหรับการใช้งานระบบและไม่สามารถตั้งค่าโดยผู้ใช้:Reserved Prefixes
- VITE_ - เพิ่มโดยอัตโนมัติให้กับ non-secret variables สำหรับการเข้าถึงฝั่ง client คุณไม่ควรสร้าง variables ที่เริ่มต้นด้วย
VITE_เพราะ Stardeck จัดการสิ่งนี้โดยอัตโนมัติ - OIDC_ - จองไว้สำหรับการตั้งค่า OAuth และ authentication ที่จัดการโดย Stardeck
Reserved Names
- DATABASE_URL - Managed database connection string (ให้โดย Stardeck โดยอัตโนมัติ)
- APP_DATABASE_NAME - ชื่อ application database
- DATABASE_NAME - ชื่อ database (legacy)
- DEPLOYMENT_ID - ตัวระบุ deployment ปัจจุบัน
- CLOUDFLARE_INCLUDE_PROCESS_ENV - Cloudflare environment flag
การจัดการ Environment Variables
การเข้าถึงการตั้งค่า
- เปิดโปรเจคของคุณใน Stardeck dashboard
- คลิกปุ่ม Settings (ไอคอนเฟือง)
- ไปที่แท็บ Environment Variables
การเพิ่ม Variable
- คลิก Add Environment Variable
- ใส่ Key ในรูปแบบ UPPERCASE_WITH_UNDERSCORES (เช่น
API_KEY,STRIPE_SECRET_KEY) - ใส่ Value
- สลับ Secret Variable หากค่ามีข้อมูลที่ละเอียดอ่อน
- เลือกหนึ่งหรือหลาย Deployment Targets (sandbox, preview, production)
- คลิก Add Variable
สำหรับ sandbox environments, dev server จะรีสตาร์ทโดยอัตโนมัติเพื่อใช้ environment variables ใหม่
การแก้ไข Variable
- คลิก Edit บน variable ที่คุณต้องการแก้ไข
- อัปเดต key, value, สถานะ secret, หรือ deployment targets
- คลิก Update Variable
เมื่อแก้ไข secret variable ปล่อยช่อง value ว่างเพื่อเก็บค่า secret ที่มีอยู่ไว้โดยไม่เปลี่ยนแปลง
การลบ Variable
- คลิก ไอคอนถังขยะ ถัดจาก variable ที่คุณต้องการลบ
- ยืนยันการลบ
การใช้ Variables ในโค้ดของคุณ
Client-Side Code (Vite/React)
เข้าถึง non-secret variables ใน client-side code ของคุณโดยใช้import.meta.env:
Server-Side Code (Node.js/API Routes)
เข้าถึงทั้ง secret และ non-secret variables ใน server code ของคุณโดยใช้process.env:
Best Practices
หลักการตั้งชื่อ
- ใช้ตัวพิมพ์ใหญ่พร้อม underscores:
MY_API_KEY,DATABASE_URL - ใช้คำที่อธิบายและสอดคล้อง:
STRIPE_SECRET_KEY,STRIPE_PUBLIC_KEY - ปฏิบัติตามรูปแบบการตั้งชื่อของทีม
ความปลอดภัย
- ใช้ secrets สำหรับข้อมูลที่ละเอียดอ่อน: API keys, tokens, passwords, และ connection strings ควรถูกทำเครื่องหมายเป็น secret เสมอ
- ห้าม commit secrets: อย่าเก็บค่าที่ละเอียดอ่อนใน Git repository ของคุณ
- หมุนเวียน credentials: อัปเดตค่า secret เป็นระยะ โดยเฉพาะหากอาจถูกเปิดเผย
- จำกัดการเข้าถึง: เพิ่ม environment variables เฉพาะใน targets ที่จำเป็นเท่านั้น
การจัดระเบียบ
- จัดกลุ่ม variables ที่เกี่ยวข้อง: ใช้ prefixes เพื่อจัดระเบียบการตั้งค่าที่เกี่ยวข้อง (เช่น
STRIPE_,AWS_) - จัดทำเอกสาร variables: เก็บบันทึกว่าแต่ละ variable ใช้เพื่ออะไร
- ความเท่าเทียมของ Environment: ใช้ชื่อ variable เดียวกันในทุก targets ด้วยค่าเฉพาะสำหรับแต่ละ environment
Client-Side Variables
- ลดการเปิดเผยฝั่ง client: ใช้
VITE_variables เฉพาะเมื่อค่าจำเป็นต้องเข้าถึงได้ใน browser - ห้ามเปิดเผย secrets: Client-side code มองเห็นได้โดยผู้ใช้ ดังนั้นอย่าใส่ข้อมูลที่ละเอียดอ่อนใน VITE_ variables
- ตรวจสอบบน server: ตรวจสอบข้อมูลที่ client ส่งมาบน server เสมอ แม้ว่าคุณจะมีการตรวจสอบฝั่ง client
จำไว้ว่า: Non-secret variables มีอยู่โดยอัตโนมัติพร้อม prefix
VITE_ สำหรับการเข้าถึงฝั่ง client คุณไม่จำเป็นต้องสร้าง variables แยกรูปแบบทั่วไป
การตั้งค่า API
การตั้งค่า External Database
Stardeck ให้
DATABASE_URL โดยอัตโนมัติสำหรับ managed database ของโปรเจคคุณ ใช้ EXTERNAL_DATABASE_URL หรือชื่อคล้ายกันสำหรับการเชื่อมต่อไปยัง external databasesFeature Flags
การตั้งค่าเฉพาะ Environment
ตั้งค่าต่างกันสำหรับ variable เดียวกันในแต่ละ target:- Sandbox:
EXTERNAL_API_URL=http://localhost:8000 - Preview:
EXTERNAL_API_URL=https://api-staging.example.com - Production:
EXTERNAL_API_URL=https://api.example.com
ต้องการความช่วยเหลือเกี่ยวกับ environment variables? ติดต่อทีมสนับสนุนของเราผ่าน dashboard ของคุณ