unsubbed.co

InspIRCd

InspIRCd gives you modular IRC server written in C++ for Linux, BSD, Windows, and macOS on your own infrastructure.

Self-hosted IRC infrastructure, honestly reviewed. IRC is a 36-year-old protocol. This article won’t pretend otherwise.

TL;DR

  • What it is: A modular, high-performance IRC server written in C++, implementing the modern IRCv3 specification. It is server software — you deploy it, connect IRC clients to it, and you own the network [README][1].
  • Who it’s for: Developers, gaming communities, open-source projects, and privacy-focused groups who already live in IRC or want to run a dedicated chat network with zero per-user costs. Not a Slack replacement for non-technical founders.
  • Cost savings: Software is free (GPL v2). Hosting runs $5–15/mo on any VPS. No per-seat pricing, no usage caps, no rate limits [README].
  • Key strength: Genuinely modular architecture — load only the features you want. Trusted by 1,000+ networks including HybridIRC, Snoonet, and Teranova [website]. Actively maintained with regular releases (v4.9.0 in December 2025) [website].
  • Key weakness: IRC is IRC. No persistent message history by default, no native web UI, no file uploads, no threads, no emoji reactions. If your team communicates via Slack and you want to escape the bill, InspIRCd is not the answer — Mattermost or Rocket.Chat are.

What is InspIRCd

InspIRCd is a C++ IRC daemon (IRCd) — the server-side component of Internet Relay Chat. You run it on a Linux box, users connect to it with any IRC client (Irssi, WeeChat, HexChat, or a web client like KiwiIRC), and you get a real-time group chat network with channels, private messages, and operator controls.

The project was created from scratch specifically to be stable, lightweight, and modular. Rather than shipping a monolithic server with every feature baked in, InspIRCd keeps the core minimal and exposes a C++ module API. Almost every non-essential feature — SSL/TLS, LDAP authentication, spam filters, flood controls, channel modes, services integration — is a loadable module [README][website]. This design philosophy means the attack surface stays small, the memory footprint stays low, and you only run what you actually need [3].

The “IRCv3” in the project description matters. Classic IRC from 1988 had no message timestamps, no away notifications, no capability negotiation, and no SASL authentication. IRCv3 is a series of extensions ratified by the IRCv3 Working Group that bring the protocol closer to modern expectations: timestamps, message IDs, server-time replay, SASL, extended join information, and more. InspIRCd implements all ratified IRCv3 specifications, which means users on modern clients get features that don’t exist on ancient IRCds [website][README].

As of this review the project sits at 1,304 GitHub stars. That’s modest by open-source standards, but stars are a poor metric for IRC servers — this is infrastructure software, not a dev tool people star for later reference. The telling number is the 1,000+ networks listed on the InspIRCd network page [website].


Why people choose it over UnrealIRCd, Ergo, and ngIRCd

InspIRCd isn’t the only option in the self-hosted IRC space. LinuxLinks catalogues several alternatives in the same category: UnrealIRCd, Ergo (formerly Oragono), ngIRCd, IRCD-Hybrid, and miniircd [3]. The choice among them comes down to a few axes.

Versus UnrealIRCd. UnrealIRCd is the other major modular IRCd and is arguably more feature-dense out of the box, including a built-in web panel and a longer history of Windows support. IRC hosting services like RisingNet explicitly list both UnrealIRCd and InspIRCd as supported options [2]. The preference between the two is mostly ideological and community-based: InspIRCd’s development has historically been more conservative and stability-focused, while UnrealIRCd ships more features by default. Neither is strictly better; pick based on the modules you need.

Versus Ergo (formerly Oragono). Ergo is the modern-architecture contender — written in Go, with built-in persistent message history, bouncer functionality, and a cleaner codebase by modern standards. If you’re starting from scratch and have no legacy IRC requirements, Ergo is worth evaluating. It requires less operational expertise because it bundles what InspIRCd requires modules for. The trade-off is that Ergo is newer, has a smaller deployment base, and the C++ ecosystem around InspIRCd (modules, services integrations, documentation) is more mature [3].

