The Lounge

The Lounge is an open source IRC web client written in JavaScript and distributed under the MIT License. This self hosted client stays always connected so you never miss out on the most important chats. Another goal of The Lounge is to bring modern chat features such as push notifications, link previews and many more to your IRC chats.

The Lounge is based on the project Shout from which it is a community driven fork.


Note

For this guide you should be familiar with the basic concepts of

Prerequisites

We’re using Node.js in version 16:

[isabell@stardusts ~]$ uberspace tools version use node 16
Selected Node.js version 16
[isabell@stardusts ~]$

Your The Lounge URL needs to be setup:

[isabell@stardust ~]$ uberspace web domain list
isabell.uber.space
[isabell@stardust ~]$

Installation

Install thelounge

Use npm to install thelounge globally:

[isabell@stardusts ~]$ npm install --global thelounge
[...]
+ thelounge@4.2.0
added 242 packages in 31.627s
[isabell@stardusts ~]$

Verify installation

[isabell@stardusts ~]$ thelounge --version
v4.2.0

Configuration

Configure web server

Note

The Lounge is running on port 9000.

To make the application accessible from the outside, configure a web backend:

[isabell@stardust ~]$ uberspace web backend set / --http --port <port>
Set backend for / to port <port>; please make sure something is listening!
You can always check the status of your backend using "uberspace web backend list".
[isabell@stardust ~]$

Create configuration file

Create the configuration directory:

[isabell@stardusts ~]$ mkdir ~/.lounge
[isabell@stardusts ~]$

To configure The Lounge you need to create the ~/.lounge/config.js file with the following content:

"use strict"

module.exports = {
  public: false,
  reverseproxy: true
};

Alternatively you can download the full default configuration from the project repository:

Warning

If you choose this option change the values according to the config provided above.

[isabell@stardusts ~]$ wget https://raw.githubusercontent.com/thelounge/thelounge/master/defaults/config.js > ~/.lounge/config.js
[isabell@stardusts ~]$

From now on you can modify with the thelounge config command.

For a full list of all configuration options see the official documentation.

Setup daemon

Create ~/etc/services.d/thelounge.ini with the following content:

[program:thelounge]
command=thelounge start
startsecs=60
autostart=yes
autorestart=yes

After creating the configuration, tell supervisord to refresh its configuration and start the service:

[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE                            RUNNING   pid 26020, uptime 0:03:14
[isabell@stardust ~]$

If it’s not in state RUNNING, check your configuration.

Finishing installation

Creating users

Since we do not run a public server we have to add users before we can use The Lounge:

[isabell@stardust ~]$ thelounge add isabell
2021-10-21 11:46:33 [PROMPT] Enter password:
2021-10-21 11:46:39 [PROMPT] Save logs to disk? (yes)
2021-10-21 11:46:41 [INFO] User isabell created.
2021-10-21 11:46:41 [INFO] User file located at  /home/isabell/.lounge/users/isabel.json.
[isabell@stardust ~]$

If you need to change the password for a user this can be done with:

[isabell@stardust ~]$ thelounge reset isabell
2021-10-21 11:47:02 [PROMPT] Enter new password:
2021-10-21 11:47:06 [INFO] Successfully reset password for isabel.
[isabell@stardust ~]$

If you need to change the settings for a user this can be done with:

[isabell@stardust ~]$ thelounge edit isabell
[isabell@stardust ~]$

Launch The Lounge

Point your browser to your The Lounge URL and enjoy.

Updates

Note

Check the release page or update feed regularly to stay informed about the newest version.

Update

To get the latest version of The Lounge you can use the npm package manager:

[isabell@stardust ~]$ npm update --global thelounge
+ thelounge@2.7.1
   added 4 packages, removed 22 packages and updated 12 packages in 3.176s
[isabell@stardust ~]$

Afterwards you have to restart you supervisord for The Lounge:

[isabell@stardust ~]$ supervisorctl restart thelounge
thelounge: stopped
thelounge: started
[isabell@stardust ~]$ supervisorctl status
thelounge                        RUNNING   pid 11044, uptime 0:00:08
[isabell@stardust ~]$

If it’s not in state RUNNING, check your configuration.


Tested with The Lounge 4.2.0, Uberspace 7.11.5

Written by: roang <https://github.com/Roang-zero1>