mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-25 21:39:25 +01:00
6f00f89efa
NFKC was previously used for all text. Now, we use NFKC for all args but the last, which may be free text. This arg is normalized with NFC to allow for formatting characters. |
||
---|---|---|
irc | ||
.gitignore | ||
config.json | ||
ergonomadic.go | ||
LICENSE | ||
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
- channels that persist between restarts (+P)
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/config.json' -initdb
ergonomadic -conf '/path/to/config.json'