Page 1 of 1

Enabling IRC Websockets

Posted: Mon Jun 22, 2026 10:31 pm
by TMP
I just installed a fresh copy of UnrealIRC. It is currently running on my machine with no errors. However, I have not installed an SSL certificate yet because I would like to test the IRC server live before hardening the security and applying an SSL certificate.

The websocket modules seem to be interesting as they are less resource intensive and have their own dedicated protocol that can be used with IRC ports. Specifically, I am looking at this example: https://www.unrealircd.org/files/dev/ws ... lircd.html

I bascially just want to get my IRC webserver up and running right now so that people can access it through my www domain name. I have a static IP address and have pointed the domain name to my machine. It is currently running Apache2 webserver, but I want to make this domain specifically IRC.

I have opened port 6667 and 6697 on my network. But I am now at a loss how to use websockets to access the IRC channel through a web client.

Once again, I want a live IRC channel which is public through a domain name. How do I go about this?

Re: Enabling IRC Websockets

Posted: Tue Jun 23, 2026 7:04 am
by TMP
Basically, I am trying to use websockets with KiwiIRC on my install of UnrealIRC. However, I am now getting this error message:

2026/06/23 01:02:16.194998 L_WARN listen tcp [IP ADDRESS]:443: bind: cannot assign requested address

Re: Enabling IRC Websockets

Posted: Tue Jun 23, 2026 8:03 am
by PeGaSuS
Hi.

First of all, a regular user can't bind to port 443 without the CAP_NET_BIND_SERVICE capability.

So, in order to use websockets you should have the following in your unrealircd.conf:

Code: Select all

loadmodule "websocket";
loadmodule "webserver";

listen {
	ip *;
	port 8000;
	options {
		websocket {
			type text;
		}
	}
}
Then, assuming you're self-hosting KiwiIRC, you need to configure it kind of like this:

Code: Select all

{
    "windowTitle": "Kiwi IRC - The web IRC client",
    "startupScreen": "welcome",
    "restricted": true,
    "theme": "Default",
    "themes": [
        { "name": "Default", "url": "static/themes/default" },
        { "name": "Dark", "url": "static/themes/dark" },
        { "name": "Coffee", "url": "static/themes/coffee" },
        { "name": "GrayFox", "url": "static/themes/grayfox" },
        { "name": "Nightswatch", "url": "static/themes/nightswatch" },
        { "name": "Osprey", "url": "static/themes/osprey" },
        { "name": "Radioactive", "url": "static/themes/radioactive" },
        { "name": "Sky", "url": "static/themes/sky" },
        { "name": "Elite", "url": "static/themes/elite" }
    ],
    "startupOptions" : {
        "server": "irc.domain.tld",
        "port": 8000,
        "direct"; true,
        "channel": "#kiwiirc-default",
        "nick": "kiwi-n?"
    },
    "embedly": {
        "key": ""
    },
    "plugins": [
        { "name": "customise", "url": "static/plugins/customise.html" }
    ]
}
All of this is for non-TLS connections. If you want to use TLS (which you should definitely do), you should read: and then point KiwiIRC to the TLS port.

NOTE: you can't use port 6667/6697 for websockets (browsers block connections to such ports), and while you can connect from HTTP to WSS, you can't connect from HTTPS to WS.

Feel free to stop by at #unreal-support @ irc.unrealircd.org.