mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-10 22:19:31 +01:00
72726a39b8
- 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) |
||
---|---|---|
irc | ||
sql | ||
.gitignore | ||
config.json | ||
ergonomadic.go | ||
README.md |
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
go get
go install
ergonomadic -conf '/path/to/ergonomadic.json'