Always on IRC [Updated]
After visiting 5 times earlier and thinking This place is so cool, look at all these nerds! I became a participant @revspace in The Hague last January. They have a IRC channel on Freenode #revspace and though to myself, wow… IRC, I haven’t used that since playing counter-strike 1.4 with my friends and being on Quakenet with mIRC and NoNameScript. Oh no brain, you lie, I also used it again briefly when I was following the DailyTechNewsShow podcast live with HexChat.
But after getting used to cloud based IM solutions with scrollback abilities and the always online nature of things today I just couldn’t shake the feeling I was missing out when HexChat was closed.
So I configured my VPS to run an always on IRC client and it all works beautifully.
Shout Shout let it all Lounge
I found Shout, which seemed to do everything I wanted to achieve, only to find it has been deprecated. Well shit… Thankfully, a fork exists by the name of The Lounge that seems actively maintained, so lets try that out instead.
Nodejs was already installed on my VPS because of a failed project of mine, so I wont be going over how to install node.
Installing The Lounge was a piece of cake and because I like living on the edge I want with the pre-release release by running the following command in the terminal.
npm -g install thelounge@next
NPM went ahead and downloaded all the dependencies and such and that was that. Easy…
Next step, running the thing. I typed
like the documentation told me and was greeted instantly with a command not found.
Oopsie, what did I do wrong… nothing! As it turns out it should be:
After that I was greeted with the familiar output of a nodejs program and the message a config file had been created. Excellent! On the next line it was complaining that no users existed. So i created one using:
thelounge add phiax
And restarted. After logging in successfully, I quit again and changed the config file the reflect what I needed.
Making it autostart
Create the a file /etc/systemd/system/thelounge.service and fill it:
[Unit] Description=The Lounge IRC client After=thelounge.service [Service] Type=simple ExecStart=/usr/local/bin/thelounge start User=phiax Group=phiax Restart=on-failure RestartSec=30 StartLimitInterval=60s StartLimitBurst=3 [Install] WantedBy=default.target
sudo systemctl daemon-reload sudo systemctl enable thelounge.service sudo systemctl start thelounge.service
Making the client
Normally you would use The Lounge by loading the client in the browser. I decided that I wanted more of a full application feel, cue Nativefier a piece of software that makes Electron browser packages out of websites. I’ll not go into this in great detail but it should be as easy as running these commands and you’ll end up with an executable that you can run.
npm install nativefier -g nativefier "http://yourserverurl:9000" --tray
On my android device I let chrome do the honors by sending the page to to home button and enabling push notifications.
Now I have a clients that are separate from other browser processes that I can keep running in the background. Job done!
Update March 8th
One day after writing this post The Lounge Project decided to overhaul the website, changed the URL and updated the docs to reflect the correct commands. So good job me for jumping on this train one day before a nice change 😉