---
title: "Always on IRC [Updated]"
slug: always-on-irc
date: 2018-03-07T21:00:14
categories: ["All", "Software Guides"]
tags: ["Cloud", "IRC", "Shout", "The Lounge", "VPS"]
draft: false
---
After visiting 5 times earlier and thinking _This place is so cool, look at all these nerds!_ I became a participant [@revspace](https://www.revspace.nl) in The Hague last January. They have a IRC channel on [Freenode #revspace](https://webchat.freenode.net/?channels=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](http://shout-irc.com/), 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](https://thelounge.chat/) 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  

lounge start

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:  

thelounge start

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:
```shell
\[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
```
Then:
```shell
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](https://github.com/jiahaog/Nativefier) a piece of software that makes [Electron](https://electronjs.org/) 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 ;-)
