- Chatto เป็นแอปสำหรับแชตกลุ่ม·ทีม มีลักษณะคล้ายแอปแชตกลุ่มอย่าง Slack·Teams·Discord แต่ตั้งเป้าให้ กะทัดรัดและใช้งานได้รวดเร็วกว่า
- สามารถรันเซิร์ฟเวอร์ได้ด้วยไฟล์ executable เพียงไฟล์เดียวและมีฟรอนต์เอนด์ของตัวเองให้พร้อม ทำให้ ดีพลอย ลงบนอินฟราส่วนตัวได้ค่อนข้างง่าย
- แต่ละเซิร์ฟเวอร์ดูแลหนึ่งคอมมูนิตี้ และไม่มี federation ระหว่างเซิร์ฟเวอร์หรือการติดตาม·วิเคราะห์จากบุคคลที่สาม
- ข้อมูลส่วนตัวและข้อมูลแชตจะถูก เข้ารหัสขณะจัดเก็บ ด้วยคีย์ของผู้ใช้แต่ละราย และเมื่อมีการลบบัญชี คีย์นั้นจะถูกทำลาย
- เป็นแอปพลิเคชันแชตกลุ่ม·ทีมที่พัฒนามาตลอดราว 1 ปี และตอนนี้เปิดเป็นโอเพนซอร์สอย่างเป็นทางการ ใครก็สามารถนำไปรันเองได้
Chatto เปิดให้โฮสต์เองได้แล้ว
- Chatto เป็นแอปพลิเคชันแชตกลุ่ม·ทีมที่พัฒนามาตลอดราว 1 ปี และตอนนี้เปิดเป็นโอเพนซอร์สอย่างเป็นทางการ ใครก็สามารถนำไปรันเองได้
- วิธีเริ่มต้นที่เร็วที่สุดคือใช้ Homebrew
brew install chattocorp/tap/chatto
chatto init
chatto run
โครงสร้างเซิร์ฟเวอร์และโมเดลความปลอดภัย
- ในรูปแบบพื้นฐานที่สุด สามารถรันเซิร์ฟเวอร์ได้ด้วย executable เพียงไฟล์เดียว และเซิร์ฟเวอร์จะให้บริการ ฟรอนต์เอนด์ ของตัวเองด้วย
- ใช้ทรัพยากรต่ำ และข้อมูลส่วนตัวกับข้อมูลแชตจะถูก เข้ารหัสเต็มรูปแบบขณะจัดเก็บ ด้วยคีย์แยกตามผู้ใช้
- หากผู้ใช้ลบบัญชี คีย์ของผู้ใช้นั้นจะถูกทำลาย
- แต่ละเซิร์ฟเวอร์ของ Chatto จะให้บริการคอมมูนิตี้เดียว
- ไม่มี data federation ระหว่างเซิร์ฟเวอร์
- ไม่มีการติดตามหรือวิเคราะห์จาก third party
- หากต้องการอยู่หลายเซิร์ฟเวอร์พร้อมกัน ไคลเอนต์จะเชื่อมต่อไปยังแต่ละเซิร์ฟเวอร์โดยตรง
- หากต้องการโฮสต์หลายคอมมูนิตี้ ก็เพียงรันโปรเซสของ Chatto หลายชุด
- รองรับการโทรด้วยเสียง·วิดีโอและ การแชร์หน้าจอ ในตัว
- การโทรถูกเข้ารหัสแบบ end-to-end
- การขยายจำนวนผู้เข้าร่วมทำได้ตามขีดความสามารถของอินฟราที่ผู้ใช้มี
ไฟล์สำหรับดีพลอยและเอกสารการใช้งาน
Chatto Cloud และโฮสติ้งแบบเสียเงิน
- Chatto Cloud จะเข้าสู่ช่วง public beta ในเร็ว ๆ นี้ และจะให้บริการเฉพาะโฮสติ้งแบบเสียเงินสำหรับเซิร์ฟเวอร์ Chatto
- ไม่มีพรีเมียมซับสคริปชัน โฆษณา หรือองค์ประกอบเสริมอื่น ๆ โดยให้เฉพาะบริการโฮสต์เท่านั้น
- อินฟราที่ใช้ในช่วงเปิดตัวจะเป็น อินฟราในยุโรปและอินฟราที่ยุโรปเป็นเจ้าของ
- จะเพิ่มรีเจียนอื่น ๆ เพิ่มเติมในช่วงต้นปี 2027
- เซิร์ฟเวอร์ Chatto Cloud ทั้งหมดรองรับ auto scaling, การสำรองข้อมูลทั้งหมดทุกคืน และการอัปเกรดเวอร์ชันแบบไม่หยุดระบบ
- Chatto Cloud ตั้งใจไม่สร้าง lock-in
- เซิร์ฟเวอร์ที่โฮสต์บน Chatto Cloud เข้ากันได้กับเซิร์ฟเวอร์ที่โฮสต์เอง 100%
- สามารถย้ายข้อมูลเข้าออก Chatto Cloud ได้ทุกเมื่อ
สถานะ 0.4 และแผนจนถึง 1.0.0
- ตอนนี้ Chatto อยู่ที่เวอร์ชัน 0.4
- ถือว่าเสถียรพอสำหรับใช้งานโปรดักชัน
- แต่ยังขาดฟีเจอร์สำคัญบางส่วน
- ดูแผนทั้งหมดได้ที่ Chatto Roadmap
- จุดโฟกัสของ Chatto 0.5 คือ ฟีเจอร์ด้านความปลอดภัย และการปรับปรุงไคลเอนต์
- จะรวมฟีเจอร์รายงานคอนเทนต์และระบบ moderation
- โดยเฉพาะจะเน้นขัดเกลาฟีเจอร์ multi-server
- คาดว่า Chatto 1.0.0 จะมาถึงในอีกประมาณ 6~12 เดือน
- ก่อนหน้านั้นอาจยังมีการเปลี่ยนแปลงที่ไม่เข้ากันย้อนหลัง
- ผู้ใช้ที่โฮสต์เองควรเตรียมพร้อมอัปเดตเมื่อมีเวอร์ชันใหม่ออกมา
- สามารถรับข่าวรีลีสหรือการแจ้งเริ่มต้นเบต้าของ Chatto Cloud ได้ผ่านจดหมายข่าว Chatto announcements ซึ่งส่งประมาณเดือนละ 1 ครั้ง
2 ความคิดเห็น
ตอนนี้กำลังใช้ mattermost อยู่ แต่ชอบชักจูงให้ไปฝั่ง enterprise อยู่เรื่อย ๆ และยังลดทอนฟีเจอร์ของเวอร์ชัน OSS ลงด้วย
ถ้ามันพัฒนาได้สมบูรณ์พอแล้ว ก็อยากลองทำเครื่องมือสำหรับย้ายจาก mattermost ดูสักตัวครับ
ความคิดเห็นบน Hacker News
ชอบตรงที่ออกแบบมาให้ self-host บนโครงสร้างพื้นฐานของตัวเองได้ง่ายมาก ดูจากเอกสาร (https://docs.chatto.run/) บอกว่า Chatto ถูกแจกจ่ายเป็นไบนารีขนาดเล็กที่ทำงานได้อิสระ ใช้ NATS ซึ่งเป็น message broker น้ำหนักเบาพร้อมเอนจิน persistence สำหรับสตรีมในตัว และยังตั้งค่าให้ใช้ object storage ภายนอกที่เข้ากันได้กับ S3 ได้ด้วย
การโทรจริงขับเคลื่อนด้วย LiveKit (Apache-2.0) และต้อง deploy คู่กับ Chatto ซึ่งก็ดีตรงที่มีตัวอย่างการ deploy ที่แสดงคอนฟิกการเชื่อมต่อที่จำเป็นเหมือนกับ NATS เป็นโปรเจกต์ที่ยอดเยี่ยม ไม่ใช่แค่พูด แต่มีไกด์ใช้งานจริง
จากสกรีนช็อตเหมือนจะมี แต่หาเอกสารสำหรับดาวน์โหลดไม่เจอ
รู้จัก Hendrik มาหลายปีแล้ว เขาเป็นหนึ่งในนักพัฒนาที่มีพรสวรรค์ที่สุดเท่าที่เคยเจอมา ผมมั่นใจว่าโปรเจกต์นี้จะประสบความสำเร็จได้เร็วมาก
ตัวโปรเจกต์เองก็น่าสนใจอยู่แล้ว แต่ที่น่าประทับใจเป็นพิเศษคือเขาพัฒนามันคนเดียวโดยใช้ agentic coding
โดยรวมเป็นคนดี และอยากทำงานด้วยกันอีกเมื่อไรก็ได้
ถ้าคิดจะขายให้บริษัท ควรพิจารณาส่วนที่ว่า “เมื่อผู้ใช้ลบบัญชี จะทำลายคีย์รายผู้ใช้” เพราะ ข้อความที่ใช้ทำงาน ไม่ได้เป็นของผู้ใช้รายบุคคล แต่เป็นของนายจ้าง ดังนั้นจึงต้องมี soft delete
ในภาษาโปรตุเกส “chato” แปลว่า “น่าเบื่อ” เลยขำขึ้นมา แต่ตัวนี้ดูเหมือนตั้งค่าและใช้งานได้ง่ายมาก
ยินดีต้อนรับ ซอฟต์แวร์น่าเบื่อ ให้มากขึ้น
ในภาษาโปรตุเกส/สเปน มักมีโอกาสค่อนข้างบ่อยที่จะไปตรงกับสแลง NSFW
เจ๋งดี แต่หาในเว็บไซต์ไม่เจอเลยว่ามี การรองรับมือถือ หรือไม่
ถ้าจะย้ายบริษัทหรือกลุ่มเพื่อนมาใช้ การรองรับมือถือเป็นสิ่งจำเป็น
https://github.com/orgs/chattocorp/projects/1?pane=issue&ite...
Mattermost, Element/Matrix และอาจรวมถึงไคลเอนต์ ActivityPub บางส่วนหรือทั้งหมดน่าจะทำแบบนี้ ไม่เช่นนั้น การ self-host เซิร์ฟเวอร์ก็หมายความว่าต้องแจกจ่ายแอปไคลเอนต์เองผ่าน App Store และจ่ายค่า Apple Developer Program ด้วย
จะคอยติดตามต่อ ตอนนี้ใช้ Mattermost อยู่ แต่โครงสร้างราคาค่อนข้างขึ้น ๆ ลง ๆ และมุ่งไปทาง enterprise ทำให้ตอนนี้ยังใช้เวอร์ชันโอเพนซอร์สที่ถูกจำกัดฟีเจอร์ไว้ค่อนข้างมากต่อไป
อีกอย่างคือวิดีโอคอลยังไม่น่าพอใจ เลยดีที่ Chatto มีฟีเจอร์นี้
สงสัยว่าทำไมถึงใช้ dual license แบ็กเอนด์ Go เป็น AGPL แต่ฟรอนต์เอนด์ TypeScript ดูเหมือนเป็น Apache 2.0
อยากรู้ว่าทำไมไม่ใช้ AGPL ทั้งหมด
จึงให้ความเป็นเอกสิทธิ์แบบอ่อน ๆ สำหรับการรัน Cloud ของตัวเอง ในทางกลับกัน สำหรับฟรอนต์เอนด์ ถ้าต้องการอนุญาตให้ปรับแต่ง ทำ white-label ฯลฯ ไลเซนส์ที่ผ่อนปรนกว่าจะสมเหตุสมผลกว่า
Grafana เป็นตัวอย่างที่ดี เหตุผลที่ย้ายจาก Apache ไปเป็น AGPLv3 ในปี 2021 ก็เพื่อไม่ให้ผู้ให้บริการคลาวด์โฮสต์เวอร์ชันที่แก้ไขแล้วโดยไม่ contribute กลับมา และยังคงให้ปลั๊กอินใช้ไลเซนส์ Apache ต่อไป
หลังจาก self-host แล้ว ถ้าสามารถสร้างแพ็กเกจหรือลิงก์ที่ดาวน์โหลด ติดตั้ง และตั้งค่าล็อกอินล่วงหน้าให้เลยได้คงดีมาก เป็นเหมือนตัวติดตั้งหรือสคริปต์ตั้งค่าแบบกำหนดเองที่ผูกกับคนใดคนหนึ่ง
เป้าหมายคือการลด แรงเสียดทานตอน onboarding ให้มากที่สุด อาจมีผลด้านความปลอดภัย เช่น ลิงก์ถูกแชร์โดยไม่ตั้งใจ แต่สำหรับอินสแตนซ์ self-host ขนาดเล็กน่าจะบรรเทาได้ค่อนข้างง่าย อาจทำให้ใช้ได้เฉพาะกับบัญชีในเครื่องก็ได้
แบบนี้จะทำให้ส่งลิงก์ให้เพื่อนว่า “มาคุยกับฉันที่นี่” ได้ง่ายขึ้น และไม่ต้องกังวลกับปฏิกิริยาแบบ “ฉันใช้ Discord อยู่แล้ว ไม่อยากตั้งค่าอะไรพวกนี้ทั้งหมด”
ต่อให้มีคนอื่นสมัครเข้ามา ก็แค่ไม่ให้บทบาท “กลุ่มภายใน” เป็นต้น สงสัยว่าหมายถึงอะไรอย่าง ลิงก์เชิญ ที่มีโทเคนใช้ครั้งเดียวหรือเปล่า
ดีมาก เคยมีไอเดียคล้ายกันมาก่อน หลายบริษัทอยากได้อะไรสักอย่างที่รวมการแจ้งเตือนและทำ การทำงานของบอต ง่าย ๆ ได้ แต่ไม่จำเป็นต้องอยากผูกกับผู้ให้บริการแชทรายใดรายหนึ่ง
ถ้าใช้เป็นฟรอนต์เอนด์ของหลาย integration หรือใช้เป็นแชทภายในอย่างเดียวได้ ก็น่าจะน่าสนใจมาก
อยากรู้ว่าเมื่อเทียบกับ Mattermost แล้ว Chatto มีข้อดีข้อเสียอะไรบ้าง
เพิ่มเติมคือดีใจมากที่แบ็กเอนด์ของ Chatto เขียนด้วย Go เพราะ Go เหมาะกับงานแบบนี้มาก