▶SUBTHAIแปลไทย · ซับ · พากย์⚙
บทความแปลภาษาไทย · YouTube

OpenWork's Cloud Collaboration System

0:000:00
เล่นเสียงต้นฉบับของวิดีโอ พร้อมแสดงซับไทยซิงก์ตามเวลา
กำลังโหลดวิดีโอ…
01

สรุปย่อ

ประเด็นสำคัญจากวิดีโอ

ช่อง: DevsKingdom · ความยาว: 13 นาที · ลิงก์: https://www.youtube.com/watch?v=nz-p2JS9RJc

# สรุป: OpenWork's Cloud Collaboration System

ช่อง: DevsKingdom · ความยาว: 13 นาที · ลิงก์: https://www.youtube.com/watch?v=nz-p2JS9RJc

- วิดีโอแนะนำ OpenWork Dam ซึ่งเป็นคอนโทรลเพลน (control plane) สำหรับจัดการ OpenWork (ทางเลือกโอเพนซอร์สแทน Clockwork) ครอบคลุมทั้งทีมและองค์กร
- ฟีเจอร์หลัก: จัดการสมาชิกและทีม, จัดการสิทธิ์การเข้าถึงจากที่เดียว, ตั้งค่านโยบายไฟล์, จำกัดการเข้าถึงโมเดลในเครื่อง, เผยแพร่สกิลและปลั๊กอินผ่าน marketplace
- ตอนนี้ OpenWork Dam รองรับเฉพาะแอปพลิเคชันเดสก์ท็อป (ดาวน์โหลด OpenWork Enterprise ผ่านหน้า Open Store) ยังไม่รองรับเว็บแอปพลิเคชัน
- เชื่อมต่อผู้ให้บริการโมเดลได้หลายเจ้า (OpenAI, Anthropic, Pooder และอื่นๆ) ผ่านปุ่ม add provider พร้อมเลือกได้ว่า admins เพิ่มผู้ให้บริการเองได้ไหม
- เพิ่ม/ลบสมาชิกด้วยการกรอกอีเมลเพื่อเชิญเข้าร่วมทีม และติดตามเมตริกในหน้า analytics เช่น ผู้ใช้ที่ใช้งานอยู่, เซสชันต่อสัปดาห์, งานต่อสัปดาห์
- หน้า settings มี API keys, SSO, desktop policies, diagnostics และข้อมูลทั่วไป
- การติดตั้งฝั่งเซิร์ฟเวอร์: ติดตั้ง MySQL server + Node, ตั้งค่าฐานข้อมูล, clone repository แล้วรัน npm install และ build แพ็กเกจ (email, MCP client, DenDB, Den API)
- ตั้งค่า environment อย่างละเอียด: database URL, คีย์ยืนยันตัวตน, API public URL, CORS, โหมดองค์กร (single/multi), และ seed URL สำหรับผู้ใช้ทดสอบ
- migrate ฐานข้อมูลด้วยคำสั่งบรรทัดเดียว (DB migrate ธรรมดาใช้ไม่ได้) แล้วตรวจสอบตารางด้วย show tables
- สำหรับโปรดักชัน: สร้าง systemd หรือ supervisor, รันด้วยโปรดักชันบิลด์, ใช้ Nginx reverse proxy และรันเว็บด้วย NX start (build ด้วย Next.js)
- กระบวนการ seed ผู้ใช้ทดสอบ (เช่น Alice ที่ acme.test) ต้องสลับ app mode ระหว่างโปรดักชัน (0) กับโหมดพัฒนา (1) และเปิด allow public sign up ก่อน
- ปิดท้ายด้วยวิธีติดตั้งแอปเดสก์ท็อปบนเครื่องโลคอลแล้วเชื่อมต่อกับคอนโทรลเพลนกลาง

**ความเห็น:** วิดีโอสาธิตที่ละเอียดและทำตามได้จริงสำหรับคนที่ต้องการติดตั้งและรัน OpenWork Dam ด้วยตัวเอง แต่ไม่เกี่ยวข้องกับผู้ใช้เว็บแอปพลิเคชัน และชื่อแบรนด์/ศัพท์เทคนิคบางตัวมาจากคำบรรยายอัตโนมัติ อาจคลาดเคลื่อนจากชื่อจริงได้
02

คำแปลเต็ม

แปลตามบทสนทนาต้นฉบับ ปรับเป็นภาษาไทยธรรมชาติ

สวัสดีครับทุกคน ยินดีต้อนรับสู่วิดีโออีกตอนหนึ่งครับ ถ้าคุณคิดว่า Clockwork ค่อนข้างช้าและค่อนข้างแพง เราก็ได้สร้างทางเลือกให้คุณแล้ว ในวิดีโอก่อนหน้าของผม ผมได้สาธิตวิธีใช้ OpenWork เป็นทางเลือกแบบโอเพนซอร์ส (open source) แทน Clockwork และเราได้โชว์วิธีติดตั้งเว็บแอปพลิเคชัน (web application) และตัวประมวลผลฝั่งแบ็กเอนด์ (back-end worker) เพื่อตั้งค่าโปรเจกต์แบบครบวงจร ใครอยากรู้ว่ามันทำงานยังไงก็ไปดูวิดีโอนั้นได้เลยครับ

ในวิดีโอนี้เราจะพูดถึงหัวข้อใหม่ของ OpenWork นั่นคือ OpenWork Dam ซึ่งเป็นคอนโทรลเพลนของ OpenWork ครับ ถ้าเข้าไปที่ GitHub คุณจะเห็นว่าโปรเจกต์สุดท้ายของ OpenWork มีชื่อว่า OpenWork Dam มันคือคอนโทรลเพลนสำหรับจัดการ OpenWork ครอบคลุมทั้งทีมและองค์กร ใช้จัดการสมาชิก สร้างทีม จัดการสิทธิ์การเข้าถึงจากที่เดียว ตั้งค่านโยบายไฟล์ (file policies) จำกัดการเข้าถึงโมเดลในเครื่อง เผยแพร่สกิล (skills) และปลั๊กอิน (plugins) ผ่านมาร์เก็ตเพลส (marketplace) รวมถึงนำเข้าปลั๊กอินที่รองรับ และอื่นๆ อีกมากมายครับ

หน้าตาของมันเป็นแบบนี้ครับ เราติดตั้งทุกอย่างไว้บนเครื่องเสมือนส่วนตัว (virtual private machine) แล้ว เราจะไล่ดูฟังก์ชันต่างๆ ของโปรเจกต์นี้ทีละตัว และโชว์วิธีติดตั้งแบบทีละขั้นตอนบนเครื่องของคุณเองด้วยครับ หวังว่าคลิปนี้จะมีประโยชน์นะครับ แต่ถ้าคุณต้องการใช้เว็บแอปพลิเคชัน คลิปนี้อาจไม่เกี่ยวข้อง เพราะตอนนี้ OpenWork Dam ใช้ได้เฉพาะแอปพลิเคชันเดสก์ท็อป (desktop application) เท่านั้น เดี๋ยวอาจรองรับเว็บแอปพลิเคชันในภายหลัง แต่ตอนนี้รองรับแค่เดสก์ท็อปครับ จากแบนเนอร์หลัก (hero banner) จะเห็นว่ามีให้ดาวน์โหลดสำหรับเวิร์กสเปซนี้ แสดงว่าตอนนี้รองรับการติดตั้งแบบโลคอล (local install) สำหรับแอปพลิเคชันเดสก์ท็อปเท่านั้น พอคลิกเข้าไปที่หน้า Open Store ก็จะเห็นว่ามีให้ดาวน์โหลด OpenWork Enterprise ลงเดสก์ท็อปครับ

