3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-13 07:29:30 +01:00
Go to file
2014-03-18 15:20:10 -07:00
irc ONICK command to allow operators to change users' nicks 2014-03-17 12:56:35 -07:00
.gitignore remove unnecessary ignores 2014-02-09 21:07:58 -08:00
ergonomadic.conf remove extraneous conf entry 2014-03-13 13:44:34 -07:00
ergonomadic.go fix mandatory argument handling 2014-03-15 20:47:05 +01:00
LICENSE MIT license 2014-02-25 09:54:14 -08:00
README.md add link to IRC channel 2014-03-18 15:20:10 -07:00

Ergonomadic

Ergonomadic is an IRC daemon written from scratch in Go. Pull requests and issues are welcome. Discuss it here or on Freenode in #ergonomadic.

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.

Whats 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 haproxys PROXY protocol. This will allow the server to get the clients 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