9 คะแนน โดย GN⁺ 4 시간 전 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • Chatto เป็นแอปสำหรับแชตกลุ่ม·ทีม มีลักษณะคล้ายแอปแชตกลุ่มอย่าง Slack·Teams·Discord แต่ตั้งเป้าให้ กะทัดรัดและใช้งานได้รวดเร็วกว่า
  • สามารถรันเซิร์ฟเวอร์ได้ด้วยไฟล์ executable เพียงไฟล์เดียวและมีฟรอนต์เอนด์ของตัวเองให้พร้อม ทำให้ ดีพลอย ลงบนอินฟราส่วนตัวได้ค่อนข้างง่าย
  • แต่ละเซิร์ฟเวอร์ดูแลหนึ่งคอมมูนิตี้ และไม่มี federation ระหว่างเซิร์ฟเวอร์หรือการติดตาม·วิเคราะห์จากบุคคลที่สาม
  • ข้อมูลส่วนตัวและข้อมูลแชตจะถูก เข้ารหัสขณะจัดเก็บ ด้วยคีย์ของผู้ใช้แต่ละราย และเมื่อมีการลบบัญชี คีย์นั้นจะถูกทำลาย
  • เป็นแอปพลิเคชันแชตกลุ่ม·ทีมที่พัฒนามาตลอดราว 1 ปี และตอนนี้เปิดเป็นโอเพนซอร์สอย่างเป็นทางการ ใครก็สามารถนำไปรันเองได้

Chatto เปิดให้โฮสต์เองได้แล้ว

  • Chatto เป็นแอปพลิเคชันแชตกลุ่ม·ทีมที่พัฒนามาตลอดราว 1 ปี และตอนนี้เปิดเป็นโอเพนซอร์สอย่างเป็นทางการ ใครก็สามารถนำไปรันเองได้
  • วิธีเริ่มต้นที่เร็วที่สุดคือใช้ Homebrew
brew install chattocorp/tap/chatto  
chatto init  
chatto run  
  • ดูขั้นตอนติดตั้งได้ที่ Getting Started Guide
  • แม้จะมุ่งใช้งานคล้ายแอปแชตกลุ่มอย่าง Slack, Teams, Discord แต่ก็เน้นความ กะทัดรัดและตอบสนองรวดเร็ว มากกว่า
  • ดูการทำงานจริงได้ที่ Chatto HQ Community

โครงสร้างเซิร์ฟเวอร์และโมเดลความปลอดภัย

  • ในรูปแบบพื้นฐานที่สุด สามารถรันเซิร์ฟเวอร์ได้ด้วย 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 ความคิดเห็น

 
click 28 분 전

