HipChat and Slack alternatives

A Question of the Client

Unlike HipChat or Slack, InspIRCd is just a server. The developers don't offer a matching client, and why should they? All platforms have the choice of a number of IRC clients: M-IRC for Windows and the cross-platform command-line program irssi are just two examples.

This plethora of clients is both a curse and a blessing. With a wealth of alternatives, not only is the choice of client imposed on the user, but various functions will be unavailable. IRC is a plain text product with no automatic previewing of links, so although clients can integrate features on their own, achieving a consistent behavior can be problematic. For example, client A might show text prefixed with the tag <code> in fixed-pitch font without wrapping, whereas client B might display such a tag as normal text.

Another problem you'll encounter is with file sharing: IRC doesn't offer a way to store files for download. The exchange of files in IRC occurs via DCC (Direct Client-to-Client). The name itself suggests that a direct connection must be established between the two clients for the exchange to work. However, virtually all popular firewalls prevent such connections – and reconfiguring the firewall isn't the only challenge, because port forwarding also needs to work properly if one of the two clients goes online via NAT.

Data exchange via DCC has almost completely disappeared from the everyday life of larger IRC networks for this very reason. Very few administrators want to poke holes in their firewall.

Web-based IRC clients such as Kiwi IRC [8] (Figure 2), which operate on the same host as InspIRCd, provide a possible solution. You can even enforce their use at the InspIRCd level, meaning a completely homogeneous client landscape can exist. However, such a setup again requires installation and configuration work. The result is an easier way for customers or suppliers to get in direct contact with individual employees. All it takes is a suitably prepared link to the web IRC client.

Figure 2: Web-based IRC clients such as Kiwi IRC help achieve a certain consistency on the client side.


The data protection problems experienced by HipChat and Slack were noticed by many community members several years ago, giving rise to IRC protocol alternatives. Mattermost, written in Golang and React, is a typical example: Its authors promote it as a "modern Slack alternative." In fact, Mattermost, Slack, and HipChat have unmistakable similarities: All three services offer a native web interface that can be used without an additional client, and each has native clients that can be run on desktops.

The appearance is always the same: Typical convenient functions such as previewing web links are standard, as are stylesheets that show source text with correct formatting. Unlike HipChat and Slack, Mattermost can be run locally, which means that use of the service doesn't automatically mean data is outsourced to external servers.

High Installation Overhead

Mattermost doesn't make it easy. The instructions for common Linux distributions on the program website extend over many screens, starting with the installation of a database – the Mattermost developers recommend PostgreSQL.

Mattermost also needs its own disk space for large files. For example, if you load a large file during an ongoing chat, the file automatically ends up in a separate data directory. It can then be downloaded by other chat users.

Once the database is up and running, you still have plenty of setup work left. Installing Mattermost itself is the next item on the list. As with InspIRCd, you can search in vain for pre-built packages for popular server distributions. Operating the service will inevitably lead to downloading a tarball, which then needs to be unpacked on the target host. The Mattermost configuration file, written in JSON, is where you can store the data for logging into the PostgreSQL database.

The third step involves installing Nginx: The developers recommend running Mattermost behind a firewall. In the setup, Nginx serves as a proxy server that accepts incoming connections and forwards them to the Mattermost server. Because Nginx also works as an SSL terminator, Mattermost can be operated as an SSL service with upstream Nginx. When the PostgreSQL, Mattermost, and Nginx trio are ready, the next step is the final configuration: Administrators can do this work in the Mattermost web-based System Console.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Mistborn

    Mistborn bundles important Internet services on your home network and secures them with a WireGuard VPN tunnel, Pi-hole, iptables rules, and separate containers.

  • FOSSPicks

    Graham looks at OpenToonz, Qtile, SageMath, starcli, Fermentrack, Mindustry, and much more.

  • FOSSPicks

    This month Graham looks at Gyroflow, gRainbow, Polyrhythmix, mfp, Mission Center, and more!

  • Tool Tips

    Tool review: Dialog 0.7, virtenv 0.8.6, collectd 5.4.0, convmv 1.15, Drukkar 1.11, and ngIRCd 20.3.

  • Matrix

    One tool to rule all online communication: one tool to find them, one tool to bring them all in, and the Matrix to bind them. An open standard for decentralized communication enters the scene.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More