forked from External/ergo
A modern IRC server (daemon/ircd) written in Go. (CEF)
|
|
||
|---|---|---|
| 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
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'