Internet Relay Chat (IRC) offers a real-time communication platform, and when integrated with I2P’s anonymous network layer, it becomes a serious tool for privacy and security. Quassel IRC takes this a notch higher by providing a continuous, client-server chat experience.

Let’s dive into the world of private and uninterrupted chat by setting up your IRC over I2P with Quassel.

This guide assumes you are running i2pd on a secure VPS, If you want a guide on how to do that check out it out here I2P VPS Install Guide

What is Quassel?

Quassel IRC is a modern, cross-platform, distributed IRC client introduced in 2008. It is based on the Qt framework and uses a client-server model, allowing one or multiple clients to attach to and detach from a central core. This means that users can re-attach their client and find their IRC session in the same state as they left it. The core application can connect to one or more clients and various IRC servers.

Quassel Client

The Integration of IRC, I2P, and Quassel

IRC is renowned for its straightforward and effective real-time communication. However, it traditionally lacks persistence—once you log off hence the use of IRC Bouncers and Loggers, you’re basically out of the loop until you reconnect. This is where integrating it with Quassel Helps.

I2P also encrypts your communication and routes it through a network of peers, ensuring your conversations remain private and secure.

Running your IRC client on a VPS ensures that it’s always on, even when your local machine is off. You never miss a message, and your presence in channels remains constant. Quassel IRC amplifies this benefit. By splitting the client into a core (server) and a client (user interface), Quassel ensures that your IRC client is always connected. The Core on the VPS maintains your presence and logs messages, acting like a bouncer, while you can connect and disconnect with the client at your convenience without missing any activity. This persistent connection, coupled with the privacy and security of I2P, makes for an unparalleled IRC experience.

Now, let’s move on to how you can set this up efficiently and securely on a VPS.

Setting Up Quassel Core and Client

Setting up Quassel Core on your VPS and connecting it with the Quassel Client on your local machine offers a user-friendly alternative to other setups like running Weechat in a tmux session. Here’s how you can get your Quassel system up and running.

Installing Quassel Core on Your VPS

Access Your VPS

Connect to your VPS via SSH. Make sure you have the necessary privileges to install packages.

Install Quassel Core

Quassel is available in the repositories of most Linux distributions. Install it using your package manager. For Ubuntu or Debian-based systems, use:

sudo apt-get update
sudo apt-get install quassel-core

Log Out and Reconnect via an SSH Tunnel

Now Quassel core is installed on the VPS, log out and log back in but before we do lets forward the local port of Quassel core which is 4242

This way we can create a secure connection to the core instead of a direct connection.

ssh user@your_vps_ip -p port_number -L 4242:127.0.0.1:4242

Replace with your server details

This method ensures that your Quassel Core is not directly exposed to the internet, providing an additional layer of security over your already private I2P connection.

Setting Up Quassel Client

This is the part we install the “client” on whatever device you want to access your remote core (VPS) instance.

Install Quassel Client

Download and install the Quassel Client on your local machine. It’s available for various operating systems.

Go ahead Setup an admin account and password.

Connect to Quassel over the SSH tunnel

  • Launch the Quassel Client and add a new Quassel Core account
  • Input a name for your new connection
  • Input localhost ip and the port we forwaded (port 4242)
  • Input a username and password this will setup a new user to be added to the core (Write it down somewhere safe)

Quassel

Once logged in go ahead and add your connections to your favourite i2p irc servers

Irc Servers

This are the IRC servers listed in your /var/lib/i2pd/tunnels.conf file (on your VPS) and the ports they run on.

The IRC part of the file should look like this:

[IRC-ILITA]
type = client
address = 127.0.0.1
port = 6668
destination = irc.ilita.i2p
destinationport = 6667
keys = irc-keys.dat

[IRC-IRC2P]
type = client
address = 127.0.0.1
port = 6669
destination = irc.postman.i2p
destinationport = 6667
keys = irc-keys.dat

Add the server you want to your quassel client setup, the ip will be 127.0.0.1 for localhost and the port of the irc server in the tunnels.conf in this case 6668 or 6669.

This works because of our ssh connection to the VPS we setup before.

Accessing Quassel on the Go

For on-the-go connectivity to your IRC channels, integrating QuasselDroid with Termux on your Android device is an excellent solution. This setup allows you to access your Quassel Core securely and conveniently from anywhere. Here’s how to get started:

Using QuasselDroid for Mobile Access

Download and install QuasselDroid from F-Droid, a trusted source for open-source apps.

Setting Up Secure SSH Tunneling with Termux

Install Termux

Get Termux from F-Droid to ensure you’re using the open-source, secure version of the app.

SSH into Your Server

Open Termux and SSH into your VPS. The command remains the same, ensuring familiarity and ease of use:

ssh user@your_vps_ip -p port_number -L 4242:127.0.0.1:4242

Set Up Port Forwarding

Use the SSH port forwarding feature in Termux to securely forward the necessary ports from your VPS to your mobile device. This step ensures that your mobile access to IRC is just as secure as your desktop access.

With QuasselDroid and Termux from F-Droid, your IRC communication is not only mobile but also retains the high standard of security and privacy you expect from your desktop setup.

Connect to Quassel Core

Launch QuasselDroid and configure it to connect to your Quassel Core server. Input localhost and the port you forwaded in Termux for secure communication.

Note:

We are focusing on SSH tunnels in this guide for secure access. However, it’s worth noting that creating custom I2P tunnels in your tunnels.conf file is another viable alternative, offering distinct advantages that i plan to explore in an upcoming guide.

Conclusion

In this guide, we explored a powerful combination of technologies that together offer a private, secure, and persistent IRC experience. By integrating IRC with I2P through i2pd and setting up Quassel Core and Client, you can enjoy the benefits of a continuous connection, akin to traditional setups like Weechat in a tmux session, but with added ease of use and robust security features.

Here’s a brief recap of what we covered:

  • Integration of IRC, I2P, and Quassel: We discussed how combining these technologies provides a secure and private communication channel, ensuring that you’re always connected and your messages are always waiting for you, even when you’re offline.
  • Streamlined Setup Process: We went through the steps to set up Quassel Core on your VPS and connect it with the Quassel Client on your local machine, highlighting the ease compared to other setups.
  • Ensuring Security and Privacy: We emphasized the importance of using i2pd for privacy within the I2P network and setting up an SSH tunnel for secure, remote access to your VPS.

As a next step, you might consider exploring more advanced configurations of Quassel or delving deeper into the privacy features of I2P. Perhaps you could even experiment with the alternative of using I2P tunnels for secure access.

Setting up your IRC over I2P using Quassel Core and Client not only ensures that your conversations remain private and secure but also guarantees that you’ll never miss a beat in your online interactions.

If you need any further modifications or have additional insights you’d like to include, feel free to let me know! Otherwise, your guide to setting up a persistent and secure IRC chat environment with Quassel is ready to go.