กลับมาที่อินเทอร์เฟซของ Open Cloud กันครับ หลังติดตั้งเสร็จเราจะเห็นผู้ใช้ OpenWork หนึ่งราย เราตั้งค่าผู้ใช้ทดสอบไว้หนึ่งคน และคุณสามารถเพิ่มคอนเนกเตอร์ (connectors) ต่างๆ ได้ เช่น Google Workspace, Microsoft, Telegram และอื่นๆ และในส่วนของ extensions คุณสามารถสร้างสกิลหรือปลั๊กอินในมาร์เก็ตเพลสนี้ แล้วแชร์ให้สมาชิกในทีมได้ครับ จะเห็นว่ามีปุ่ม add a plugin คลิกเข้าไปเพื่อเพิ่มปลั๊กอินได้ เช่นเราก็เพิ่มปลั๊กอิน task เข้าไป ซึ่งมันพร้อมใช้งานบนคลาวด์ (cloud ready) ส่วนอย่างอื่นพร้อมใช้งานบนเดสก์ท็อปอยู่แล้วตามค่าเริ่มต้นครับ

คุณยังตรวจสอบโมเดลทั้งหมดได้ด้วย โมเดลก็คือผู้ให้บริการ (providers) ต่างๆ ที่คุณเพิ่มเข้าไปได้ เราลองเพิ่ม Pooder แล้ว คุณสามารถเพิ่มอย่างอื่นได้อีก เช่น OpenAI หรือ Anthropic คลิกที่ manage แล้วคุณจะเลือกได้ว่าผู้ดูแลระบบ (admins) จะเพิ่มผู้ให้บริการเองได้ไหม หรืออนุญาตให้ใช้โมเดลของ Open Cloud เช่น ถ้าอยากเพิ่มโมเดลอย่าง OpenAI ก็แค่คลิก add provider ได้เลย คุณสามารถเลือกผู้ให้บริการเริ่มต้น (default provider) ซึ่งรองรับผู้ให้บริการสาธารณะทั้งหมด หรือจะเพิ่มผู้ให้บริการแบบกำหนดเอง (custom provider) ก็ได้ เราลองเพิ่มมาจาก Pooder แต่คุณเลือกผู้ให้บริการที่อยากเพิ่มเข้ากับคอนโทรลเพลนเองได้ครับ

เรายังเพิ่มสมาชิกและลบสมาชิกได้ด้วย แค่คลิก add member แล้วกรอกอีเมลเพื่อเชิญสมาชิกในทีมครับ ไปที่ส่วน analytics จะเห็นเมตริก (metrics) ต่างๆ เช่น ผู้ใช้ที่ใช้งานอยู่ (active users), เซสชันต่อสัปดาห์ (sessions per week), เซสชันสัปดาห์นี้ และจำนวนงาน (tasks) ต่อสัปดาห์ นี่คือวิธีที่เราติดตามเมตริกต่างๆ ทั่วทั้งองค์กรครับ

สุดท้ายมีหน้า settings ซึ่งคุณสามารถดู API keys, SSO, นโยบายเดสก์ท็อป (desktop policies) รวมถึงส่วน diagnostics และข้อมูลทั่วไป ครับ นี่คือหน้าตาของอินเทอร์เฟซทั้งหมด มันตรงไปตรงมามากครับ

ต่อไปเราจะพูดถึงวิธีติดตั้ง เพราะการติดตั้งนี่เป็นจุดที่สับสนมาก มันค่อนข้างซับซ้อนและระดับสูงหน่อย แต่แค่ทำตามบทช่วยสอนนี้ คุณก็น่าจะตั้งค่าได้ ใช้เวลาไม่กี่นาทีครับ ขั้นแรก ถ้าจะติดตั้ง OpenWork Dam คุณต้องติดตั้ง dependencies ก่อน อันดับแรกต้องติดตั้ง MySQL server เพราะมันต้องใช้ฐานข้อมูลแบ็กเอนด์ (backend database) ต้องติดตั้ง Node ด้วย จากนั้นก็ต้องตั้งค่าฐานข้อมูลสำหรับ MySQL ในกรณีนี้ก็คือ OpenWork Dam พร้อมกำหนดชื่อผู้ใช้และรหัสผ่าน นี่คือฐานข้อมูลที่คุณจะใช้เชื่อมต่อ จากนั้นก็เริ่มสร้างโปรเจกต์ได้เลยครับ

คุณต้อง clone repository ต่างๆ แล้วรัน npm install เพื่อติดตั้ง dependencies ทั้งหมด และ build repository ของแพ็กเกจต่างๆ เช่น build แพ็กเกจอีเมล, MCP client, และอย่างเช่น DenDB ซึ่งใช้สำหรับการเชื่อมต่อฐานข้อมูล การย้ายข้อมูล (migration) รวมถึง Den API ด้วย โปรเจกต์ OpenWork Dam มีส่วนสำคัญสองส่วน ส่วนหนึ่งคือ API อีกส่วนคือ Den Web ที่คุณกำลังดูอยู่นี่คือ Den Web ส่วนสำคัญอีกชิ้นคือ API ซึ่ง Den Web เรียกใช้งานอยู่ มันคือการเรียกแบ็กเอนด์ Den API ครับ ต้องแน่ใจว่า build แพ็กเกจทั้งหมดเสร็จเรียบร้อย

จากนั้นต้องตั้งค่าสภาพแวดล้อม (environment) ซึ่งสำคัญมากสำหรับการติดตั้งทั้งหมด เช่น ต้องกำหนด database URL สำหรับ API ไฟล์นี้คือ den.env ใช้สำหรับ API ครับ จากนั้นต้องตั้งค่าคีย์ยืนยันตัวตน (authentication keys) และกำหนด auth URL รวมถึง API public URL ซึ่งก็คือ api.then หรือโดเมนอื่นๆ ที่คุณมี นี่คือการชี้ไปที่แบ็กเอนด์ API นะครับ แอปพลิเคชันฝั่งฟรอนต์เอนด์จะชี้ไปที่แบ็กเอนด์ API นี่คือการตั้งค่า API ให้มี API endpoint ที่ใช้กับ public URL ได้

จากนั้นก็ต้องตั้งค่า CORS (course origins) เพื่ออนุญาตให้ฟรอนต์เอนด์เรียก API ได้ เช่น ถ้าฟรอนต์เอนด์คือ then.example.com คุณก็ต้องตั้งค่าตรงนี้ เพื่อให้ทราฟฟิกจากฟรอนต์เอนด์เข้าถึง API ได้ และต้องตั้งค่าพารามิเตอร์ขององค์กรต่างๆ ด้วย เช่น โหมดเป็น single organization (องค์กรเดียว) ซึ่งพวกเขารองรับโหมดหลายองค์กร (multi-organization) ด้วย จากนั้นกำหนดชื่อและสล็อตขององค์กร และต้องระบุอีเมลให้ชัดเจน ซึ่งสำคัญมากสำหรับการตั้งค่าแบบโลคอล เพราะอย่าง Alice ที่ acme.test คือผู้ใช้ที่ถูก seed ไว้ครับ

ในการทดสอบ ขั้นแรกคุณต้อง seed สภาพแวดล้อม ซึ่งเดี๋ยวเราจะโชว์วิธีทำเป็นขั้นตอนสุดท้ายในอีกไม่กี่นาที แต่จำไว้ว่าจำเป็นต้องทำถ้าคุณจะรันบนเครื่องโลคอลหรือเครื่องเสมือนส่วนตัวเพื่อทดสอบ และนี่คือ URL ที่ตั้งค่าไว้แล้ว ตอนตั้งค่า seed URL คุณต้องวาง URL ลงตรงนี้ แล้วรีเฟรชสภาพแวดล้อม นี่คือจุดสำคัญที่อยากเน้นครับ และสำหรับการตั้งค่าแบบ public ให้ตั้งเป็น false ไปก่อน จะเปลี่ยนเป็น true ทีหลังก็ได้ และสำหรับ email password หลัง SSL (after SSL) ก็ตั้งเป็น true ได้ แต่ค่าเริ่มต้นเป็น false ก็ได้ และปิดการยืนยันอีเมล (email verification) ด้วยการตั้งเป็น false ก็ได้ครับ

