การกำหนดค่า
ตัวแปรสภาพแวดล้อม
การใช้งาน
Logto จัดการตัวแปรสภาพแวดล้อมตามลำดับดังนี้:
- ตัวแปรสภาพแวดล้อมของระบบ
- ไฟล์
.env
ที่อยู่ใน root ของโปรเจกต์ ซึ่งเป็นไปตามรูปแบบของ dotenv
ดังนั้น ตัวแปรสภาพแวดล้อมของระบบจะมีสิทธิ์แทนที่ค่าที่อยู่ใน .env
ตัวแปร
หากคุณรัน Logto ผ่าน npm start
ที่ root ของโปรเจกต์ NODE_ENV
จะเป็น production
เสมอ
ในค่าเริ่มต้น protocol
จะเป็น http
หรือ https
ตามการตั้งค่า HTTPS ของคุณ
Key | ค่าเริ่มต้น | ประเภท | คำอธิบาย |
---|---|---|---|
NODE_ENV | undefined | 'production' | 'test' | undefined | ประเภทของสภาพแวดล้อมที่ Logto ทำงานอยู่ |
PORT | 3001 | number | พอร์ตภายในเครื่องที่ Logto รับฟัง |
ADMIN_PORT | 3002 | number | พอร์ตภายในเครื่องที่ Logto Admin Console รับฟัง |
ADMIN_DISABLE_LOCALHOST | N/A | string | boolean | number | ตั้งค่าเป็น 1 หรือ true เพื่อปิดพอร์ตสำหรับ Admin Console หากไม่ได้ตั้งค่า ADMIN_ENDPOINT จะปิด Admin Console ทั้งหมด |
DB_URL | N/A | string | Postgres DSN สำหรับฐานข้อมูล Logto |
HTTPS_CERT_PATH | undefined | string | undefined | ดูรายละเอียดที่ การเปิดใช้งาน HTTPS |
HTTPS_KEY_PATH | undefined | string | undefined | เช่นเดียวกัน |
TRUST_PROXY_HEADER | false | boolean | เช่นเดียวกัน |
ENDPOINT | 'protocol://localhost:$PORT' | string | คุณสามารถระบุ URL ด้วยโดเมนของคุณเองสำหรับการทดสอบออนไลน์หรือ production ได้ ค่านี้จะมีผลต่อ OIDC issuer identifier ด้วย |
ADMIN_ENDPOINT | 'protocol://localhost:$ADMIN_PORT' | string | คุณสามารถระบุ URL ด้วยโดเมนของคุณเองสำหรับ production (เช่น ADMIN_ENDPOINT=https://admin.domain.com ) ค่านี้จะมีผลต่อค่า Admin Console Redirect URIs ด้วย |
CASE_SENSITIVE_USERNAME | true | boolean | ระบุว่าชื่อผู้ใช้ต้องตรงตามตัวพิมพ์เล็ก-ใหญ่หรือไม่ โปรดระวังเมื่อแก้ไขค่า เนื่องจากจะไม่ปรับข้อมูลในฐานข้อมูลที่มีอยู่โดยอัตโนมัติ ต้องจัดการเอง |
SECRET_VAULT_KEK | undefined | string | Key Encryption Key (KEK) ที่ใช้เข้ารหัส Data Encryption Keys (DEK) ใน Secret Vault จำเป็นสำหรับการทำงานของ Secret Vault ต้องเป็นสตริงที่เข้ารหัสแบบ base64 แนะนำให้ใช้ AES-256 (32 ไบต์) ตัวอย่าง: crypto.randomBytes(32).toString('base64') |
การเปิดใช้งาน HTTPS
ใช้งานกับ Node
Node รองรับ HTTPS โดยตรง ให้ระบุ ทั้ง HTTPS_CERT_PATH
และ HTTPS_KEY_PATH
เพื่อเปิดใช้งาน HTTPS ผ่าน Node
HTTPS_CERT_PATH
หมายถึง path ไปยังใบรับรอง HTTPS ของคุณ ส่วน HTTPS_KEY_PATH
หมายถึง path ไปยังคีย์ HTTPS ของคุณ
ใช้งานกับ HTTPS proxy
อีกแนวทางที่นิยมคือการมี HTTPS proxy อยู่หน้า Node (เช่น Nginx)
ในกรณีนี้ คุณควรตั้งค่า TRUST_PROXY_HEADER
เป็น true
เพื่อระบุว่าควรเชื่อ header จาก proxy หรือไม่ Logto จะส่งค่าดังกล่าวไปยัง Koa app settings
ดู Trusting TLS offloading proxies เพื่อดูว่าเมื่อใดควรตั้งค่าฟิลด์นี้
การตั้งค่าฐานข้อมูล
การจัดการตัวแปรสภาพแวดล้อมจำนวนมากไม่สะดวกและยืดหยุ่น ดังนั้นการตั้งค่าทั่วไปส่วนใหญ่ของเราจะถูกเก็บไว้ในตารางฐานข้อมูล logto_configs
ตารางนี้เป็น key-value storage แบบง่าย โดย key ที่ใช้ได้มีดังนี้:
Key | ประเภท | คำอธิบาย |
---|---|---|
oidc.cookieKeys | string[] | อาร์เรย์ของสตริงสำหรับ signing cookie keys |
oidc.privateKeys | string[] | อาร์เรย์ของสตริงเนื้อหาคีย์ส่วนตัวสำหรับ OIDC JWT signing |
ประเภทคีย์ส่วนตัวที่รองรับ
- EC (P-256, secp256k1, P-384, และ P-521 curves)
- RSA
- OKP (Ed25519, Ed448, X25519, X448 sub types)