16 คะแนน โดย GN⁺ 2024-12-19 | 4 ความคิดเห็น | แชร์ทาง WhatsApp
  • Ergo คือเซิร์ฟเวอร์ IRC สมัยใหม่ที่เขียนด้วยภาษา Go เดิมมีชื่อว่า Oragono
  • หลักการออกแบบสำคัญ: ตั้งค่าและใช้งานได้ง่าย, การรวม ircd และเฟรมเวิร์กบริการ, การรวมความสามารถแบบ bouncer, การรองรับ IRCv3, และการปรับแต่งได้สูงผ่านไฟล์ตั้งค่า YAML
  • Ergo เป็นฟอร์กของ Ergonomadic IRC daemon

ความสามารถ

  • บริการแบบรวม: มี NickServ สำหรับบัญชีผู้ใช้, ChanServ สำหรับการลงทะเบียนช่อง, และ HostServ สำหรับ vanity host
  • ความสามารถแบบ bouncer: จัดเก็บและเล่นซ้ำประวัติ, รองรับไคลเอนต์หลายตัวที่ใช้ชื่อเล่นเดียวกันได้
  • รองรับ TLS/SSL รวมถึงรองรับใบรับรองไคลเอนต์
  • รองรับ IRCv3
  • ใช้ไฟล์ตั้งค่า YAML
  • อัปเดตการตั้งค่าเซิร์ฟเวอร์และใบรับรอง TLS แบบเรียลไทม์ได้
  • รองรับการยืนยันตัวตนแบบ SASL และ LDAP
  • รองรับหลายภาษา และสามารถตั้งค่าภาษาหลักของเครือข่ายได้
  • มีตัวเลือกสำหรับรองรับชื่อเล่นและชื่อช่องแบบ UTF-8
  • มีความสามารถด้านความปลอดภัยและความเป็นส่วนตัวขั้นสูง
  • ระบบสิทธิ์ที่ขยายได้สำหรับผู้ดูแล IRC
  • ทำ ident lookup สำหรับชื่อผู้ใช้
  • จำกัดการเชื่อมต่อของไคลเอนต์อัตโนมัติ
  • รหัสผ่านจัดเก็บด้วย bcrypt
  • ความสามารถในการแบนแบบรวมผ่านระบบ UBAN
  • มุ่งเน้นการพัฒนาให้เป็นไปตามสเปก

คู่มือเริ่มต้นอย่างรวดเร็ว

  • ดาวน์โหลดรีลีสล่าสุดและแตกไฟล์ จากนั้นแก้ไขไฟล์ตั้งค่าเพื่อรันเซิร์ฟเวอร์ได้
  • มีการดูแลแพ็กเกจ Ergo สำหรับ Arch Linux AUR และ Gentoo Linux
  • มี Dockerfile และตัวอย่างสูตร docker-compose ให้
  • การบิลด์จากซอร์ส
    • ต้องใช้ Go รุ่นแจกจ่ายล่าสุด จากนั้น checkout branch หรือ tag ที่ต้องการ และบิลด์ได้ด้วยคำสั่ง make

การตั้งค่า

  • ไฟล์ตั้งค่าเริ่มต้น default.yaml อธิบายความหมายของแต่ละตัวเลือกและสิ่งที่มีการเปลี่ยนแปลง
  • โดยปกติ log จะถูกส่งไปที่ stderr เท่านั้น แต่สามารถส่งไปยังไฟล์ หรือใช้ systemd เพื่อส่งไปยัง system journal ได้

รหัสผ่าน

  • รหัสผ่านถูกจัดเก็บด้วย bcrypt และสามารถใช้ subcommand genpasswd เพื่อสร้างสตริงที่เข้ารหัสแล้วได้

