mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-10 22:19:31 +01:00
39b7c2a915
Conflicts: irc/client.go irc/commands.go irc/constants.go irc/reply.go irc/server.go irc/types.go |
||
---|---|---|
irc | ||
.gitignore | ||
ergonomadic.conf | ||
ergonomadic.go | ||
LICENSE | ||
README.md |
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 -conf ergonomadic.conf -initdb
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 -conf ergonomadic.conf