You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 1.9KB

Oragono is a very early, extremely experimental fork of the Ergonomadic IRC daemon. Ergonomadic looks cool, and this is something I can experiment on. Hopefully most of the stuff I do in this can be merged back into Ergonomadic! Also see the mammon IRC daemon for something similar written in Python.

Features

  • UTF-8 nick and channel names
  • yaml configuration
  • server password (PASS command)
  • channels with most standard modes
  • IRC operators (OPER command)
  • passwords stored in bcrypt format
  • channels that persist between restarts (+P)
  • messages are queued in the same order to all connected clients

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][proxy-proto]. This will allow the server to get the client’s original addresses for hostname lookups.

Installation

go get
go install
cp oragono.yaml ircd.yaml
vim ircd.yaml  # modify the config file to your liking
oragono initdb

Configuration

See the example oragono.yaml. Passwords are base64-encoded bcrypted byte strings. You can generate them with the genpasswd subcommand.

oragono genpasswd

Running the server

oragono run

Credits