mirror of
https://github.com/ergochat/ergo.git
synced 2024-12-22 18:52:41 +01:00
bf5175f5e8
normalize all unicode input from the client |
||
---|---|---|
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'