ส่วนนี้เป็นสำหรับ worker ครับ ซึ่งไม่เกี่ยวกับเว็บแอปพลิเคชันหรือคอนโทรลเพลน ต่างกันนิดหน่อย ใช้ในกรณีที่คุณมีแอปพลิเคชันงาน (task application) อยู่บนเครื่องโลคอล สำหรับการจัดเตรียม (provisioning) ถ้าต้องใช้ Datum เป็นตัวจัดเตรียมฝั่งแบ็กเอนด์ (backend provisioner) คุณก็กำหนด Datum เป็นผู้ให้บริการสำหรับการ provisioning ได้ และตั้งค่าพารามิเตอร์ต่างๆ แต่ส่วนนี้เป็นแค่ worker URL template สำหรับ worker แบบโลคอล เช่น เราติดตั้ง OpenWork worker ไว้ในวิดีโอก่อนหน้า คุณก็เอาลิงก์นั้นมาวางตรงนี้ได้ คือบอกสภาพแวดล้อมแบบโลคอลว่าเราชี้ไปที่ worker ระยะไกลตัวนั้น เพื่อให้มันเก็บเมตริกได้ครับ

ส่วนสุดท้ายก็คือการแทนที่คีย์ต่างๆ ใน environment ของ API เท่านั้นเอง จากนั้นต้องตั้งค่าเว็บแอปพลิเคชัน ซึ่งก็ต้องชี้ไปที่แบ็กเอนด์ API ด้วย แค่กำหนด data API base ให้เป็น API ที่คุณตั้งไว้เป็นแบ็กเอนด์ แล้วก็ตั้งค่า public origin ซึ่งก็คือ URL ของเว็บแอปพลิเคชัน ประมาณนี้ครับ

จากนั้นต้อง migrate ฐานข้อมูล โดยใช้คำสั่งนี้ เพราะคำสั่ง DB migrate ธรรมดาใช้ไม่ได้ คุณต้องใช้คำสั่งบรรทัดเดียวที่โชว์ให้ดูตรงนี้ แล้วก็ดูตาราง (tables) หลัง migration เสร็จ เช่น เรารัน show tables จะเห็นว่าหลังจากทำทุกอย่างเสร็จ คุณจะเห็นตารางทั้งหมดในฐานข้อมูล OpenWork ครับ

ขั้นต่อไปคือการสร้าง systemd แต่ถ้าแค่ทดสอบ คุณก็ไม่ต้องสร้าง systemd แต่ถ้าจะรันบนโปรดักชัน คุณน่าจะต้องสร้าง systemd หรือ supervisor ครับ จะเห็นว่ามีข้อมูลที่เราดูไปก่อนหน้านี้ พวกเขาต้องการ environment ต้องมี working directory และต้องแน่ใจว่าเริ่มรันด้วยคำสั่งบรรทัดเดียวนี้ และอย่างที่เห็น นี่คือบิลด์สำหรับโปรดักชัน (production build) จะเห็นว่าอยู่ในโฟลเดอร์ distribution นั่นคือโปรดักชันบิลด์ คุณจะรันให้เร็วขึ้นได้ด้วยโปรดักชันบิลด์นี้ครับ

จากนั้นต้องตั้งค่า systemd ของเว็บแอปพลิเคชันด้วย ถ้าจะรันบนโปรดักชัน หลัง build ทุกอย่างเสร็จ ต้องเพิ่ม environment นี้ กำหนดให้ Den Web เป็น working directory และต้องแน่ใจว่ารันด้วย NX start เพราะโปรเจกต์นี้ build ด้วย Next.js แล้วต้องระบุว่าต้องการรันแอปพลิเคชันนี้เป็นโปรดักชันบิลด์ ตอน seed ผู้ใช้ คุณต้องเปลี่ยนกลับเป็นโหมดพัฒนา (development mode) ซึ่งเดี๋ยวจะพูดถึงอีกที แต่สำหรับบริการนี้ คุณรันเป็นโปรดักชันบิลด์เพื่อให้เร็วขึ้นได้ครับ

ส่วน Nginx proxy ก็แค่ชี้ proxy ไปที่บริการโลคอลโดยใช้ reverse proxy ง่ายๆ ไม่มีอะไรต้องพูดถึงครับ จากนั้นต้องตั้งค่าผู้ใช้ทดสอบ ซึ่งเป็นกระบวนการ seed อันนี้น่าสนใจมาก เพราะต้องปรับ environment ก่อนหน้านี้เล็กน้อยเพื่อตั้งค่า เช่น นี่คือ API environment สำหรับแบ็กเอนด์ แต่มีคอนฟิกสองสามอย่างที่ต้องอัปเดตตอนทำ seed ครับ

เพราะเราบิลด์ทุกอย่างเป็นโปรดักชัน จะเห็นว่า open work app mode ใน environment ถูกตั้งเป็นศูนย์ ซึ่งหมายถึงโปรดักชันบิลด์ ดังนั้นต้องตั้งเป็นศูนย์ แต่พอจะ seed ผู้ใช้ ต้องเปลี่ยนกลับเป็นหนึ่ง ซึ่งหมายถึงโหมดพัฒนา และต้องแน่ใจว่า allow public sign up เป็น true เพื่อให้สามารถ seed อีเมลได้ ถ้าตั้งเป็น false มันอาจไม่ทำงาน ต้องตั้งเป็น true ก่อน แล้วก็ตั้ง allow email password after SSL เป็น true ด้วย พอ seed ผู้ใช้เสร็จก็เปลี่ยนกลับเป็น false ได้ ไม่ต้องใช้โหมด dev อีกต่อไป กลับไปเป็นโหมดโปรดักชันครับ

หลัง seed ทุกอย่างเสร็จ ก็เช็คผู้ใช้ได้ว่าอยู่ในฐานข้อมูลจริงหรือไม่ เช่น นี่คือผู้ใช้ที่เรา seed ไว้ จะเห็นว่าอยู่ในฐานข้อมูลจริง ทุกอย่างเสร็จเรียบร้อย จากนั้นก็สตาร์ท API และสตาร์ทเว็บแอปพลิเคชัน แล้วคุณจะเห็นว่าทุกอย่างรันถูกต้อง นั่นคือสิ่งที่คุณอยากเห็นครับ

จบแล้วครับ นี่คือวิธีตั้งค่า Open Work Bench เป็นคอนโทรลเพลนบนเครื่องเสมือนส่วนตัว พอทุกอย่างพร้อมแล้ว คุณก็ติดตั้งแอปพลิเคชันเดสก์ท็อปของ OpenWork บนเครื่องโลคอลได้เลย แค่คลิกตรงนี้แล้วดาวน์โหลดทุกอย่าง ทำตามขั้นตอนการดาวน์โหลด แล้วเชื่อมต่อกับคอนโทรลเพลนกลางของคุณก็เป็นอันเสร็จครับ

หวังว่าคลิปนี้จะมีประโยชน์นะครับ ถ้าชอบวิดีโอนี้ ช่วยกดติดตาม กดไลก์ หรือคอมเมนต์ได้ถ้ามีคำถาม ขอบคุณมากที่สนับสนุนช่อง และเจอกันใหม่ในวิดีโอหน้าครับ

03

หมายเหตุการแปล

ความโปร่งใสเกี่ยวกับความไม่แน่นอนในต้นฉบับ

  • ## เซกเมนต์ [ฟังไม่ชัด]
  • ไม่มีเซกเมนต์ใดที่ฟังไม่ชัดจนต้องระบุ [ฟังไม่ชัด] คำพูดอ่านได้ตลอดทั้งคลิป แต่ชื่อเฉพาะบางตัวข้างต้นมาจากคำบรรยายอัตโนมัติและไม่สามารถยืนยันการสะกดจริงได้
