- Chatto là ứng dụng chat dành cho nhóm/đội, tương tự các ứng dụng chat nhóm như Slack, Teams, Discord nhưng hướng tới trải nghiệm gọn nhẹ hơn và nhanh hơn
- Chỉ với file thực thi, có thể dựng server và cung cấp cả frontend riêng, nên có thể triển khai tương đối đơn giản trên hạ tầng cá nhân
- Mỗi server phụ trách một cộng đồng, không đưa vào federation giữa các server hay theo dõi/phân tích của bên thứ ba
- Dữ liệu cá nhân và dữ liệu chat được mã hóa khi lưu trữ bằng khóa theo từng người dùng; khi xóa tài khoản, khóa tương ứng sẽ bị hủy
- Đây là ứng dụng chat nhóm/đội đã được phát triển trong khoảng 1 năm qua, nay chính thức trở thành mã nguồn mở để bất kỳ ai cũng có thể tự vận hành
Chatto được công bố cho tự host
- Chatto là ứng dụng chat nhóm/đội đã được phát triển trong khoảng 1 năm qua, nay chính thức trở thành mã nguồn mở để bất kỳ ai cũng có thể tự vận hành
- Cách chạy nhanh nhất là dùng Homebrew
brew install chattocorp/tap/chatto
chatto init
chatto run
- Có thể xem quy trình cài đặt trong Getting Started Guide
- Dù hướng tới mục đích sử dụng tương tự các ứng dụng chat nhóm như Slack, Teams, Discord, Chatto nhấn mạnh trải nghiệm gọn nhẹ hơn và nhanh hơn
- Có thể xem cách hoạt động thực tế tại Chatto HQ Community
Cấu trúc server và mô hình bảo mật
- Ở dạng cơ bản nhất, có thể dựng server chỉ bằng một file thực thi, và server cũng cung cấp kèm frontend riêng
- Mức sử dụng tài nguyên thấp; dữ liệu cá nhân và dữ liệu chat được mã hóa hoàn toàn khi lưu trữ bằng khóa theo từng người dùng
- Khi người dùng xóa tài khoản, khóa của người dùng đó sẽ bị hủy
- Mỗi server Chatto vận hành một cộng đồng duy nhất
- Không có federation dữ liệu giữa các server
- Cũng không có theo dõi hay phân tích của bên thứ ba
- Nếu muốn hiện diện đồng thời trên nhiều server, client sẽ kết nối trực tiếp tới từng server
- Nếu muốn host nhiều cộng đồng, chỉ cần chạy nhiều tiến trình Chatto
- Hỗ trợ sẵn cuộc gọi thoại/video và chia sẻ màn hình
- Cuộc gọi được mã hóa đầu cuối
- Số lượng người tham gia có thể mở rộng tới mức hạ tầng của người dùng chịu được
File triển khai và tài liệu vận hành
Chatto Cloud và dịch vụ hosting trả phí
- Chatto Cloud dự kiến sớm bước vào public beta, và chỉ cung cấp hosting trả phí cho server Chatto
- Không có gói đăng ký premium, quảng cáo hay yếu tố bổ sung nào khác; chỉ cung cấp hosting
- Hạ tầng tại thời điểm ra mắt sẽ gồm hạ tầng đặt tại châu Âu và thuộc sở hữu châu Âu
- Nhiều region hơn dự kiến ra mắt vào đầu năm 2027
- Tất cả server Chatto Cloud cung cấp autoscaling, sao lưu toàn bộ dữ liệu hằng đêm và nâng cấp phiên bản không gián đoạn
- Chatto Cloud đi theo hướng không tạo lock-in
- Server được host trên Chatto Cloud tương thích 100% với server tự host
- Có thể di chuyển dữ liệu bất cứ lúc nào để chuyển vào hoặc ra khỏi Chatto Cloud
Tình trạng 0.4 và kế hoạch tới 1.0.0
- Phiên bản Chatto hiện tại là 0.4
- Được xem là đủ ổn định để dùng trong production
- Vẫn còn thiếu một vài tính năng quan trọng
- Có thể xem kế hoạch đầy đủ tại Chatto Roadmap
- Trọng tâm của Chatto 0.5 là tính năng an toàn và cải thiện client
- Bao gồm tính năng báo cáo nội dung và moderation
- Đặc biệt tập trung hoàn thiện chức năng đa server
- Chatto 1.0.0 dự kiến đạt được sau khoảng 6~12 tháng
- Trước thời điểm đó có thể có các thay đổi phá vỡ tương thích
- Người dùng tự host cần sẵn sàng cập nhật khi phiên bản mới được phát hành
- Có thể nhận tin phát hành hoặc thông báo bắt đầu beta của Chatto Cloud qua newsletter Chatto announcements, với tần suất gửi khoảng 1 lần mỗi tháng
2 bình luận
Tôi đang dùng Mattermost, nhưng họ cứ liên tục hướng người dùng sang bản Enterprise và cắt giảm tính năng của phiên bản OSS, nên
khi Chatto đủ trưởng thành, tôi muốn thử viết một công cụ để migration từ Mattermost sang.
Ý kiến trên Hacker News
Tôi thích việc dự án được thiết kế để rất dễ self-host trên hạ tầng riêng. Nhìn vào tài liệu (https://docs.chatto.run/), Chatto được phân phối dưới dạng một binary nhỏ, độc lập, dùng NATS, một message broker nhẹ có engine lưu bền vững stream tích hợp, và cũng có thể cấu hình kho lưu trữ đối tượng tương thích S3 bên ngoài
Cuộc gọi thực tế được vận hành bằng LiveKit (Apache-2.0) và cần triển khai cùng Chatto; tôi cũng thích việc cấu hình kết nối cần thiết được thể hiện qua ví dụ triển khai, giống như NATS. Đây là một dự án tuyệt vời, không chỉ nói suông mà có hướng dẫn thực tế
Nhìn ảnh chụp màn hình thì có vẻ là có, nhưng tôi không tìm thấy tài liệu nào để tải về
Tôi quen Hendrik vài năm rồi, và anh ấy là một trong những lập trình viên tài năng nhất tôi từng gặp. Tôi chắc chắn dự án này cũng sẽ thành công rất nhanh
Bản thân dự án đã thú vị, nhưng điều đặc biệt ấn tượng là anh ấy phát triển một mình bằng cách tận dụng agentic coding
Nói chung là một người tốt, và tôi luôn muốn có cơ hội làm việc lại với anh ấy
Nếu định bán cho doanh nghiệp, cần suy nghĩ kỹ phần “khi người dùng xóa tài khoản, khóa theo từng người dùng sẽ bị hủy”. Tin nhắn công việc thuộc về nhà tuyển dụng chứ không phải cá nhân người dùng, nên cần có soft delete
Tôi bật cười vì trong tiếng Bồ Đào Nha, “chato” nghĩa là “nhàm chán”. Nhưng thứ này trông có vẻ rất dễ thiết lập và sử dụng
Tôi hoan nghênh thêm nhiều phần mềm nhàm chán hơn nữa
Trong tiếng Bồ Đào Nha/Tây Ban Nha, khá thường xuyên có khả năng là tiếng lóng NSFW
Tuyệt. Nhưng tôi không thấy ở đâu trên website nói có hỗ trợ di động hay không
Muốn chuyển công ty hoặc bạn bè sang dùng thì hỗ trợ di động là bắt buộc
https://github.com/orgs/chattocorp/projects/1?pane=issue&ite...
Mattermost, Element/Matrix, và có lẽ một phần hoặc toàn bộ client ActivityPub có vẻ làm theo cách này. Nếu không, việc self-host server cũng đồng nghĩa bạn phải tự phân phối cả ứng dụng client thông qua App Store và chi phí Chương trình nhà phát triển Apple
Tôi sẽ tiếp tục theo dõi. Hiện tôi đang dùng Mattermost, nhưng mô hình giá khá thất thường và nhắm tới enterprise, nên hiện tôi vẫn dùng bản mã nguồn mở bị giới hạn khá nhiều tính năng
Thêm nữa, tính năng gọi video trước đây chưa tốt, nên tôi thích việc Chatto có tính năng đó
Tôi tò mò vì sao lại dùng dual license. Backend Go là AGPL, còn frontend TypeScript có vẻ là Apache 2.0
Không rõ vì sao không để tất cả là AGPL
Nhờ đó, nó tạo ra một dạng độc quyền mềm cho cloud riêng của họ. Trong khi đó, với frontend, nếu muốn cho phép tùy biến, white-label, v.v. thì một giấy phép thoáng hơn hợp lý hơn
Grafana là ví dụ hay. Năm 2021, họ chuyển từ Apache sang AGPLv3 để ngăn các nhà cung cấp cloud host các bản sửa đổi mà không đóng góp lại, còn plugin thì vẫn giữ giấy phép Apache
Sẽ rất tuyệt nếu sau khi self-host có thể tạo một gói hoặc liên kết giúp tải xuống, cài đặt và thiết lập sẵn đăng nhập. Kiểu như trình cài đặt tùy chỉnh hoặc script cấu hình gắn với một người cụ thể
Mục tiêu là giảm tối đa ma sát onboarding. Có thể có hệ quả bảo mật nếu liên kết bị chia sẻ nhầm, nhưng với một instance self-host nhỏ thì có vẻ có thể giảm thiểu khá dễ. Cũng có thể chỉ cho hoạt động với tài khoản cục bộ
Như vậy sẽ dễ gửi cho bạn bè một liên kết kiểu “vào đây chat với tôi”, mà không phải lo họ phản ứng “tôi đã dùng Discord rồi nên không muốn cấu hình mấy thứ đó”
Ngay cả khi người khác đăng ký, chỉ cần không cấp vai trò “nhóm nội bộ” chẳng hạn. Không biết bạn đang nghĩ tới thứ như liên kết mời có token dùng một lần không
Rất hay. Trước đây tôi từng có ý tưởng tương tự: nhiều công ty muốn có một thứ để gom thông báo và thực hiện vài hành động bot đơn giản, nhưng không nhất thiết muốn bị khóa vào một nhà cung cấp chat cụ thể
Nếu nó có thể dùng làm frontend cho nhiều tích hợp, hoặc chỉ làm chat nội bộ, thì sẽ thật sự thú vị
Tôi muốn biết ưu và nhược điểm của Chatto so với Mattermost là gì
Ngoài ra, việc backend của Chatto được triển khai bằng Go là điều rất đáng mừng. Go rất phù hợp cho kiểu use case này