IRC Server - nodemailer/wildduck GitHub Wiki

NB! This does not work. IRC code was removed from WildDuck

Component status: EXPERIMENTAL. Do not use

WildDuck has an IRC server component built in that allows for the server users to connect using IRC. Unauthenticated access is not allowed, all users need to authenticate with their account or application-specific password.

Wild Duck IRC is not a typical IRC server. It does not connect to the IRC network and only allows team access making it mostly useful as an internal group chat server.

Features

The following features are already implemented

  1. Multi access – users can log in using the same account from different devices. Other users would only see a single instance of that user. All instances of the same user share the same nick and are joined to the same channels.
  2. Persistent channels – user remains as a channel member until PART is called. If an user QUITs and then reconnects the user is automatically re-joined to old channels as if the user never left
  3. History – after logged in, all unseen messages are sent to the user (this does not include messages already seen by the same user in other devices). If the client supports server-time extension, then messages are tagged with actual timestamps.
  4. Namespaces – users can only access channels and other users in their specific namespace

Notes

  1. No ops, all users are equal, they can create and join any channel in their namespace
  2. No kicking or moderation. Wild Duck IRC server assumes that if an user has already access to a specific namespace then they are privileged enough not to be moderated. There is no anonymous access.
  3. A lot of commands do not work yet

Usage

  1. Enable the server in the IRC config
  2. Connect to the server with your favorite IRC client
  3. Authenticate using your account password

You are probably going to see some warnings about missing commands etc. but in general it should be usable.

Note about usernames

When logging in with an email address as username you can replace the @ symbol in the address with + symbol ([email protected] can also identify as username+example.com)

Note about passwords

Just as with all other Wild Duck services you can either use your account master password to authenticate (if 2FA is not enabled) or an application specific password. All authentication attempts are logged to the central account auth log. Application specific passwords can also be assigned for 'irc' only so these would not be usable to access other protocols.

Supported authentication schemes

All authentication schemes use USER value as the username. NICK is not used for authentication.

1. PASS + USER

If the client issues PASS command then authentication is attempted after USER command

2. SASL PLAIN

If the client supports CAP then it can use AUTHENTICATE PLAIN for logging in

3. NickServ

After issuing NICK and USER commands the client can also identify itself with the NickServ IDENTIFY command