04

อภิธานศัพท์เทคนิค

คำศัพท์และชื่อผลิตภัณฑ์ที่คงรูปภาษาอังกฤษ

ศัพท์คำแปล / คำอธิบาย
OpenWorkแบรนด์ซอฟต์แวร์โอเพนซอร์ส (ทางเลือกแทน Clockwork)
Clockworkแบรนด์เครื่องมือเดิมที่ผู้พูดกล่าวว่าช้าและแพง
OpenWork Damคอนโทรลเพลนของ OpenWork สำหรับจัดการทั้งองค์กร
control planeแผงควบคุมกลางสำหรับจัดการระบบ
open sourceซอฟต์แวร์โอเพนซอร์ส (เปิดเผยซอร์สโค้ด)
web applicationเว็บแอปพลิเคชัน
back-end workerตัวประมวลผลฝั่งแบ็กเอนด์
desktop applicationแอปพลิเคชันเดสก์ท็อป
virtual private machineเครื่องเสมือนส่วนตัว (VPS)
hero bannerแบนเนอร์หลักของหน้าแรก
Open Storeหน้าร้านค้าสำหรับดาวน์โหลดซอฟต์แวร์
OpenWork Enterpriseเวอร์ชันองค์กรของ OpenWork
Open Cloudบริการคลาวด์ของ OpenWork
connectorsตัวเชื่อมต่อบริการภายนอก (เช่น Google Workspace, Microsoft, Telegram)
marketplaceตลาดกลางสำหรับเผยแพร่สกิลและปลั๊กอิน
skillsความสามารถ/สกิลที่เผยแพร่ให้ทีมใช้ได้
pluginsปลั๊กอิน (ส่วนเสริมฟังก์ชัน)
cloud readyพร้อมใช้งานบนคลาวด์
providersผู้ให้บริการโมเดล AI
OpenAI / Anthropicแบรนด์ผู้ให้บริการโมเดล AI
Pooderชื่อผู้ให้บริการโมเดลที่ผู้พูดกล่าวถึง (ตามคำบรรยาย)
add providerปุ่มเพิ่มผู้ให้บริการ
default providerผู้ให้บริการเริ่มต้น
custom providerผู้ให้บริการที่กำหนดเอง
adminsผู้ดูแลระบบ
add memberปุ่มเพิ่มสมาชิก
analyticsส่วนแสดงสถิติและตัวชี้วัด
metricsตัวชี้วัด/เมตริก
active usersผู้ใช้ที่ใช้งานอยู่
sessionsเซสชันการใช้งาน
tasksงาน/รายการงาน
settingsหน้าการตั้งค่า
API keysคีย์ API (รหัสสำหรับเรียกใช้ API)
SSOSingle Sign-On (เข้าสู่ระบบครั้งเดียวใช้ได้ทุกบริการ)
desktop policiesนโยบายสำหรับแอปเดสก์ท็อป
diagnosticsการวินิจฉัยระบบ
dependenciesแพ็กเกจที่ต้องติดตั้งก่อน
MySQL serverเซิร์ฟเวอร์ฐานข้อมูล MySQL
databaseฐานข้อมูล
Nodeรันไทม์ JavaScript
repositoryที่เก็บโค้ด (repo)
npm installคำสั่งติดตั้ง dependencies ของ Node
buildคอมไพล์/สร้างแพ็กเกจ
MCP clientไคลเอนต์ MCP (โปรโตคอลเชื่อมต่อโมเดล)
DenDBส่วนจัดการฐานข้อมูลและการ migration (ตามคำบรรยาย)
Den APIAPI ฝั่งแบ็กเอนด์ของโปรเจกต์
Den Webส่วนเว็บฝั่งฟรอนต์เอนด์ของโปรเจกต์
environmentสภาพแวดล้อม/ตัวแปรสภาพแวดล้อมของโปรเจกต์
database URLURL สำหรับเชื่อมต่อฐานข้อมูล
den.envไฟล์ environment ของ API
authentication keysคีย์ยืนยันตัวตน
auth URLURL สำหรับยืนยันตัวตน
API public URLURL สาธารณะของ API
API endpointจุดเชื่อมต่อของ API
CORSกลไกอนุญาตให้ฟรอนต์เอนด์เรียก API ข้ามโดเมนได้
single organizationโหมดองค์กรเดียว
multi-organizationโหมดหลายองค์กร
seed / seeded userการป้อนข้อมูลผู้ใช้เริ่มต้นลงฐานข้อมูล / ผู้ใช้ที่ถูก seed ไว้
Alice / acme.testอีเมลผู้ใช้ทดสอบที่ถูก seed ไว้ในตัวอย่าง
migrationการย้าย/อัปเดตโครงสร้างฐานข้อมูล
show tablesคำสั่งแสดงตารางทั้งหมดในฐานข้อมูล
systemdระบบจัดการบริการบน Linux
supervisorเครื่องมือจัดการกระบวนการ
working directoryไดเรกทอรีทำงาน
production buildบิลด์สำหรับใช้งานจริง (โปรดักชัน)
distribution folderโฟลเดอร์ที่เก็บโปรดักชันบิลด์
NX startคำสั่งรันแอปพลิเคชันด้วย Nx
Next.jsเฟรมเวิร์ก JavaScript สำหรับสร้างเว็บแอป
Nginxเว็บเซิร์ฟเวอร์
reverse proxyพร็อกซีย้อนกลับ (ส่งต่อทราฟฟิกไปยังบริการภายใน)
allow public sign upตัวเลือกอนุญาตให้สมัครสมาชิกสาธารณะ
worker URL templateเทมเพลต URL ของ worker
provisioningการจัดเตรียมทรัพยากร/โครงสร้างพื้นฐาน
Datumผู้ให้บริการ provisioning ฝั่งแบ็กเอนด์ (ตามคำบรรยาย)
Open Work Benchชื่อที่กล่าวถึงในขั้นตอนตั้งค่า (ตามคำบรรยาย)
05

ซับไตเติ้ลภาษาไทย

ดาวน์โหลดหรือดูซับทั้งหมด

1
00:00:00,000 --> 00:00:01,279
สวัสดีครับทุกคน

2
00:00:01,279 --> 00:00:04,349
ยินดีต้อนรับสู่วิดีโออีกตอนหนึ่งครับ

3
00:00:04,349 --> 00:00:06,224
ถ้าคุณคิดว่า Clockwork

4
00:00:06,224 --> 00:00:08,356
ค่อนข้างช้าและค่อนข้างแพง
thai-subtitles.srt
SubRip — ใช้กับเครื่องเล่นวิดีโอส่วนใหญ่
↓ ดาวน์โหลด
thai-subtitles.vtt
WebVTT — ใช้กับเว็บ / YouTube
↓ ดาวน์โหลด
เปิดดูซับไตเติ้ลทั้งหมด (248 segments)
1
00:00:00,000 --> 00:00:01,279
สวัสดีครับทุกคน

2
00:00:01,279 --> 00:00:04,349
ยินดีต้อนรับสู่วิดีโออีกตอนหนึ่งครับ

3
00:00:04,349 --> 00:00:06,224
ถ้าคุณคิดว่า Clockwork

4
00:00:06,224 --> 00:00:08,356
ค่อนข้างช้าและค่อนข้างแพง

5
00:00:08,356 --> 00:00:10,999
เราก็ได้สร้างทางเลือกให้คุณแล้ว

6
00:00:10,999 --> 00:00:14,325
ในวิดีโอก่อนหน้าของผม ผมได้สาธิตวิธีใช้

7
00:00:14,325 --> 00:00:17,735
OpenWork เป็นทางเลือกแบบโอเพนซอร์ส (open

8
00:00:17,735 --> 00:00:19,526
source) แทน Clockwork

