The Lounge

Modern, self-hosted web IRC client

Chat & Communication ★ 6.3k stars Easy setup MIT

The Lounge is a modern web-based IRC client that you host yourself, staying always connected and synchronizing across devices. It offers a responsive interface accessible from any browser.

Key features

  • Always-on IRC connection
  • Synchronized multi-device experience
  • Responsive web and mobile UI
  • Push notifications

Pros & cons

Strengths

  • Great IRC experience in the browser
  • Multi-user support

Trade-offs

  • IRC-only
  • No built-in voice or video

The Lounge replaces

Last reviewed Sep 13, 2026 · 825 words

The Lounge collapses two things most IRC users run separately, a bouncer and a client, into one Node.js process that stays connected on your server and renders in any browser. If you currently pay IRCCloud about $5 a month, or babysit a ZNC instance plus three different clients, this is the drop-in replacement, and it runs comfortably on 256 MB of RAM. The single decision that matters is private mode versus public mode, and you want private.

Private mode is the whole point

The Lounge ships with two personalities. Public mode is a stateless web client anyone can open, connect to a network, and chat from; it forgets everything when the tab closes. Private mode is the bouncer: named users, persistent connections, message history in SQLite, and the ability to close your laptop for a week and scroll back through everything you missed. Public mode is what kiwiirc-style embeds are for; for a self-hoster the value is entirely in private mode, which is the default when you run the official image.

services:
  thelounge:
    image: ghcr.io/thelounge/thelounge:latest
    ports:
      - "9000:9000"
    volumes:
      - ./thelounge:/var/opt/thelounge
    restart: unless-stopped

Users are created from the CLI, not a signup page, which is the one step people miss:

docker exec --user node -it thelounge thelounge add alice

Each user gets a password-protected account and their own set of network connections. A household of 3 IRC holdouts can share one instance without ever seeing each other's channels.

Put it behind TLS or push notifications will not work

The Lounge itself speaks plain HTTP on port 9000 and expects a reverse proxy to do the rest. Two things silently depend on that proxy being correct. Browser push notifications use the Web Push API, which browsers only expose on HTTPS origins, so a bare http://server:9000 install will show the notification toggle greyed out and give you no explanation. And the client talks to the server over a WebSocket, so the proxy must forward the upgrade headers; Caddy does this without being told, nginx needs the usual three proxy_set_header lines. Once both are in place, the app installs as a PWA on a phone and notifies you on highlights and private messages, which is the feature that actually retires IRCCloud.

What it gives you that ZNC does not

A bouncer alone gives you persistence. The Lounge adds the things a modern chat app trained you to expect: link previews with images, file uploads served from your own disk, inline image and video display, per-network TLS with client certificates for NickServ-free auth, and message search across the SQLite history. Storage is a plain database file under /var/opt/thelounge/logs/, so backing it up is a copy job. Enable both storage backends in config.js if you want grep-able text logs alongside the searchable database:

messageStorage: ["sqlite", "text"],

The trade is that you are tied to the web client. Terminal purists who live in WeeChat or irssi can still point those at ZNC, but they cannot point them at The Lounge, because it is not an IRC server and does not expose one.

What it will never be

IRC-only is a real limit, not a footnote. There is no voice, no video, no threads, no reactions beyond what the protocol allows, and no bridging to Matrix or Slack built in. If your group has drifted to Discord and you want them back, The Lounge will not do that; it makes IRC pleasant for people who already want IRC. It also does not run a network for you. For a private server to pair it with, InspIRCd or ergo are the usual choices, and the two together make a complete, closed community on well under 1 GB of RAM.

Updates and the one config gotcha

Configuration lives in /var/opt/thelounge/config.js, generated on first run. The file is JavaScript, so a stray comma takes the whole service down at startup with a stack trace rather than a friendly message; edit it, restart, and check docker logs before walking away. Upgrades are otherwise boring: pull the new image, restart, and the SQLite schema migrates on its own. The project has shipped since 2014 and moves at a measured pace, so a monthly pull is plenty.

What I'd do

Run it in private mode behind Caddy on a subdomain, create one user per person with thelounge add, and turn on sqlite plus text logging on day one because you cannot backfill history later. Install the PWA on your phone and let push handle highlights. If you need a terminal client as well, keep a small ZNC next to it; otherwise decommission the bouncer entirely. For anyone whose main chat is not IRC, look at the broader communication category instead, because nothing here will make a Discord crowd move.

Compare The Lounge

22 head-to-head comparisons.

Similar chat & communication apps