ชื่อเล่นและการลงทะเบียนช่อง

  • ผ่านบัญชีผู้ใช้ ไคลเอนต์หลายตัวสามารถใช้ชื่อเล่นเดียวกันได้ และสามารถลงทะเบียนชื่อเล่นเข้ากับบัญชีผ่าน NickServ ได้
  • หลังจากลงทะเบียนชื่อเล่นแล้ว สามารถลงทะเบียนช่องได้

4 ความคิดเห็น

 
xguru 2024-12-19

ขึ้นอยู่กับการใช้งาน บางครั้ง Slack/Discord ที่ต้องมีบัญชีก็อาจรู้สึกเป็นภาระ แต่เพราะรองรับเว็บไคลเอนต์ได้ดีด้วยเลยอยากลองนำมาใช้งานดูครับ

 
ifmkl 2024-12-20

โอ้ น่าสนุกจริงๆ ครับ.. ที่บริษัทคงมีช่องให้แอบอู้เพิ่มมาอีกช่องแล้ว...

 
bbulbum 2024-12-19

โอ้.. ถ้ามีช่อง IRC ของ GeekNews ก็คงสนุกดีนะ

 
GN⁺ 2024-12-19
ความคิดเห็นจาก Hacker News
  • ใช้ Ergo มาตลอดปีที่ผ่านมาเพื่อแชตกับเพื่อนและครอบครัว โฮสต์ง่าย ใช้ทรัพยากรต่ำ และมีโปรโตคอลกับโค้ดเบสที่เข้าใจและดีบักได้ง่าย

    • การรองรับประวัติแชต v3 และความสามารถแบบหลายไคลเอนต์ที่ออนไลน์ตลอดเวลามอบประสบการณ์แชตที่ทันสมัย
    • มีการรองรับ WebSocket ในตัว จึงสามารถให้บริการเว็บไคลเอนต์ได้
  • IRC มักถูกมองอย่างโรแมนติก แต่เมื่อต้องจัดการกับสเปกของโปรโตคอล รูปแบบข้อความที่ไม่มีโครงสร้างก็ก่อปัญหา

    • แต่ละ implementation เพิ่มลักษณะเฉพาะและรูปแบบดัดแปลงของตัวเอง ทำให้เกิด edge case จำนวนมากและโค้ด parsing ที่ซับซ้อน
    • คิดว่าจำเป็นต้องมีโปรโตคอลแชตสมัยใหม่ที่เรียบง่าย
  • ดีที่ได้เห็นว่ายังมีตัวเลือกอีกมากนอกเหนือจาก Slack และ Discord

    • เลือก Matrix สำหรับครอบครัวและบริษัท และไม่เคยรู้มาก่อนเกี่ยวกับความสามารถ "ออนไลน์ตลอดเวลา" ของ IRC
  • สงสัยว่า Ergo สามารถเชื่อมต่อกับ IRC server อื่นได้หรือไม่ อยากลองเชื่อมกับ ngircd ที่มีอยู่

  • ตอนนี้เป็นช่วงเวลาที่เหมาะสมที่จะย้ายการดำเนินงานแชตกลับมาไว้แบบ on-premises คำสั่งและบันทึกแชตมีประโยชน์มาก

  • หวังว่าจะมาแทนซอฟต์แวร์อย่าง Slack ได้

  • เมื่อปีที่แล้วใช้เซิร์ฟเวอร์ชื่อ Oragono สำหรับเพื่อน ๆ และขอแนะนำ

  • สงสัยว่าสามารถส่ง webhook ไปยังช่องทางเฉพาะได้หรือไม่

  • มักมีการพูดถึงการขาดประวัติแชต/แบ็กล็อกของ IRC อยู่บ่อย ๆ แต่คิดว่าสำหรับชุมชนแล้วแบ็กล็อกเป็นฟีเจอร์ที่สวนทางกับธรรมชาติของมัน

    • หากไม่มีแบ็กล็อกฝั่งเซิร์ฟเวอร์ แชตก็จะเป็นสิ่งชั่วคราว และต้องเก็บไว้ที่อื่นหากต้องการรักษาเนื้อหาสำคัญ