9
00:00:19,526 --> 00:00:23,278
และเราได้โชว์วิธีติดตั้งเว็บแอปพลิเคชัน (web

10
00:00:23,278 --> 00:00:26,689
application) และตัวประมวลผลฝั่งแบ็กเอนด์

11
00:00:26,689 --> 00:00:28,138
(back-end worker)

12
00:00:28,138 --> 00:00:30,696
เพื่อตั้งค่าโปรเจกต์แบบครบวงจร

13
00:00:30,696 --> 00:00:35,130
ใครอยากรู้ว่ามันทำงานยังไงก็ไปดูวิดีโอนั้นได้เลยครับ

14
00:00:35,130 --> 00:00:38,882
ในวิดีโอนี้เราจะพูดถึงหัวข้อใหม่ของ OpenWork

15
00:00:38,882 --> 00:00:42,548
นั่นคือ OpenWork Dam ซึ่งเป็นคอนโทรลเพลนของ

16
00:00:42,548 --> 00:00:45,362
OpenWork ครับ ถ้าเข้าไปที่ GitHub

17
00:00:45,362 --> 00:00:48,687
คุณจะเห็นว่าโปรเจกต์สุดท้ายของ OpenWork

18
00:00:48,687 --> 00:00:50,563
มีชื่อว่า OpenWork Dam

19
00:00:50,563 --> 00:00:53,803
มันคือคอนโทรลเพลนสำหรับจัดการ OpenWork

20
00:00:53,803 --> 00:00:57,214
ครอบคลุมทั้งทีมและองค์กร ใช้จัดการสมาชิก

21
00:00:57,214 --> 00:01:00,795
สร้างทีม จัดการสิทธิ์การเข้าถึงจากที่เดียว

22
00:01:00,795 --> 00:01:03,609
ตั้งค่านโยบายไฟล์ (file policies)

23
00:01:03,609 --> 00:01:07,105
จำกัดการเข้าถึงโมเดลในเครื่อง เผยแพร่สกิล

24
00:01:07,105 --> 00:01:09,663
(skills) และปลั๊กอิน (plugins)

25
00:01:09,663 --> 00:01:12,221
ผ่านมาร์เก็ตเพลส (marketplace)

26
00:01:12,221 --> 00:01:15,461
รวมถึงนำเข้าปลั๊กอินที่รองรับ และอื่นๆ

27
00:01:15,461 --> 00:01:18,872
อีกมากมายครับ หน้าตาของมันเป็นแบบนี้ครับ

28
00:01:18,872 --> 00:01:22,538
เราติดตั้งทุกอย่างไว้บนเครื่องเสมือนส่วนตัว

29
00:01:22,538 --> 00:01:25,096
(virtual private machine) แล้ว

30
00:01:25,096 --> 00:01:28,933
เราจะไล่ดูฟังก์ชันต่างๆ ของโปรเจกต์นี้ทีละตัว

31
00:01:28,933 --> 00:01:33,879
และโชว์วิธีติดตั้งแบบทีละขั้นตอนบนเครื่องของคุณเองด้วยครับ

32
00:01:33,879 --> 00:01:36,607
หวังว่าคลิปนี้จะมีประโยชน์นะครับ

33
00:01:36,607 --> 00:01:39,506
แต่ถ้าคุณต้องการใช้เว็บแอปพลิเคชัน

34
00:01:39,506 --> 00:01:43,258
คลิปนี้อาจไม่เกี่ยวข้อง เพราะตอนนี้ OpenWork

35
00:01:43,258 --> 00:01:47,010
Dam ใช้ได้เฉพาะแอปพลิเคชันเดสก์ท็อป (desktop

36
00:01:47,010 --> 00:01:48,800
application) เท่านั้น

37
00:01:48,800 --> 00:01:52,126
เดี๋ยวอาจรองรับเว็บแอปพลิเคชันในภายหลัง

38
00:01:52,126 --> 00:01:54,769
แต่ตอนนี้รองรับแค่เดสก์ท็อปครับ

39
00:01:54,769 --> 00:01:57,242
จากแบนเนอร์หลัก (hero banner)

40
00:01:57,242 --> 00:02:00,823
จะเห็นว่ามีให้ดาวน์โหลดสำหรับเวิร์กสเปซนี้

41
00:02:00,823 --> 00:02:04,575
แสดงว่าตอนนี้รองรับการติดตั้งแบบโลคอล (local

42
00:02:04,575 --> 00:02:08,241
install) สำหรับแอปพลิเคชันเดสก์ท็อปเท่านั้น

43
00:02:08,241 --> 00:02:10,799
พอคลิกเข้าไปที่หน้า Open Store

44
00:02:10,799 --> 00:02:14,636
ก็จะเห็นว่ามีให้ดาวน์โหลด OpenWork Enterprise

45
00:02:14,636 --> 00:02:18,388
ลงเดสก์ท็อปครับ กลับมาที่อินเทอร์เฟซของ Open

46
00:02:18,388 --> 00:02:22,225
Cloud กันครับ หลังติดตั้งเสร็จเราจะเห็นผู้ใช้

47
00:02:22,225 --> 00:02:23,675
OpenWork หนึ่งราย

48
00:02:23,675 --> 00:02:26,318
เราตั้งค่าผู้ใช้ทดสอบไว้หนึ่งคน

49
00:02:26,318 --> 00:02:29,814
และคุณสามารถเพิ่มคอนเนกเตอร์ (connectors)

50
00:02:29,814 --> 00:02:30,912
ต่างๆ

51
00:02:30,912 --> 00:02:35,601
ได้ เช่น Google Workspace, Microsoft, Telegram และอื่นๆ

52
00:02:35,601 --> 00:02:37,563
และในส่วนของ extensions

53
00:02:37,563 --> 00:02:41,570
คุณสามารถสร้างสกิลหรือปลั๊กอินในมาร์เก็ตเพลสนี้

54
00:02:41,570 --> 00:02:45,407
แล้วแชร์ให้สมาชิกในทีมได้ครับ จะเห็นว่ามีปุ่ม

55
00:02:45,407 --> 00:02:49,159
add a plugin คลิกเข้าไปเพื่อเพิ่มปลั๊กอินได้

56
00:02:49,159 --> 00:02:52,058
เช่นเราก็เพิ่มปลั๊กอิน task เข้าไป

57
00:02:52,058 --> 00:02:55,469
ซึ่งมันพร้อมใช้งานบนคลาวด์ (cloud ready)

58
00:02:55,469 --> 00:03:00,670
ส่วนอย่างอื่นพร้อมใช้งานบนเดสก์ท็อปอยู่แล้วตามค่าเริ่มต้นครับ

59
00:03:00,670 --> 00:03:03,398
คุณยังตรวจสอบโมเดลทั้งหมดได้ด้วย

60
00:03:03,398 --> 00:03:06,809
โมเดลก็คือผู้ให้บริการ (providers) ต่างๆ

61
00:03:06,809 --> 00:03:10,561
ที่คุณเพิ่มเข้าไปได้ เราลองเพิ่ม Pooder แล้ว

62
00:03:10,561 --> 00:03:14,483
คุณสามารถเพิ่มอย่างอื่นได้อีก เช่น OpenAI หรือ

63
00:03:14,483 --> 00:03:16,530
Anthropic คลิกที่ manage

64
00:03:16,530 --> 00:03:19,940
แล้วคุณจะเลือกได้ว่าผู้ดูแลระบบ (admins)

65
00:03:19,940 --> 00:03:22,328
จะเพิ่มผู้ให้บริการเองได้ไหม

66
00:03:22,328 --> 00:03:25,738
หรืออนุญาตให้ใช้โมเดลของ Open Cloud เช่น

67
00:03:25,738 --> 00:03:29,405
ถ้าอยากเพิ่มโมเดลอย่าง OpenAI ก็แค่คลิก add

