3
0
mirror of https://github.com/ergochat/ergo.git synced 2026-06-16 05:37:43 +02:00
Jeremy Latt 6f00f89efa relax unicode parsing rules
NFKC was previously used for all text. Now, we use NFKC for all args but
the last, which may be free text. This arg is normalized with NFC to
allow for formatting characters.
2014-02-26 13:11:29 -08:00
2014-02-26 13:11:29 -08:00
2014-02-09 21:07:58 -08:00
2014-02-25 15:57:35 -08:00
2014-02-25 09:54:14 -08:00
2014-02-25 16:48:12 -08:00

# 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](http://tools.ietf.org/html/rfc1459)
- [RFC 2811: IRC Channel Management](http://tools.ietf.org/html/rfc2811)
- [RFC 2812: IRC Client Protocol](http://tools.ietf.org/html/rfc2812)
- [RFC 2813: IRC Server Protocol](http://tools.ietf.org/html/rfc2813)
- [IRC/2 Numeric List](https://www.alien.net.au/irc/irc2numerics.html)

## 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

```sh
go get
go install
ergonomadic -conf '/path/to/config.json' -initdb
ergonomadic -conf '/path/to/config.json'
```
Languages
Go 97.1%
Python 2.4%
Shell 0.3%
Makefile 0.1%
Dockerfile 0.1%