- 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 ความคิดเห็น
ขึ้นอยู่กับการใช้งาน บางครั้ง Slack/Discord ที่ต้องมีบัญชีก็อาจรู้สึกเป็นภาระ แต่เพราะรองรับเว็บไคลเอนต์ได้ดีด้วยเลยอยากลองนำมาใช้งานดูครับ
โอ้ น่าสนุกจริงๆ ครับ.. ที่บริษัทคงมีช่องให้แอบอู้เพิ่มมาอีกช่องแล้ว...
โอ้.. ถ้ามีช่อง IRC ของ GeekNews ก็คงสนุกดีนะ
ความคิดเห็นจาก Hacker News
ใช้ Ergo มาตลอดปีที่ผ่านมาเพื่อแชตกับเพื่อนและครอบครัว โฮสต์ง่าย ใช้ทรัพยากรต่ำ และมีโปรโตคอลกับโค้ดเบสที่เข้าใจและดีบักได้ง่าย
IRC มักถูกมองอย่างโรแมนติก แต่เมื่อต้องจัดการกับสเปกของโปรโตคอล รูปแบบข้อความที่ไม่มีโครงสร้างก็ก่อปัญหา
ดีที่ได้เห็นว่ายังมีตัวเลือกอีกมากนอกเหนือจาก Slack และ Discord
สงสัยว่า Ergo สามารถเชื่อมต่อกับ IRC server อื่นได้หรือไม่ อยากลองเชื่อมกับ ngircd ที่มีอยู่
ตอนนี้เป็นช่วงเวลาที่เหมาะสมที่จะย้ายการดำเนินงานแชตกลับมาไว้แบบ on-premises คำสั่งและบันทึกแชตมีประโยชน์มาก
หวังว่าจะมาแทนซอฟต์แวร์อย่าง Slack ได้
เมื่อปีที่แล้วใช้เซิร์ฟเวอร์ชื่อ Oragono สำหรับเพื่อน ๆ และขอแนะนำ
สงสัยว่าสามารถส่ง webhook ไปยังช่องทางเฉพาะได้หรือไม่
มักมีการพูดถึงการขาดประวัติแชต/แบ็กล็อกของ IRC อยู่บ่อย ๆ แต่คิดว่าสำหรับชุมชนแล้วแบ็กล็อกเป็นฟีเจอร์ที่สวนทางกับธรรมชาติของมัน