68
00:03:29,405 --> 00:03:30,684
provider ได้เลย

69
00:03:30,684 --> 00:03:34,350
คุณสามารถเลือกผู้ให้บริการเริ่มต้น (default

70
00:03:34,350 --> 00:03:38,273
provider) ซึ่งรองรับผู้ให้บริการสาธารณะทั้งหมด

71
00:03:38,273 --> 00:03:41,854
หรือจะเพิ่มผู้ให้บริการแบบกำหนดเอง (custom

72
00:03:41,854 --> 00:03:45,179
provider) ก็ได้ เราลองเพิ่มมาจาก Pooder

73
00:03:45,179 --> 00:03:50,551
แต่คุณเลือกผู้ให้บริการที่อยากเพิ่มเข้ากับคอนโทรลเพลนเองได้ครับ

74
00:03:50,551 --> 00:03:54,217
เรายังเพิ่มสมาชิกและลบสมาชิกได้ด้วย แค่คลิก

75
00:03:54,217 --> 00:03:55,315
add member

76
00:03:55,315 --> 00:03:58,470
แล้วกรอกอีเมลเพื่อเชิญสมาชิกในทีมครับ

77
00:03:58,470 --> 00:04:02,052
ไปที่ส่วน analytics จะเห็นเมตริก (metrics)

78
00:04:02,052 --> 00:04:05,974
ต่างๆ เช่น ผู้ใช้ที่ใช้งานอยู่ (active users),

79
00:04:05,974 --> 00:04:09,129
เซสชันต่อสัปดาห์ (sessions per week),

80
00:04:09,129 --> 00:04:16,035
เซสชันสัปดาห์นี้ และจำนวนงาน (tasks) ต่อสัปดาห์ นี่คือวิธีที่เราติดตามเมตริกต่างๆ

81
00:04:16,035 --> 00:04:21,748
ทั่วทั้งองค์กรครับ สุดท้ายมีหน้า settings ซึ่งคุณสามารถดู API keys,

82
00:04:21,748 --> 00:04:25,074
SSO, นโยบายเดสก์ท็อป (desktop policies)

83
00:04:25,074 --> 00:04:28,740
รวมถึงส่วน diagnostics และข้อมูลทั่วไป ครับ

84
00:04:28,740 --> 00:04:31,554
นี่คือหน้าตาของอินเทอร์เฟซทั้งหมด

85
00:04:31,554 --> 00:04:33,259
มันตรงไปตรงมามากครับ

86
00:04:33,259 --> 00:04:35,561
ต่อไปเราจะพูดถึงวิธีติดตั้ง

87
00:04:35,561 --> 00:04:38,631
เพราะการติดตั้งนี่เป็นจุดที่สับสนมาก

88
00:04:38,631 --> 00:04:41,530
มันค่อนข้างซับซ้อนและระดับสูงหน่อย

89
00:04:41,530 --> 00:04:45,282
แต่แค่ทำตามบทช่วยสอนนี้ คุณก็น่าจะตั้งค่าได้

90
00:04:45,282 --> 00:04:48,863
ใช้เวลาไม่กี่นาทีครับ ขั้นแรก ถ้าจะติดตั้ง

91
00:04:48,863 --> 00:04:52,700
OpenWork Dam คุณต้องติดตั้ง dependencies ก่อน

92
00:04:52,700 --> 00:04:55,514
อันดับแรกต้องติดตั้ง MySQL server

93
00:04:55,514 --> 00:04:59,095
เพราะมันต้องใช้ฐานข้อมูลแบ็กเอนด์ (backend

94
00:04:59,095 --> 00:05:01,738
database) ต้องติดตั้ง Node ด้วย

95
00:05:01,738 --> 00:05:05,234
จากนั้นก็ต้องตั้งค่าฐานข้อมูลสำหรับ MySQL

96
00:05:05,234 --> 00:05:07,536
ในกรณีนี้ก็คือ OpenWork Dam

97
00:05:07,536 --> 00:05:10,180
พร้อมกำหนดชื่อผู้ใช้และรหัสผ่าน

98
00:05:10,180 --> 00:05:13,164
นี่คือฐานข้อมูลที่คุณจะใช้เชื่อมต่อ

99
00:05:13,164 --> 00:05:17,001
จากนั้นก็เริ่มสร้างโปรเจกต์ได้เลยครับ คุณต้อง

100
00:05:17,001 --> 00:05:18,877
clone repository ต่างๆ

101
00:05:18,877 --> 00:05:26,551
แล้วรัน npm install เพื่อติดตั้ง dependencies ทั้งหมด และ build repository ของแพ็กเกจต่างๆ

102
00:05:26,551 --> 00:05:29,621
เช่น build แพ็กเกจอีเมล, MCP client,

103
00:05:29,621 --> 00:05:31,155
และอย่างเช่น DenDB

104
00:05:31,155 --> 00:05:34,054
ซึ่งใช้สำหรับการเชื่อมต่อฐานข้อมูล

105
00:05:34,054 --> 00:05:37,891
การย้ายข้อมูล (migration) รวมถึง Den API ด้วย

106
00:05:37,891 --> 00:05:41,302
โปรเจกต์ OpenWork Dam มีส่วนสำคัญสองส่วน

107
00:05:41,302 --> 00:05:44,286
ส่วนหนึ่งคือ API อีกส่วนคือ Den Web

108
00:05:44,286 --> 00:05:46,930
ที่คุณกำลังดูอยู่นี่คือ Den Web

109
00:05:46,930 --> 00:05:49,999
ส่วนสำคัญอีกชิ้นคือ API ซึ่ง Den Web

110
00:05:49,999 --> 00:05:53,666
เรียกใช้งานอยู่ มันคือการเรียกแบ็กเอนด์ Den

111
00:05:53,666 --> 00:05:55,968
API ครับ ต้องแน่ใจว่า build

112
00:05:55,968 --> 00:05:58,355
แพ็กเกจทั้งหมดเสร็จเรียบร้อย

113
00:05:58,355 --> 00:06:02,022
จากนั้นต้องตั้งค่าสภาพแวดล้อม (environment)

114
00:06:02,022 --> 00:06:05,433
ซึ่งสำคัญมากสำหรับการติดตั้งทั้งหมด เช่น

115
00:06:05,433 --> 00:06:09,184
ต้องกำหนด database URL สำหรับ API ไฟล์นี้คือ

116
00:06:09,184 --> 00:06:11,401
den.env ใช้สำหรับ API ครับ

117
00:06:11,401 --> 00:06:14,215
จากนั้นต้องตั้งค่าคีย์ยืนยันตัวตน

118
00:06:14,215 --> 00:06:18,137
(authentication keys) และกำหนด auth URL รวมถึง

119
00:06:18,137 --> 00:06:20,951
API public URL ซึ่งก็คือ api.then

120
00:06:20,951 --> 00:06:22,912
หรือโดเมนอื่นๆ ที่คุณมี

121
00:06:22,912 --> 00:06:26,067
นี่คือการชี้ไปที่แบ็กเอนด์ API นะครับ

122
00:06:26,067 --> 00:06:29,904
แอปพลิเคชันฝั่งฟรอนต์เอนด์จะชี้ไปที่แบ็กเอนด์

123
00:06:29,904 --> 00:06:33,571
API นี่คือการตั้งค่า API ให้มี API endpoint

124
00:06:33,571 --> 00:06:37,408
ที่ใช้กับ public URL ได้ จากนั้นก็ต้องตั้งค่า

125
00:06:37,408 --> 00:06:39,198
CORS (course origins)

126
00:06:39,198 --> 00:06:42,865
เพื่ออนุญาตให้ฟรอนต์เอนด์เรียก API ได้ เช่น

127
00:06:42,865 --> 00:06:45,764
ถ้าฟรอนต์เอนด์คือ then.example.com

