16 điểm bởi GN⁺ 2024-12-19 | 4 bình luận | Chia sẻ qua WhatsApp
  • Ergo là một máy chủ IRC hiện đại được viết bằng Go, trước đây có tên là Oragono
  • Các nguyên tắc thiết kế chính: dễ cấu hình và dễ sử dụng, tích hợp framework ircd và dịch vụ, tích hợp tính năng bouncer, hỗ trợ IRCv3, khả năng tùy biến cao thông qua tệp cấu hình YAML
  • Ergo là một nhánh fork của Ergonomadic IRC daemon

Tính năng

  • Dịch vụ tích hợp: cung cấp NickServ cho tài khoản người dùng, ChanServ cho đăng ký kênh và HostServ cho vanity host.
  • Tính năng bouncer: lưu trữ và phát lại lịch sử, cho phép nhiều client sử dụng cùng một nickname.
  • Hỗ trợ TLS/SSL, bao gồm hỗ trợ chứng chỉ client.
  • Hỗ trợ IRCv3.
  • Sử dụng tệp cấu hình YAML.
  • Có thể cập nhật nóng cấu hình máy chủ và chứng chỉ TLS.
  • Hỗ trợ xác thực SASL và LDAP.
  • Hỗ trợ nhiều ngôn ngữ và có thể đặt ngôn ngữ mặc định cho mạng.
  • Tùy chọn hỗ trợ nickname và tên kênh UTF-8.
  • Cung cấp các tính năng bảo mật và quyền riêng tư nâng cao.
  • Hệ thống phân quyền mở rộng cho IRC operator.
  • Tra cứu ident cho tên người dùng.
  • Tự động giới hạn kết nối client.
  • Mật khẩu được lưu bằng bcrypt.
  • Tính năng chặn hợp nhất thông qua hệ thống UBAN.
  • Tập trung vào phát triển tuân thủ đặc tả.

Hướng dẫn bắt đầu nhanh

  • Có thể tải bản phát hành mới nhất, giải nén, chỉnh sửa tệp cấu hình rồi chạy máy chủ
  • Gói Ergo đang được duy trì trên Arch Linux AUR và Gentoo Linux.
  • Cung cấp Dockerfile và ví dụ recipe docker-compose
  • Build từ mã nguồn
    • Cần bản phân phối Go mới nhất; sau khi checkout branch hoặc tag mong muốn, có thể build bằng lệnh make.

Cấu hình

  • Tệp cấu hình mặc định default.yaml giải thích ý nghĩa của từng tùy chọn và các thay đổi.
  • Theo mặc định, log chỉ được gửi tới stderr; cũng có thể gửi vào tệp hoặc dùng systemd để chuyển tới system journal.

Mật khẩu

  • Mật khẩu được lưu bằng bcrypt và có thể dùng subcommand genpasswd để tạo chuỗi đã mã hóa.

Đăng ký nickname và kênh

  • Thông qua tài khoản người dùng, nhiều client có thể dùng cùng một nickname và có thể đăng ký nickname với tài khoản qua NickServ.
  • Sau khi đăng ký nickname, có thể đăng ký kênh.

4 bình luận

 
xguru 2024-12-19

Tùy mục đích sử dụng, đôi khi Slack/Discord vốn cần tài khoản các kiểu có thể trở thành gánh nặng, nhưng vì nó cũng hỗ trợ web client khá tốt nên tôi muốn thử triển khai một lần.

 
ifmkl 2024-12-20

Ồ, có vẻ sẽ rất thú vị thật đấy.. Lại có thêm một kênh để lướt việc ở công ty...

 
bbulbum 2024-12-19

Ồ.. nếu có kênh IRC của GeekNews thì sẽ vui đấy

 
GN⁺ 2024-12-19
Bình luận trên Hacker News
  • Tôi đã dùng Ergo trong suốt một năm qua để chat với bạn bè và gia đình. Nó dễ host, yêu cầu tài nguyên thấp, đồng thời cung cấp một giao thức và codebase dễ hiểu, dễ debug

    • Hỗ trợ lịch sử chat v3 và khả năng đa client luôn bật mang lại trải nghiệm chat hiện đại
    • Hỗ trợ WebSocket tích hợp sẵn cho phép cung cấp web client
  • IRC thường được nhìn bằng lăng kính lãng mạn, nhưng khi làm việc với đặc tả giao thức thì định dạng thông điệp phi cấu trúc gây ra vấn đề

    • Mỗi implementation lại đưa vào những đặc tính và biến thể riêng, tạo ra vô số edge case và code parsing phức tạp
    • Tôi nghĩ cần một giao thức chat hiện đại và đơn giản
  • Thật tốt khi thấy có nhiều lựa chọn ngoài Slack và Discord

    • Tôi đã chọn Matrix cho gia đình và công ty, và trước đó không biết về tính năng "luôn bật" của IRC
  • Tôi tò mò liệu Ergo có thể kết nối với các máy chủ IRC khác hay không. Tôi muốn thử nối với ngircd hiện có

  • Đây là thời điểm phù hợp để đưa hoạt động chat về on-premise. Các lệnh và log chat rất hữu ích

  • Hy vọng nó có thể thay thế phần mềm kiểu như Slack

  • Một năm trước tôi đã dùng một máy chủ tên là Oragono cho bạn bè, và tôi khuyên dùng nó

  • Tôi muốn biết liệu có thể gửi webhook tới một kênh cụ thể hay không

  • Việc IRC thiếu lịch sử chat/backlog thường xuyên được nhắc tới, nhưng tôi cho rằng backlog là một anti-feature đối với cộng đồng

    • Nếu không có backlog phía máy chủ, cuộc trò chuyện sẽ mang tính tạm thời, và những nội dung quan trọng phải được lưu ở nơi khác để bảo tồn