This repository has been archived by the owner. It is now read-only.
Haskell IRC daemon.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Hulk IRC Server Guide


From Hackage

$ cabal install hulk

From Github

$ git clone git://
$ cd hulk
$ cabal install


See a complete example in the example/ directory in the root of the project. You can go into that directory and run hulk -chulk.conf to have an immediate server running on localhost port 6667.


$ cp example/hulk.conf hulk.conf

You can edit the port, server name and MOTD file in here.

Detailed instructions follow.


$ mkdir auth

Put a salt for your passwords in auth/passwd. For example:

$ head -c 128 /dev/random | sha1sum > auth/passwd-key

Then generate a password for your IRC user:

$ hulk-generate-pass -u demo -c=hulk.conf >> auth/passwd

(It will wait for a single line containing a pass and output the user and sha1 sum.)

Start the server

$ hulk -chulk.conf

Logs / events will be outputted to stdout. This will be a configuration option later. (Send me a patch if you already did this!)

Clients must connect with a password and user that matches the users and passwords in your auth/passwd file.

Using with SSL

You can use it with stunnel.

Change the port setting in hulk.conf:

port = 6666

Generate an SSL certificate:

$ openssl req -new -out hulk.pem -keyout hulk.pem -nodes -x509 -days 365

Make a stunnel.conf file:

pid = /path/to/wherever/
client = no
foreground = yes
output = /dev/stdout
cert = hulk.pem
connect =
accept = 6667

Then run it:

stunnel stunnel.conf

(It may be in /usr/sbin/stunnel depending on your system.)

Then run hulk:

hulk -chulk.conf


Hulk doesn't support specific channel logging yet, but you can use a logger bot.

$ cabal install hog
$ hog -h= --port=6666 -n=hog -u=hog --pass=mypassword --channels=#dev,#x -l/directory/of/logs -d5

-d5 is the timeout before reconnect.

Using an announcer bot

If you're using a private IRC server you're probably using it at a dev company, and you probably want to make announcements about commits, tickets, etc. from a feed.

You can use rss2irc. But you need a patched version which supports sending the PASS command:

$ git clone git://
$ cd rss2irc
$ cabal install

Then run it:

$ rss2irc http://myserver/foo.atom announce@ \
  -p 6667 -i 1 -l  --pass myannouncepass