Module manager

UnrealIRCd 5 has a module manager which allows you to install, update and uninstall 3rd party modules easily on *NIX (not on Windows).

Third party modules are a great way to extend the functionality of UnrealIRCd. They allow anyone with sufficient coding experience to create and publish UnrealIRCd modules that have functionality not present in the UnrealIRCd product itself.

= Using the module manager =

A word of caution
Third party modules are not written by the UnrealIRCd team (although some team members may publish them on a personal title). This means the UnrealIRCd team is NOT responsible for any problems caused by 3rd party modules. Modules can do almost anything with the IRCd, including freezing or crashing the server or doing malicious things.

If there's a bug in a 3rd party module then you must contact the author of the module directly, and not the UnrealIRCd team.

How to list available modules
In the UnrealIRCd directory, run ./unrealircd module list

NOTE: If the module you are looking for is not listed, then maybe you need to add another module repository.

How to install a module
In the UnrealIRCd directory, run ./unrealircd module install third/name-of-module

This will download and compile the requested module and print some documentation/instructions. It will NOT add the loadmodule line to your configuration file automatically. That's the only thing you need to do, and REHASH.

NOTE: If the module you are looking for is not listed, then maybe you need to add another module repository.

How to uninstall a module
In the UnrealIRCd directory, run ./unrealircd module uninstall third/name-of-module

How to upgrade modules
You can check for updates (and install them) for all modules by running ./unrealircd module upgrade. Or, to only do this for a specific module: ./unrealircd module upgrade third/name-of-module

This will check if the module(s) you are using is the same as the latest version available online. If not, the latest version is downloaded, compiled and installed.

Remember, that after an upgrade you will have to REHASH if you want to load the new module(s).

Module upgrades when upgrading UnrealIRCd
When upgrading UnrealIRCd 5 to a newer version, the ./unrealircd module upgrade command is also executed by the compile and installation process. This is to make sure your modules are compatible with the latest UnrealIRCd version.

How to add a repository
By default, UnrealIRCd 5 ships with the unrealircd-contrib module repository. Module authors can submit their modules there (see here).

If you still need to add another repository then you have to edit the conf/modules.sources.list file. Simply add the URL of the repository in that file. Your module author should have provided instructions for this.

= Solving problems =

Problems with modules
If a module fails to compile or has any other problem then contact the module author. You can view the module author and contact information by running ./unrealircd module info third/name-of-module

Do not contact the UnrealIRCd team when you are having problems compiling 3rd party modules, as the modules are not written by them.

The 'module' command does not exist
The ./unrealircd module command only exists in UnrealIRCd 5 in versions later than 5.0.0-alpha4.

= For 3rd party module authors = Third party module authors can submit their module for inclusion in the default unrealircd-contrib repository. This makes it very easy for users to install your module, since all they need to run is ./unrealircd module install third/nameofyourmodule.

If you want to see your module included then read Rules for 3rd party modules in unrealircd-contrib which explains the rules and procedure.