128
00:06:45,764 --> 00:06:47,640
คุณก็ต้องตั้งค่าตรงนี้

129
00:06:47,640 --> 00:06:51,391
เพื่อให้ทราฟฟิกจากฟรอนต์เอนด์เข้าถึง API ได้

130
00:06:51,391 --> 00:06:55,143
และต้องตั้งค่าพารามิเตอร์ขององค์กรต่างๆ ด้วย

131
00:06:55,143 --> 00:06:57,957
เช่น โหมดเป็น single organization

132
00:06:57,957 --> 00:07:01,709
(องค์กรเดียว) ซึ่งพวกเขารองรับโหมดหลายองค์กร

133
00:07:01,709 --> 00:07:03,840
(multi-organization) ด้วย

134
00:07:03,840 --> 00:07:06,654
จากนั้นกำหนดชื่อและสล็อตขององค์กร

135
00:07:06,654 --> 00:07:08,786
และต้องระบุอีเมลให้ชัดเจน

136
00:07:08,786 --> 00:07:11,855
ซึ่งสำคัญมากสำหรับการตั้งค่าแบบโลคอล

137
00:07:11,855 --> 00:07:15,778
เพราะอย่าง Alice ที่ acme.test คือผู้ใช้ที่ถูก

138
00:07:15,778 --> 00:07:19,444
seed ไว้ครับ ในการทดสอบ ขั้นแรกคุณต้อง seed

139
00:07:19,444 --> 00:07:20,542
สภาพแวดล้อม

140
00:07:20,542 --> 00:07:25,488
ซึ่งเดี๋ยวเราจะโชว์วิธีทำเป็นขั้นตอนสุดท้ายในอีกไม่กี่นาที

141
00:07:25,488 --> 00:07:32,480
แต่จำไว้ว่าจำเป็นต้องทำถ้าคุณจะรันบนเครื่องโลคอลหรือเครื่องเสมือนส่วนตัวเพื่อทดสอบ

142
00:07:32,480 --> 00:07:36,061
และนี่คือ URL ที่ตั้งค่าไว้แล้ว ตอนตั้งค่า

143
00:07:36,061 --> 00:07:38,789
seed URL คุณต้องวาง URL ลงตรงนี้

144
00:07:38,789 --> 00:07:40,580
แล้วรีเฟรชสภาพแวดล้อม

145
00:07:40,580 --> 00:07:43,053
นี่คือจุดสำคัญที่อยากเน้นครับ

146
00:07:43,053 --> 00:07:46,549
และสำหรับการตั้งค่าแบบ public ให้ตั้งเป็น

147
00:07:46,549 --> 00:07:50,215
false ไปก่อน จะเปลี่ยนเป็น true ทีหลังก็ได้

148
00:07:50,215 --> 00:07:54,052
และสำหรับ email password หลัง SSL (after SSL)

149
00:07:54,052 --> 00:07:57,804
ก็ตั้งเป็น true ได้ แต่ค่าเริ่มต้นเป็น false

150
00:07:57,804 --> 00:08:00,618
ก็ได้ และปิดการยืนยันอีเมล (email

151
00:08:00,618 --> 00:08:04,455
verification) ด้วยการตั้งเป็น false ก็ได้ครับ

152
00:08:04,455 --> 00:08:06,927
ส่วนนี้เป็นสำหรับ worker ครับ

153
00:08:06,927 --> 00:08:10,850
ซึ่งไม่เกี่ยวกับเว็บแอปพลิเคชันหรือคอนโทรลเพลน

154
00:08:10,850 --> 00:08:12,129
ต่างกันนิดหน่อย

155
00:08:12,129 --> 00:08:15,284
ใช้ในกรณีที่คุณมีแอปพลิเคชันงาน (task

156
00:08:15,284 --> 00:08:17,927
application) อยู่บนเครื่องโลคอล

157
00:08:17,927 --> 00:08:21,679
สำหรับการจัดเตรียม (provisioning) ถ้าต้องใช้

158
00:08:21,679 --> 00:08:25,430
Datum เป็นตัวจัดเตรียมฝั่งแบ็กเอนด์ (backend

159
00:08:25,430 --> 00:08:27,903
provisioner) คุณก็กำหนด Datum

160
00:08:27,903 --> 00:08:31,484
เป็นผู้ให้บริการสำหรับการ provisioning ได้

161
00:08:31,484 --> 00:08:35,236
และตั้งค่าพารามิเตอร์ต่างๆ แต่ส่วนนี้เป็นแค่

162
00:08:35,236 --> 00:08:38,817
worker URL template สำหรับ worker แบบโลคอล

163
00:08:38,817 --> 00:08:41,460
เช่น เราติดตั้ง OpenWork worker

164
00:08:41,460 --> 00:08:43,080
ไว้ในวิดีโอก่อนหน้า

165
00:08:43,080 --> 00:08:45,724
คุณก็เอาลิงก์นั้นมาวางตรงนี้ได้

166
00:08:45,724 --> 00:08:49,646
คือบอกสภาพแวดล้อมแบบโลคอลว่าเราชี้ไปที่ worker

167
00:08:49,646 --> 00:08:53,313
ระยะไกลตัวนั้น เพื่อให้มันเก็บเมตริกได้ครับ

168
00:08:53,313 --> 00:08:56,467
ส่วนสุดท้ายก็คือการแทนที่คีย์ต่างๆ ใน

169
00:08:56,467 --> 00:08:59,111
environment ของ API เท่านั้นเอง

170
00:08:59,111 --> 00:09:01,924
จากนั้นต้องตั้งค่าเว็บแอปพลิเคชัน

171
00:09:01,924 --> 00:09:05,761
ซึ่งก็ต้องชี้ไปที่แบ็กเอนด์ API ด้วย แค่กำหนด

172
00:09:05,761 --> 00:09:07,893
data API base ให้เป็น API

173
00:09:07,893 --> 00:09:11,304
ที่คุณตั้งไว้เป็นแบ็กเอนด์ แล้วก็ตั้งค่า

174
00:09:11,304 --> 00:09:15,226
public origin ซึ่งก็คือ URL ของเว็บแอปพลิเคชัน

175
00:09:15,226 --> 00:09:18,893
ประมาณนี้ครับ จากนั้นต้อง migrate ฐานข้อมูล

176
00:09:18,893 --> 00:09:22,133
โดยใช้คำสั่งนี้ เพราะคำสั่ง DB migrate

177
00:09:22,133 --> 00:09:23,412
ธรรมดาใช้ไม่ได้

178
00:09:23,412 --> 00:09:27,249
คุณต้องใช้คำสั่งบรรทัดเดียวที่โชว์ให้ดูตรงนี้

179
00:09:27,249 --> 00:09:30,915
แล้วก็ดูตาราง (tables) หลัง migration เสร็จ

180
00:09:30,915 --> 00:09:32,876
เช่น เรารัน show tables

181
00:09:32,876 --> 00:09:35,520
จะเห็นว่าหลังจากทำทุกอย่างเสร็จ

182
00:09:35,520 --> 00:09:39,442
คุณจะเห็นตารางทั้งหมดในฐานข้อมูล OpenWork ครับ

183
00:09:39,442 --> 00:09:43,108
ขั้นต่อไปคือการสร้าง systemd แต่ถ้าแค่ทดสอบ

184
00:09:43,108 --> 00:09:45,240
คุณก็ไม่ต้องสร้าง systemd

185
00:09:45,240 --> 00:09:48,651
แต่ถ้าจะรันบนโปรดักชัน คุณน่าจะต้องสร้าง

186
00:09:48,651 --> 00:09:51,038
systemd หรือ supervisor ครับ

187
00:09:51,038 --> 00:09:54,278
จะเห็นว่ามีข้อมูลที่เราดูไปก่อนหน้านี้

