IRC Setup: WeeChat and Glowing Bear

I’ve been using IRC for almost 30 years now. It’s an easy way to connect socially with like-minded people from all over the world. It’s an old protocol with most clients just as old. As my needs have changed over the years I’ve struggled to find a setup that I’m truly comfortable with.

But now, I’ve got a setup that I’m really happy with. And it’s pretty straightforward:

  • WeeChat running on linux
  • Glowing Bear on my laptop and my phone connected to WeeChat
  • WeeChat Relay opened securely to the internet via Caddy
  • A script that auto-disconnects me from servers when I’ve been idle for more than an hour

WeeChat

WeeChat is a very powerful IRC client. And unlike a lot of the other IRC clients, it still has active development and maintenance from its community.

Using WeeChat on its own is quite possible. For a while, I was even running it on Windows. The biggest drawback for me is that the user interface is all terminal based. I can handle the manual commands and the key combinations, but it feels hard to use. I don’t like looking up keyboard commands when I’m enjoying my lazy time.

Glowing Bear

Glowing Bear is a web-based front-end for WeeChat, connecting via the WeeChat relay protocol. It has the same layout as WeeChat, but it’s all rendered in HTML. It has scrollbars. You can use the mouse to change conversations. It works on a phone, and with touch gestures too.

It’s the user interface I always wished WeeChat had been made with. And the best part is that you don’t even have to install it. It runs entirely in your browser. It’s hosted on the Glowing Bear Website, so you don’t even have to do that.

Exposing WeeChat Relay to The Internet with Caddy

If you’re running WeeChat on localhost, you can easily connect Glowing Bear to it without any fussing around. But if you want to respond to messages while out of the house, you’ll need something more complicated.

Caddy is a fantastic web proxy that can be easily set up to provide a TLS front for WeeChat. WeeChat also supports self-signed certificates, so it isn’t strictly necessary to use Caddy, but I have it running already for other services in my home network, so it was easy to toss it in.

The Caddy configuration is pretty simple:

host.name.redacted:443 {
      handle /weechat* {
              reverse_proxy localhost:9000 {
                      header_up Host {host}
              }
      }
}

I’ve excluded the bit that adds Crowdsec. I’m also not showing how I serve the Glowing Bear html from the same host (because I made a couple of minor modifications to suit my needs).

One of the neat bits about Caddy is that it can manage the ACME handshake itself. I put a bit of configuration for my DNS provider at the top of the Caddyfile, and it takes care of everything else.

Why I Like this Setup

The biggest advantage of this setup for me is the ability to connect from a laptop with spotty wifi without constantly disconnecting and reconnecting. I can close the lid, walk to another room, and open it up again without everything reconnecting. Being able to check for messages from my phone if I go for a brief walk is also very convenient.

The second most powerful feature is the notify list. It’s really helpful to see when certain people are online or not, and for some reason, many of the other cloud-based options don’t seem to support this.

After that, the sheer power of WeeChat is impressive. It has a ton of built-in functionality, and anything it doesn’t do can be easily added with plugins.

Other Things I’ve Tried and Why I Don’t Use Them

IRCCloud

IRCCloud is probably the strongest competitor for easily switching between a desktop and a phone and dealing with unreliable internet. But IRCCloud has a few serious limitations.

The lack of a notify list is the biggest issue for me, but if that isn’t something you care about, this is a great option. There also isn’t any concept of scripting to allow for such a thing to be added.

The fact that there is a monthly fee for more than two connections bothers me, especially considering how bare and simple the client is. Keeping your logs in their cloud server is convenient, but it is also a bit of a security concern for me. I acknowledge that IRC isn’t a secure protocol to begin with, but that doesn’t mean I want yet another company to have all my chat history.

IRC Bouncers (ZNC, Soju)

ZNC and Soju give you the freedom to come and go, and let you use any IRC client that you like. The problem I had with them is that they never worked very well.

Soju with Halloy and Goguma was by far the nicest, but the whole setup was pretty limited in terms of its features.

ZNC with other clients was considerably worse. It would work fine if I only ever used one IRC client, but as soon as I opened a second, it was anyone’s guess where a message would go. I would regularly lose messages (they would go to my desktop even when I wanted to read them on my phone, or vice versa), which sort of ruins the whole experience.

There are plugins and ways to adjust all this. I tried a few times, and eventually just gave up.

The other thing I don’t like about bouncers is their desire to stay connected 24/7. For the most part, I want to disconnect from a server if I’m not active. Excessive idling is seen as rude in some places that I like to visit, and getting a setup that could automatically log itself out seemed impossible.

mIRC

mIRC gets some flack in some circles, but it’s been around forever, and works pretty well. It shows its age compared to modern Windows applications, but a lot of people still use it. The fact that it’s still maintained is another big bonus.

The drawbacks are that it only runs on Windows. The user interface, though perfectly functional, is a bit clunky and very old looking. But the biggest drawback for me is that there is no remote-from-phone mechanism for it. And it will disconnect if you close the lid of your laptop, even for a second.

Other IRC Clients

I did look around for other IRC clients. They all either look horrible, are terminal based, have few features, or have no active maintainers.

I also considered having my friend Claude whip one up for me… but I like this setup that I have now much better.

Tags: howto linux reviews 

See also