mirror of
https://github.com/jeremyd/ergo.git
synced 2026-04-28 16:40:00 -07:00
71f6562eccbf8a0876094534cc6a19085b72a464
Ergonomadic
Ergonomadic is an IRC daemon written from scratch in Go. Pull requests and issues are welcome.
Some Features
- follows the RFC where possible
- gcfg gitconfig-style configuration
- server password (PASS command)
- channels with most standard modes
- IRC operators (OPER command)
- 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".
What about SSL/TLS support?
Go has a not-yet-verified-as-safe TLS 1.2 implementation. Sadly, many popular IRC clients will negotiate nothing newer than SSLv2. If you want to use SSL to protect traffic, I recommend using stunnel version 4.56 with haproxy's PROXY protocol. This will allow the server to get the client's original addresses for hostname lookups.
Installation
go get
go install
ergonomadic initdb -conf ergonomadic.conf
Configuration
See the example ergonomadic.conf. Passwords are base64-encoded
bcrypted byte strings. You can generate them with the genpasswd
subcommand.
ergonomadic genpasswd 'hunter2!'
Running the Server
ergonomadic run -conf ergonomadic.conf
IRC Documentation
Languages
Go
97%
Python
2.5%
Shell
0.3%
Dockerfile
0.1%