Versus ngIRCd. ngIRCd is smaller and simpler — appropriate for small private networks with minimal requirements. InspIRCd handles networks with 100,000+ concurrent clients [3], which ngIRCd is not designed for.

Versus Mattermost/Rocket.Chat (wrong comparison, but worth addressing). If you found InspIRCd while searching for a “self-hosted Slack alternative,” stop here. IRC does not do threads, file uploads, emoji reactions, user presence indicators, or persistent history without additional tooling. Mattermost or Rocket.Chat are the honest answers to that question. InspIRCd is for people who specifically want an IRC network — either because their community already uses IRC or because they want a lightweight real-time communication protocol with broad client support [4].


Features

Core IRC capabilities:

  • Channels, private messages, server-to-server linking for federated networks [README]
  • Full IRCv3 specification support — message IDs, server-time, SASL, away notifications, capability negotiation [website][README]
  • Operator access levels with fine-grained permission control [1]
  • Channel modes, user modes, and extended bans [1]
  • Server password, per-channel passwords, invite-only channels [1]

Module system:

  • SSL/TLS via GnuTLS or OpenSSL module — tested with Let’s Encrypt in [1]
  • LDAP authentication module
  • Services integration (Anope, Atheme) for NickServ, ChanServ, MemoServ [2]
  • Flood protection and anti-spam modules
  • Cloak/vhost modules for hiding user IP addresses
  • Custom channel and user modes via modules

Operations:

  • Configuration via a single well-documented XML config file [1]
  • Hot-reload of modules without server restart
  • REHASH command to reload config without disconnecting users [1]
  • Detailed logging with configurable verbosity

Deployment options:

  • Binary packages for Debian 12/13, RHEL 8/9, Ubuntu 22.04/24.04 [README]
  • Docker image via the inspircd-docker repository [README]
  • Build from source on any recent Linux, BSD, macOS, Windows [README]
  • Windows 10+ support with MSVC and CMake [README]

What it doesn’t include:

  • Persistent message history (requires Ergo or a bouncer like ZNC)
  • Web IRC client (you add KiwiIRC or TheLounge separately) [2]
  • File uploads or media sharing
  • Voice/video
  • A web management panel

Pricing: SaaS vs self-hosted math

InspIRCd has no SaaS tier. The software is GPL v2 — free to download, deploy, modify, and run. There is no commercial edition, no hosted offering, and no per-seat licensing [README].

Total software cost: $0.

Your only cost is the server you run it on:

Hosting optionMonthly costNotes
Small VPS (Hetzner CX11, 2GB RAM)~$4–6/moHandles hundreds of concurrent users
Mid-tier VPS (4GB RAM)~$10–15/moHandles thousands of concurrent users
RisingNet managed IRC shell$14.99/moIncludes setup help, DDoS protection, BNC [2]

For comparison, what you’d pay elsewhere:

  • Slack Pro: $7.25/user/month. A 20-person team = $145/mo, $1,740/yr.
  • Discord: Free but closed-source, US-data-jurisdiction, no self-hosting option, and Discord has a track record of changing terms and enforcement policies.
  • Mattermost Team Edition: Free self-hosted, but a much heavier stack (PostgreSQL + Golang server + React frontend).

The honest math: If you’re running a developer community or a gaming community of 50–500 people who are happy with IRC clients, InspIRCd on a $6 VPS is essentially free infrastructure. If your users expect Slack-style UX, the cost of InspIRCd is irrelevant because it won’t serve their expectations regardless of price.


Deployment reality check

InspIRCd is server software, not a web app with a one-click installer. The canonical install path for UNIX-like systems is building from source [README][1].

What a source install looks like on Ubuntu/Debian [1]:

  1. Create a dedicated unprivileged user (adduser --disabled-password inspircd)
  2. Install dependencies: libgnutls-dev, gnutls-bin, pkg-config
  3. Download source tarball from GitHub releases, verify hash
  4. Run ./configure wizard and answer a handful of prompts
  5. make and make install
  6. Edit the XML configuration file
  7. Configure Let’s Encrypt TLS via the SSL module