188
00:09:54,278 --> 00:09:57,689
พวกเขาต้องการ environment ต้องมี working

189
00:09:57,689 --> 00:09:58,787
directory

190
00:09:58,787 --> 00:10:02,795
และต้องแน่ใจว่าเริ่มรันด้วยคำสั่งบรรทัดเดียวนี้

191
00:10:02,795 --> 00:10:06,376
และอย่างที่เห็น นี่คือบิลด์สำหรับโปรดักชัน

192
00:10:06,376 --> 00:10:09,957
(production build) จะเห็นว่าอยู่ในโฟลเดอร์

193
00:10:09,957 --> 00:10:12,856
distribution นั่นคือโปรดักชันบิลด์

194
00:10:12,856 --> 00:10:16,864
คุณจะรันให้เร็วขึ้นได้ด้วยโปรดักชันบิลด์นี้ครับ

195
00:10:16,864 --> 00:10:19,080
จากนั้นต้องตั้งค่า systemd

196
00:10:19,080 --> 00:10:22,662
ของเว็บแอปพลิเคชันด้วย ถ้าจะรันบนโปรดักชัน

197
00:10:22,662 --> 00:10:26,584
หลัง build ทุกอย่างเสร็จ ต้องเพิ่ม environment

198
00:10:26,584 --> 00:10:30,250
นี้ กำหนดให้ Den Web เป็น working directory

199
00:10:30,250 --> 00:10:32,894
และต้องแน่ใจว่ารันด้วย NX start

200
00:10:32,894 --> 00:10:35,878
เพราะโปรเจกต์นี้ build ด้วย Next.js

201
00:10:35,878 --> 00:10:40,738
แล้วต้องระบุว่าต้องการรันแอปพลิเคชันนี้เป็นโปรดักชันบิลด์

202
00:10:40,738 --> 00:10:42,017
ตอน seed ผู้ใช้

203
00:10:42,017 --> 00:10:45,769
คุณต้องเปลี่ยนกลับเป็นโหมดพัฒนา (development

204
00:10:45,769 --> 00:10:48,242
mode) ซึ่งเดี๋ยวจะพูดถึงอีกที

205
00:10:48,242 --> 00:10:49,777
แต่สำหรับบริการนี้

206
00:10:49,777 --> 00:10:53,784
คุณรันเป็นโปรดักชันบิลด์เพื่อให้เร็วขึ้นได้ครับ

207
00:10:53,784 --> 00:10:56,427
ส่วน Nginx proxy ก็แค่ชี้ proxy

208
00:10:56,427 --> 00:11:00,009
ไปที่บริการโลคอลโดยใช้ reverse proxy ง่ายๆ

209
00:11:00,009 --> 00:11:01,970
ไม่มีอะไรต้องพูดถึงครับ

210
00:11:01,970 --> 00:11:04,442
จากนั้นต้องตั้งค่าผู้ใช้ทดสอบ

211
00:11:04,442 --> 00:11:07,768
ซึ่งเป็นกระบวนการ seed อันนี้น่าสนใจมาก

212
00:11:07,768 --> 00:11:09,899
เพราะต้องปรับ environment

213
00:11:09,899 --> 00:11:13,566
ก่อนหน้านี้เล็กน้อยเพื่อตั้งค่า เช่น นี่คือ

214
00:11:13,566 --> 00:11:16,209
API environment สำหรับแบ็กเอนด์

215
00:11:16,209 --> 00:11:20,046
แต่มีคอนฟิกสองสามอย่างที่ต้องอัปเดตตอนทำ seed

216
00:11:20,046 --> 00:11:23,372
ครับ เพราะเราบิลด์ทุกอย่างเป็นโปรดักชัน

217
00:11:23,372 --> 00:11:27,038
จะเห็นว่า open work app mode ใน environment

218
00:11:27,038 --> 00:11:30,619
ถูกตั้งเป็นศูนย์ ซึ่งหมายถึงโปรดักชันบิลด์

219
00:11:30,619 --> 00:11:34,371
ดังนั้นต้องตั้งเป็นศูนย์ แต่พอจะ seed ผู้ใช้

220
00:11:34,371 --> 00:11:38,208
ต้องเปลี่ยนกลับเป็นหนึ่ง ซึ่งหมายถึงโหมดพัฒนา

221
00:11:38,208 --> 00:11:42,130
และต้องแน่ใจว่า allow public sign up เป็น true

222
00:11:42,130 --> 00:11:46,053
เพื่อให้สามารถ seed อีเมลได้ ถ้าตั้งเป็น false

223
00:11:46,053 --> 00:11:49,207
มันอาจไม่ทำงาน ต้องตั้งเป็น true ก่อน

224
00:11:49,207 --> 00:11:53,130
แล้วก็ตั้ง allow email password after SSL เป็น

225
00:11:53,130 --> 00:11:57,052
true ด้วย พอ seed ผู้ใช้เสร็จก็เปลี่ยนกลับเป็น

226
00:11:57,052 --> 00:12:00,207
false ได้ ไม่ต้องใช้โหมด dev อีกต่อไป

227
00:12:00,207 --> 00:12:03,362
กลับไปเป็นโหมดโปรดักชันครับ หลัง seed

228
00:12:03,362 --> 00:12:04,470
ทุกอย่างเสร็จ

229
00:12:04,470 --> 00:12:08,222
ก็เช็คผู้ใช้ได้ว่าอยู่ในฐานข้อมูลจริงหรือไม่

230
00:12:08,222 --> 00:12:10,951
เช่น นี่คือผู้ใช้ที่เรา seed ไว้

231
00:12:10,951 --> 00:12:13,338
จะเห็นว่าอยู่ในฐานข้อมูลจริง

232
00:12:13,338 --> 00:12:16,919
ทุกอย่างเสร็จเรียบร้อย จากนั้นก็สตาร์ท API

233
00:12:16,919 --> 00:12:18,966
และสตาร์ทเว็บแอปพลิเคชัน

234
00:12:18,966 --> 00:12:21,865
แล้วคุณจะเห็นว่าทุกอย่างรันถูกต้อง

235
00:12:21,865 --> 00:12:25,275
นั่นคือสิ่งที่คุณอยากเห็นครับ จบแล้วครับ

236
00:12:25,275 --> 00:12:28,089
นี่คือวิธีตั้งค่า Open Work Bench

237
00:12:28,089 --> 00:12:31,244
เป็นคอนโทรลเพลนบนเครื่องเสมือนส่วนตัว

238
00:12:31,244 --> 00:12:32,864
พอทุกอย่างพร้อมแล้ว

239
00:12:32,864 --> 00:12:36,616
คุณก็ติดตั้งแอปพลิเคชันเดสก์ท็อปของ OpenWork

240
00:12:36,616 --> 00:12:38,321
บนเครื่องโลคอลได้เลย

241
00:12:38,321 --> 00:12:41,220
แค่คลิกตรงนี้แล้วดาวน์โหลดทุกอย่าง

242
00:12:41,220 --> 00:12:43,267
ทำตามขั้นตอนการดาวน์โหลด

243
00:12:43,267 --> 00:12:47,956
แล้วเชื่อมต่อกับคอนโทรลเพลนกลางของคุณก็เป็นอันเสร็จครับ

244
00:12:47,956 --> 00:12:50,685
หวังว่าคลิปนี้จะมีประโยชน์นะครับ

245
00:12:50,685 --> 00:12:53,669
ถ้าชอบวิดีโอนี้ ช่วยกดติดตาม กดไลก์

246
00:12:53,669 --> 00:12:55,801
หรือคอมเมนต์ได้ถ้ามีคำถาม

247
00:12:55,801 --> 00:12:57,847
ขอบคุณมากที่สนับสนุนช่อง

248
00:12:57,847 --> 00:13:00,320
และเจอกันใหม่ในวิดีโอหน้าครับ