ตอนนี้กำลังใช้ mattermost อยู่ แต่ชอบชักจูงให้ไปฝั่ง enterprise อยู่เรื่อย ๆ และยังลดทอนฟีเจอร์ของเวอร์ชัน OSS ลงด้วย
ถ้ามันพัฒนาได้สมบูรณ์พอแล้ว ก็อยากลองทำเครื่องมือสำหรับย้ายจาก mattermost ดูสักตัวครับ

 
GN⁺ 4 시간 전
ความคิดเห็นบน Hacker News
  • ชอบตรงที่ออกแบบมาให้ self-host บนโครงสร้างพื้นฐานของตัวเองได้ง่ายมาก ดูจากเอกสาร (https://docs.chatto.run/) บอกว่า Chatto ถูกแจกจ่ายเป็นไบนารีขนาดเล็กที่ทำงานได้อิสระ ใช้ NATS ซึ่งเป็น message broker น้ำหนักเบาพร้อมเอนจิน persistence สำหรับสตรีมในตัว และยังตั้งค่าให้ใช้ object storage ภายนอกที่เข้ากันได้กับ S3 ได้ด้วย
    การโทรจริงขับเคลื่อนด้วย LiveKit (Apache-2.0) และต้อง deploy คู่กับ Chatto ซึ่งก็ดีตรงที่มีตัวอย่างการ deploy ที่แสดงคอนฟิกการเชื่อมต่อที่จำเป็นเหมือนกับ NATS เป็นโปรเจกต์ที่ยอดเยี่ยม ไม่ใช่แค่พูด แต่มีไกด์ใช้งานจริง

    • เจ๋งมากจริง ๆ การมีตัวเลือกเพิ่มขึ้นเป็นเรื่องดีเสมอ แต่ดูจากเอกสารแล้วชวนสับสนว่ามี แอปพลิเคชันเดสก์ท็อป หรือไม่
      จากสกรีนช็อตเหมือนจะมี แต่หาเอกสารสำหรับดาวน์โหลดไม่เจอ
    • สงสัยว่าสามารถติดตั้งบนที่ที่ง่ายและถูกหรือแทบฟรีอย่าง Cloudflare หรือ Vercel ได้ไหม
  • รู้จัก Hendrik มาหลายปีแล้ว เขาเป็นหนึ่งในนักพัฒนาที่มีพรสวรรค์ที่สุดเท่าที่เคยเจอมา ผมมั่นใจว่าโปรเจกต์นี้จะประสบความสำเร็จได้เร็วมาก
    ตัวโปรเจกต์เองก็น่าสนใจอยู่แล้ว แต่ที่น่าประทับใจเป็นพิเศษคือเขาพัฒนามันคนเดียวโดยใช้ agentic coding

    • รู้จักเป็นการส่วนตัวมาเกือบ 30 ปีแล้ว และเขายังคงเป็นหนึ่งในนักพัฒนาที่ฉลาดที่สุด มีประสบการณ์มากที่สุด และอยากรู้อยากเห็นที่สุดเท่าที่เคยเจอมา
      โดยรวมเป็นคนดี และอยากทำงานด้วยกันอีกเมื่อไรก็ได้
    • สงสัยว่าเขามีอะไรน่าสนใจอย่างอื่นที่เคยสร้างไว้ไหม
    • ตอนแรกก็สนใจอยู่บ้าง แต่คำพูดนี้กลับทำให้รู้สึกว่าควรหลีกเลี่ยงมากกว่า
  • ถ้าคิดจะขายให้บริษัท ควรพิจารณาส่วนที่ว่า “เมื่อผู้ใช้ลบบัญชี จะทำลายคีย์รายผู้ใช้” เพราะ ข้อความที่ใช้ทำงาน ไม่ได้เป็นของผู้ใช้รายบุคคล แต่เป็นของนายจ้าง ดังนั้นจึงต้องมี soft delete

    • กรณีแบบนั้นก็น่าจะไม่ให้ผู้ใช้ลบบัญชีเองได้ก็พอ แต่สำหรับผู้ใช้และผู้ให้บริการ Chatto ส่วนใหญ่ วิธีที่ทำให้สอดคล้องกับ สิทธิในการลบข้อมูล โดยอัตโนมัติดูจะดีกว่า
    • นายจ้างอาจไม่ใช่กลุ่มลูกค้าเป้าหมายก็ได้
  • ในภาษาโปรตุเกส “chato” แปลว่า “น่าเบื่อ” เลยขำขึ้นมา แต่ตัวนี้ดูเหมือนตั้งค่าและใช้งานได้ง่ายมาก
    ยินดีต้อนรับ ซอฟต์แวร์น่าเบื่อ ให้มากขึ้น

    • อาจแปลว่า “น่ารำคาญ” ได้ด้วย ก่อนตั้งชื่อโปรเจกต์หรือบริษัท ควรค้นหาดูเสมอว่าอย่างน้อยใน 10 ภาษาที่มีผู้ใช้มากที่สุด มีความหมายไม่ดีหรือไม่
      ในภาษาโปรตุเกส/สเปน มักมีโอกาสค่อนข้างบ่อยที่จะไปตรงกับสแลง NSFW
  • เจ๋งดี แต่หาในเว็บไซต์ไม่เจอเลยว่ามี การรองรับมือถือ หรือไม่
    ถ้าจะย้ายบริษัทหรือกลุ่มเพื่อนมาใช้ การรองรับมือถือเป็นสิ่งจำเป็น

    • ดูเหมือนจะอยู่ในแผน
      https://github.com/orgs/chattocorp/projects/1?pane=issue&ite...
    • ต้องคำนึงว่าหากจะส่งการแจ้งเตือนไปยังแอป iOS ผู้เผยแพร่แอปต้องเป็นผู้ส่งการแจ้งเตือนเอง กล่าวคือจำเป็นต้องรัน บริการพร็อกซีส่งต่ออีเวนต์
      Mattermost, Element/Matrix และอาจรวมถึงไคลเอนต์ ActivityPub บางส่วนหรือทั้งหมดน่าจะทำแบบนี้ ไม่เช่นนั้น การ self-host เซิร์ฟเวอร์ก็หมายความว่าต้องแจกจ่ายแอปไคลเอนต์เองผ่าน App Store และจ่ายค่า Apple Developer Program ด้วย
  • จะคอยติดตามต่อ ตอนนี้ใช้ Mattermost อยู่ แต่โครงสร้างราคาค่อนข้างขึ้น ๆ ลง ๆ และมุ่งไปทาง enterprise ทำให้ตอนนี้ยังใช้เวอร์ชันโอเพนซอร์สที่ถูกจำกัดฟีเจอร์ไว้ค่อนข้างมากต่อไป
    อีกอย่างคือวิดีโอคอลยังไม่น่าพอใจ เลยดีที่ Chatto มีฟีเจอร์นี้

  • สงสัยว่าทำไมถึงใช้ dual license แบ็กเอนด์ Go เป็น AGPL แต่ฟรอนต์เอนด์ TypeScript ดูเหมือนเป็น Apache 2.0
    อยากรู้ว่าทำไมไม่ใช้ AGPL ทั้งหมด

    • ถ้าให้แบ็กเอนด์เป็น AGPL จะช่วยกันไม่ให้ใครเอาไปโฮสต์เป็นบริการได้ เพราะ AGPL ถือว่าการโฮสต์ก็เป็นการแจกจ่ายด้วย ดังนั้นใครก็ตามที่โฮสต์ต้องเปิดเผยโค้ด
      จึงให้ความเป็นเอกสิทธิ์แบบอ่อน ๆ สำหรับการรัน Cloud ของตัวเอง ในทางกลับกัน สำหรับฟรอนต์เอนด์ ถ้าต้องการอนุญาตให้ปรับแต่ง ทำ white-label ฯลฯ ไลเซนส์ที่ผ่อนปรนกว่าจะสมเหตุสมผลกว่า
      Grafana เป็นตัวอย่างที่ดี เหตุผลที่ย้ายจาก Apache ไปเป็น AGPLv3 ในปี 2021 ก็เพื่อไม่ให้ผู้ให้บริการคลาวด์โฮสต์เวอร์ชันที่แก้ไขแล้วโดยไม่ contribute กลับมา และยังคงให้ปลั๊กอินใช้ไลเซนส์ Apache ต่อไป
    • AGPL กันไม่ให้อีกฝ่ายใช้แบ็กเอนด์ Go ไปรัน บริการคลาวด์ แข่งได้ แต่แทบไม่มีผลกับฟรอนต์เอนด์ และมีแต่จะทำให้ผู้ใช้ระดับ enterprise กลัว
  • หลังจาก self-host แล้ว ถ้าสามารถสร้างแพ็กเกจหรือลิงก์ที่ดาวน์โหลด ติดตั้ง และตั้งค่าล็อกอินล่วงหน้าให้เลยได้คงดีมาก เป็นเหมือนตัวติดตั้งหรือสคริปต์ตั้งค่าแบบกำหนดเองที่ผูกกับคนใดคนหนึ่ง
    เป้าหมายคือการลด แรงเสียดทานตอน onboarding ให้มากที่สุด อาจมีผลด้านความปลอดภัย เช่น ลิงก์ถูกแชร์โดยไม่ตั้งใจ แต่สำหรับอินสแตนซ์ self-host ขนาดเล็กน่าจะบรรเทาได้ค่อนข้างง่าย อาจทำให้ใช้ได้เฉพาะกับบัญชีในเครื่องก็ได้
    แบบนี้จะทำให้ส่งลิงก์ให้เพื่อนว่า “มาคุยกับฉันที่นี่” ได้ง่ายขึ้น และไม่ต้องกังวลกับปฏิกิริยาแบบ “ฉันใช้ Discord อยู่แล้ว ไม่อยากตั้งค่าอะไรพวกนี้ทั้งหมด”

    • สงสัยว่าคาดหวังอะไรมากไปกว่า “ให้ลิงก์อินสแตนซ์ แล้วไปสมัครที่นั่น” ถ้ารวมกับบทบาทแบบ Discord ก็สามารถจำกัดการมองเห็นช่องและสิทธิ์ตามบทบาทได้
      ต่อให้มีคนอื่นสมัครเข้ามา ก็แค่ไม่ให้บทบาท “กลุ่มภายใน” เป็นต้น สงสัยว่าหมายถึงอะไรอย่าง ลิงก์เชิญ ที่มีโทเคนใช้ครั้งเดียวหรือเปล่า
  • ดีมาก เคยมีไอเดียคล้ายกันมาก่อน หลายบริษัทอยากได้อะไรสักอย่างที่รวมการแจ้งเตือนและทำ การทำงานของบอต ง่าย ๆ ได้ แต่ไม่จำเป็นต้องอยากผูกกับผู้ให้บริการแชทรายใดรายหนึ่ง
    ถ้าใช้เป็นฟรอนต์เอนด์ของหลาย integration หรือใช้เป็นแชทภายในอย่างเดียวได้ ก็น่าจะน่าสนใจมาก

  • อยากรู้ว่าเมื่อเทียบกับ Mattermost แล้ว Chatto มีข้อดีข้อเสียอะไรบ้าง
    เพิ่มเติมคือดีใจมากที่แบ็กเอนด์ของ Chatto เขียนด้วย Go เพราะ Go เหมาะกับงานแบบนี้มาก