3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-29 07:29:31 +01:00

cleanup README.md

This commit is contained in:
Edmund Huber 2015-06-23 21:35:14 -07:00
parent 67a6247377
commit 952a62aa39

View File

@ -1,49 +1,40 @@
# Ergonomadic Ergonomadic (anagram of "go IRC daemon") is an IRC daemon written from scratch
in Go. Pull requests and issues are welcome.
Ergonomadic is an IRC daemon written from scratch in Go. Pull requests and Discussion at:
issues are welcome. Discuss it here or on Freenode in [#ergonomadic][irc]. * host/port: irc.skub.club:6697, use SSL
* password: smellyoulater
* #darwin
## Some Features # Features
- follows the RFCs where possible * follows the RFCs where possible
- UTF-8 nick and channel names * UTF-8 nick and channel names
- [gcfg][gcfg] gitconfig-style configuration * [gcfg](https://code.google.com/p/gcfg/) gitconfig-style configuration
- server password (PASS command) * server password (PASS command)
- channels with most standard modes * channels with most standard modes
- IRC operators (OPER command) * IRC operators (OPER command)
- haproxy [PROXY protocol][proxy-proto] header for hostname setting * haproxy [PROXY protocol][proxy-proto] header for hostname setting
- passwords stored in [bcrypt][go-crypto] format * passwords stored in [bcrypt][go-crypto] format
- channels that [persist][go-sqlite] between restarts (+P) * channels that [persist][go-sqlite] between restarts (+P)
- messages are queued in the same order to all connected clients * messages are queued in the same order to all connected clients
## Users # What about SSL/TLS support?
If anyone is running and using this software, I'd love to link to you here with
any details you deem appropriate.
## 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 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 IRC clients will negotiate nothing newer than SSLv2. If you want to use SSL to
protect traffic, I recommend using [stunnel][stunnel] version 4.56 with protect traffic, I recommend using
haproxy's [PROXY protocol][proxy-proto]. This will allow the server to get the [stunnel](https://www.stunnel.org/index.html) version 4.56 with haproxy's
client's original addresses for hostname lookups. [PROXY protocol][proxy-proto]. This will allow the server to get the client's
original addresses for hostname lookups.
## What about federation? # What about federation?
IRC federation solves a problem that was more likely to occur on the internet of IRC federation solves a problem that was more likely to occur on the internet of
1991 than today. We are exploring alternatives to federation that avoid nickname 1991 than today. We are exploring alternatives to federation that avoid nickname
and channel sync issues created during netsplits. and channel sync issues created during netsplits.
## Installation # Installation
```sh ```sh
go get go get
@ -51,7 +42,7 @@ go install
ergonomadic initdb -conf ergonomadic.conf ergonomadic initdb -conf ergonomadic.conf
``` ```
## Configuration # Configuration
See the example [`ergonomadic.conf`](ergonomadic.conf). Passwords are base64-encoded bcrypted byte See the example [`ergonomadic.conf`](ergonomadic.conf). Passwords are base64-encoded bcrypted byte
strings. You can generate them with the `genpasswd` subcommand. strings. You can generate them with the `genpasswd` subcommand.
@ -60,25 +51,19 @@ strings. You can generate them with the `genpasswd` subcommand.
ergonomadic genpasswd 'hunter2!' ergonomadic genpasswd 'hunter2!'
``` ```
## Running the Server # Running the server
```sh ```sh
ergonomadic run -conf ergonomadic.conf ergonomadic run -conf ergonomadic.conf
``` ```
## IRC Documentation # Credits
- [RFC 1459: Internet Relay Chat Protocol](http://tools.ietf.org/html/rfc1459) * Jeremy Latt, creator, <https://github.com/jlatt>
- [RFC 2811: IRC Channel Management](http://tools.ietf.org/html/rfc2811) * Edmund Huber, maintainer, <https://github.com/edmund-huber>
- [RFC 2812: IRC Client Protocol](http://tools.ietf.org/html/rfc2812) * Niels Freier, added WebSocket support, <https://github.com/stumpyfr>
- [RFC 2813: IRC Server Protocol](http://tools.ietf.org/html/rfc2813) * apologies to anyone I forgot.
- [IRC/2 Numeric List](https://www.alien.net.au/irc/irc2numerics.html)
[conf]: blob/master/ergonomadic.conf
[gcfg]: https://code.google.com/p/gcfg/
[go-crypto]: http://godoc.org/code.google.com/p/go.crypto [go-crypto]: http://godoc.org/code.google.com/p/go.crypto
[go-sqlite]: https://github.com/mattn/go-sqlite3 [go-sqlite]: https://github.com/mattn/go-sqlite3
[irc]: irc://chat.freenode.net/#ergonomadic
[proxy-proto]: http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt [proxy-proto]: http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt
[stunnel]: https://www.stunnel.org/index.html