====== IRC server setup ======
===== Unrealircd 6 =====
Implements most of IRCv3 while allowing servers to be linked together (which isn't the case of ErgoChat).
Every default module is enabled, plus:
* Websockets
* RPC
* third/react
* third/metadata
* third/redact
* third/relaymsg
===== Matterbridge =====
[[https://github.com/matterbridge-org/matterbridge|Latest upstream]]
On the current implementation of third/relaymsg and unlike what the [[https://github.com/ValwareIRC/valware-unrealircd-mods/blob/main/relaymsg/README.md|docs]] say, the relay needs to be oper (and not simply channel op) to use the relay feature.
You can add it to your Unreal config file as such:
oper relaybot {
class opers;
mask *@127.0.0.1;
password "password";
operclass relaybots;
swhois "is a Relay Bot";
}
operclass relaybots {
permissions { relaymsg; }
}
This will give the relay only the necessary permissions to do its job.
On the Matterbridge side:
[irc.fediirc]
Server="localhost:6697"
UseTLS=true
SkipTLSVerify=true
Nick="i"
NickServPassword="password"
UseRelayMsg=true
StripNick=false
RunCommands=["OPER relaybot password", "CAP REQ draft/relaymsg", "MODE {BOTNICK} +B"]
RemoteNickFormat="{LABEL}/{NICK}"
Label="irc"
Note the commands: it'll need to OPER up, manually issue a ''CAP REQ'' (because the Unreal module requires it and Matterbridge doesn't do it for some reason, as I write this) and for good measure mark itself as a bot. Additionally, ''RemoteNickFormat'' needs to include a ''/'' character somewhere to differentiate from real users.
===== TODO =====
* setup Let's Encrypt correctly instead of self-signed certificates
* history and bouncers