The IRC Daemon is the heart of every IRC network. It’s the server where all the clients are connecting to and is extended by services.
There are many IRC daemons out there, you can find a big list on Wikipedia – Comparison of IRC daemons. I tested different daemons and finally had 2 projects which needed a closer look. InspireIRCd and UnrealIRCd are both feature packed solutions in active development. InspireIRCd provides more features for very special needs. UnrealIRCd is a bit older but seems to be used more often. Because both projects provide what I need I decided to go with UnrealIRCd.
After downloading the latest version (3.2.10) and installing it on my Windows machine, the daemon needed to be configured. The documentation on this is very verbose and it was just a matter of time until I finished a basic config. For the first use I configured everything which was marked as Required or Recommended and threw everything else out of the example.conf.
You can find a version of my unrealircd.conf at PasteBin. I slightly modified it, removed all personal and network-specific information. You probably have to modify it yourself. I would suggest to just use it as a reference and set up your own unrealircd.conf. It’s not difficult and takes less than an hour.
After the config was created I was able to start the server. UnrealIRCd brings its own GUI, but I wasn’t very happy with it. It’s easy to control the daemon via cmd-shell, so this is what I did. After navigating to the directory where I installed the daemon I could install it via unreal.exe install and start/stop it via unreal.exe start and unreal.exe stop. Please note that you must do these steps with Administrator-rights.
If everything worked out as expected you should see the UnrealIRCd service in your Task Manager. It should be running.
I decided to switch to InspIRCd. The documentation is not as good as unreals, but there are lot more features. It also provides more advanced configurability. I’m looking forward to use the built-in LDAP support.