Binary packages are available for Debian 12/13, RHEL 8/9, Ubuntu 22.04/24.04 — which removes the build step for those platforms [README]. A Docker image is also available for containerized deployments [README].

The jamieweb.net guide [1] — albeit written in 2017 for v2.x — remains a reasonable proxy for setup complexity because the configuration model hasn’t changed fundamentally. The guide explicitly warns against using distribution package manager versions (apt install inspircd), noting they tend to be outdated and potentially insecure. InspIRCd’s own README echoes this warning [README].

What can go sideways:

  • The XML config file has many options. A fresh deployer will spend time reading docs to understand the difference between <bind>, <link>, <module>, and <oper> blocks [1].
  • TLS setup requires either a certificate from Let’s Encrypt or a self-signed cert — the SSL module needs to be explicitly loaded and configured [1].
  • If you want IRC services (NickServ, ChanServ), you need to install and connect a separate services daemon like Anope or Atheme [2]. These are separate projects with their own installation process.
  • If you want a web IRC client, you deploy KiwiIRC or TheLounge as a separate application [2].
  • DDoS is a genuine operational concern on public IRC networks. Managed IRC hosting providers like RisingNet bundle DDoS protection as a selling point [2]. A bare VPS will not have this.

Realistic time estimate: A technically experienced Linux user can get InspIRCd running with TLS in 1–2 hours. Adding services (NickServ/ChanServ) adds another hour. A web client adds another 30–60 minutes. For someone new to Linux server administration, budget a full day and expect a learning curve.


Pros and cons

Pros

  • GPL v2 license. Genuinely free, no commercial use restrictions, no vendor lock-in [README]. You can modify the source, package it, run it commercially — no agreement required.
  • Modular architecture. Run exactly what you need. A minimal server with no modules loaded has a tiny footprint. A fully-loaded server with spam protection, LDAP, TLS, and services integration is the same binary [README][3].
  • Proven at scale. Networks with 100,000+ concurrent connections run InspIRCd [3]. It handles load that would flatten most alternatives.
  • IRCv3 compliance. Modern IRC clients that support IRCv3 get message timestamps, SASL login, and server-time replay — substantially better UX than classic IRC [website][README].
  • Active maintenance. Five releases in 2025 alone, with v4.9.0 in December 2025 [website]. Not abandonware.
  • Cross-platform. Runs on Linux, BSD, macOS, and Windows 10+ [README].
  • 1,000+ network deployments. Proven track record across diverse real-world use cases [website].
  • Broad ecosystem. Works with any IRC client ever made. Users have full choice — desktop clients, web clients, bouncers [1][2].

Cons

  • Not a Slack replacement. No persistent history, no file sharing, no threads, no reactions, no presence indicators out of the box. Users expecting modern team chat will be disappointed.
  • Setup complexity. Building from source, configuring XML files, and adding services require technical competence [1]. Binary packages help but don’t eliminate operational overhead.
  • Web UI requires separate deployment. KiwiIRC or TheLounge must be installed and configured independently if you want browser-based access [2]. This is an extra moving part to maintain.
  • Services are a separate project. NickServ, ChanServ, and MemoServ require Anope or Atheme — separate installs, separate configs, separate processes [2].
  • DDoS exposure. Public IRC networks are historically DDoS targets. You need to plan for this at the infrastructure level [2].
  • Modest GitHub star count (1,304). Not a strong community signal for tooling and integrations compared to Discord bots or Slack apps.
  • Distribution packages are unreliable. Official recommendation is to avoid apt install inspircd — distro packages are often outdated and may have unpatched security issues [README][1].
  • The source articles are sparse. The third-party review ecosystem for InspIRCd is thin compared to modern tools. This is itself a signal: InspIRCd users are IRC veterans who don’t write Medium posts, not mainstream adopters.

