mirror of
https://github.com/ergochat/ergo.git
synced 2025-02-22 00:20:40 +01:00

- load config sub files relative to config file dir - load config file by name - expect bcrypt for passwords - -genpasswd for generating config-file-safe passwords - block client thread while checking passwords (PASS and OPER)
Ergonomadic
Ergonomadic is an IRC daemon written from scratch in Go.
Some Features
- follows the RFC where possible
- JSON-based configuration
- server password
- channels with many standard modes
- IRC operators
- TLS support (but better to use stunnel with proxy protocol)
- haproxy PROXY protocol header for hostname setting
- passwords stored in bcrypt format
Why?
I wanted to learn Go.
What’s with the name?
“Ergonomadic” is an anagram of “Go IRC Daemon”.
Helpful Documentation
- RFC 1459: Internet Relay Chat Protocol
- RFC 2811: IRC Channel Management
- RFC 2812: IRC Client Protocol
- RFC 2813: IRC Server Protocol
- IRC/2 Numeric List
Running the Server
See the example config.json
. Passwords are
base64-encoded bcrypted byte strings. You can generate them with
e.g. ergonomadic -genpasswd 'hunter21!'
.
from your GOPATH
Languages
Go
96.8%
Python
2.6%
Shell
0.4%
Dockerfile
0.1%