ติดตั้งและดูแลแพลตฟอร์ม
ตั้งค่าโหนด
การตั้งค่าของโหนดอยู่ที่ไหน ค่าที่ใช้บ่อย และตารางที่สร้างจากโค้ดของแต่ละเวอร์ชัน
หน้านี้บอกว่าการตั้งค่าของโหนดและแอปอยู่ที่ไหน และค่าไหนที่ใช้บ่อย ทุกคอนเทนเนอร์อ่านการตั้งค่าจากตัวแปร environment ของตัวเอง
การตั้งค่าอยู่ที่ไหน
- Docker ใช้ env file ไฟล์เดียวสำหรับทั้งแพลตฟอร์ม คือ
/etc/awhere/docker.envตั้งได้เฉพาะค่าที่มีอยู่ในไฟล์นี้ ถ้าค่ามีเครื่องหมาย$ให้เขียนเป็น%24 - Apple Container ใช้ env file แยกตามคอนเทนเนอร์ คือ
/etc/awhere/<name>.envโดย<name>คือชื่อคอนเทนเนอร์ ค่าในไฟล์นี้จะใช้แทนค่าที่ตั้งไว้ในอิมเมจ และระบบอ่านค่าตามตัวอักษร ไม่แทนค่า${...}ให้ - env file มีรหัสผ่านอยู่ด้วย ให้ตั้งสิทธิ์ให้อ่านได้เฉพาะบัญชีที่รันคอนเทนเนอร์
- แก้ไฟล์แล้วให้ตรวจด้วย
awhere preflight(Preflight) ค่าใหม่จะมีผลเมื่อสร้างคอนเทนเนอร์ใหม่ เช่น ตอนรันawhere upgrade
ค่าที่ชี้ไปยังฐานข้อมูล
DATASTORE_URL,CONTENT_STORE_URL,SESSION_STORE_URLและLOG_STORE_URLเป็น connection string ของ MongoDB ในรูปmongodb://<user>:<password>@<hosts>/<database>?authSource=adminตัวเลือกอื่น เช่นauthSource,replicaSet,tls,maxPoolSizeก็ใส่ไว้ใน URL นี้ทั้งหมด- ตัวแปรแบบแยกส่วนของ v4 ใช้ไม่ได้แล้ว ได้แก่
<STORE>_HOSTS,_NAME,_USER,_PASS,_MACHANISM,_SSLและ_POOL_SIZEโดย<STORE>คือคำขึ้นต้น เช่นDATASTOREถ้ามี URL อยู่ด้วย ระบบจะไม่สนใจตัวแปรเหล่านี้ และ Preflight จะเตือนให้ลบ แต่ถ้าไม่มี URL โหนดจะไม่ยอมเริ่มทำงาน authorization-serverเก็บ session ไว้ในSESSION_STORE_URLถ้าเซิร์ฟเวอร์ MongoDB ประกาศชื่อโฮสต์ภายในที่คอนเทนเนอร์หาไม่เจอ ให้ใส่directConnection=trueใน URLFILE_STORE_URLใช้ย้ายที่เก็บไฟล์ออกไปจากฐานข้อมูล content ถ้าไม่มีเหตุผลเฉพาะ ไม่ต้องตั้ง
broker ที่โหนดใช้คุยกัน
TRANSPORTER (nats://<host>:4222 หรือ TCP ถ้าทั้งแพลตฟอร์มอยู่บนเครื่องเดียว) และ NAMESPACE (ปกติคือ awhere) ต้องตั้งให้เหมือนกันทุกโหนด ทุกโหนดอ่านสองชื่อนี้ ชื่อเก่า SERVICE_TRANSPORTER และ SERVICE_NAMESPACE ยังใช้ได้เมื่อไม่ได้ตั้งชื่อใหม่ ให้เปลี่ยนเป็นชื่อใหม่ (authorization-server จะเตือนหนึ่งครั้งตอนเริ่ม) ดูของแต่ละโหนดได้ที่ตัวแปร environment ทั้งหมด
ค่าที่ใช้ค่าเริ่มต้นได้เลย
| ตัวแปร | โหนด | ค่าเริ่มต้น | ใช้ทำอะไร |
|---|---|---|---|
PORT | โหนดที่มี HTTP | 3000 (ตั้งไว้ในอิมเมจ) | พอร์ตที่โหนดเปิดรับในคอนเทนเนอร์ |
BASE_PATH | authorization-server | /api/auth/ | path ของหน้าลงชื่อเข้าใช้ เปลี่ยนได้ตอนรันโดยไม่ต้อง build ใหม่ |
THUMBNAIL_MAX_BYTES | file-services | 256 MiB | ขนาดไฟล์ใหญ่สุดที่ระบบจะทำภาพย่อให้ ใช้คุมไม่ให้กินหน่วยความจำมากเกินไป |
AUDIT_RETENTION_DAYS | logging-services | 365 | จำนวนวันที่เก็บบันทึกการตรวจสอบ ถ้าตั้งเป็น 0 จะเก็บตลอดไป |
USAGE_TIMEZONE | logging-services | Asia/Bangkok | เขตเวลาที่ใช้ตัดวันในตัวเลขการใช้งาน |
MANUAL_URL | core-services | คู่มือสาธารณะ | หน้าที่ปุ่ม ช่วยเหลือ เปิด แพลตฟอร์มที่มีคู่มือของตัวเองต้องตั้งค่านี้ |
app-studio และ logging กำหนด path ของแอปตอน build ไม่ใช่ตอนรัน การตั้ง path ใน env file อย่างเดียวจึงไม่พอ
ตารางที่สร้างจากโค้ด
- ตัวแปร environment ทั้งหมด ทุกค่าที่แต่ละโหนดตรวจ ค่าไหนจำเป็นในระบบจริง และใส่ค่าแบบไหนได้
- การตรวจทั้งหมดของ Preflight ทุกการตรวจ ข้อความที่พิมพ์ออกมา และวิธีแก้