Who should use this / who shouldn’t

Use InspIRCd if:

  • You’re running a developer community, open-source project, or gaming network where IRC is already the culture.
  • You want to operate your own IRC server for a community of 10 to 100,000+ users with zero per-seat cost.
  • Privacy or data sovereignty matters — you want chat infrastructure you control entirely, with no third-party data access.
  • You have Linux administration experience or someone on the team who does.
  • You want to federate multiple servers into a network (IRC server-linking is well-supported) [README].

Skip it (use Mattermost) if:

  • You’re a team trying to escape Slack costs. Mattermost has persistent history, a web UI, mobile apps, and a Slack-like UX — InspIRCd has none of those.

Skip it (use Rocket.Chat) if:

  • You need file uploads, video calls, and a user experience that non-technical team members will accept without training.

Skip it (use Ergo/Ergochat) if:

  • You want modern IRC with built-in persistent history and a bouncer, and you don’t have legacy compatibility requirements.

Skip it (use Discord) if:

  • Your community is non-technical and expects a consumer-grade UI. Discord’s terms and data practices are the trade-off; if you can accept those, the UX is incomparable to IRC.

Skip it (use UnrealIRCd) if:

  • You need a feature-complete IRCd out of the box with less module configuration work, and the UnrealIRCd license is acceptable to you.

Alternatives worth considering

  • UnrealIRCd — the other major modular IRCd. More features pre-bundled, different license, also widely deployed [2][3].
  • Ergo (Ergochat) — modern Go-based IRCd with persistent message history and bouncer built in. Better starting point for new deployments with no legacy requirements [3].
  • ngIRCd — next-generation IRCd, simpler and lighter. Good for small private networks [3].
  • IRCD-Hybrid — lightweight, used extensively on EFnet. Less modular [3].
  • Mattermost — if the goal is actually “self-hosted Slack replacement.” Heavier stack, but persistent history, web/mobile apps, Slack-compatible API.
  • Rocket.Chat — heavier than Mattermost, more feature-complete for end users including video calls and marketplace.
  • Matrix/Element — federated protocol with persistent history, end-to-end encryption, and bridges to IRC. Significantly more complex to operate.

For communities that specifically want IRC: InspIRCd vs UnrealIRCd vs Ergo is the realistic shortlist. Pick InspIRCd for its stability record and modular C++ architecture. Pick Ergo if you’re starting fresh and want modern IRC features without module configuration overhead.


Bottom line

InspIRCd does one thing: it runs an IRC server, and it runs it well. The modular architecture, IRCv3 compliance, and 1,000+ production networks give it genuine credibility as serious infrastructure software. The GPL v2 license means you own it completely, with no commercial strings. For developer communities, gaming networks, and privacy-focused groups where IRC is the right protocol, InspIRCd is a solid choice and the operational cost is essentially whatever a cheap VPS costs per month.

The honest caveat is that IRC itself has tradeoffs that InspIRCd can’t solve — no persistent history, no file sharing, no web UI included. If you’re a non-technical founder trying to reduce a Slack bill, this isn’t the answer. If you’re a technical operator who knows what IRC is and wants a well-maintained, high-performance server to run your own network, InspIRCd is worth the setup time.


Sources

  1. Jamie Scaife, jamieweb.net“InspIRCd Linux Setup Guide” (May 16, 2017). https://www.jamieweb.net/blog/inspircd-linux-guide/
  2. RisingNet“IRC Server Hosting, DDoS Protection, UnrealIRCd, InspIRCD”. https://risingnet.com/ircd-shell-account/
  3. LinuxLinks“InspIRCd — modular Internet Relay Chat (IRC) server”. https://www.linuxlinks.com/inspircd-modular-internet-relay-chat-irc-server/
  4. Journal du Tech“Alternatives à Slack : Voici ce que vous devez savoir”. https://journaldutech.com/alternatives-a-slack-voici-ce-que-vous-devez-savoir/

Primary sources: