Skip to Content
Quassel

Quassel IRC

Modern distributed IRC client with persistent connections

Quassel IRC

Quassel IRC is a modern, cross-platform, distributed IRC client based on the Qt framework. Unlike traditional IRC clients, Quassel uses a unique client-server architecture where the core (server) stays connected to IRC networks 24/7, while multiple clients can connect and disconnect at will without losing your IRC connection.


What is Quassel IRC?

Quassel IRC is a distributed IRC client that separates the core functionality from the user interface. The Quassel Core runs continuously on your QuickBox server, maintaining persistent IRC connections, while Quassel Client applications can connect from any device to access your IRC sessions.

Distributed Architecture

Core stays connected 24/7 while clients connect/disconnect freely from any device

Persistent Backlog

Never miss messages—complete conversation history stored while you're disconnected

SSL/TLS Security

Automatic SSL certificate generation for secure client-to-core communication

Multi-Client Support

Connect from desktop, laptop, mobile—all clients share the same session state

Modern Interface

Beautiful Qt-based UI with customizable themes and advanced features

IPv4/IPv6 Support

Dual-stack network support for modern IRC connectivity

How Quassel Works

Quassel operates as two components: Quassel Core (server) runs on your QuickBox installation and maintains IRC connections, while Quassel Client (desktop/mobile app) connects to the core to access your IRC sessions from anywhere.


Installation

Install from the Dashboard

Open App Dashboard → Package Management (/dashboard?mode=packages), find Quassel in the Communication category (or search), and click Install. Quassel has no options to pick — the install dialog runs straight through, generating SSL certificates and starting the core. The dashboard streams the install log live; Reinstall, Update, and Remove are on the same panel.

What you see is gated by your account: admins manage any user’s apps, regular users manage their own. See App Management for the full flow. After the core is running, install the Quassel client on your devices to connect (covered below).

Install from the CLI (automation)

The CLI runs the same script and suits automation:

qb install quassel -u username qb reinstall quassel -u username qb update quassel -u username qb remove quassel -u username qb help quassel

Full flag reference: CLI Reference.


Configuration

Default Settings

Quassel Core is configured with the following defaults:

Configuration Files
/home/username
.config/Quassel/
├── quasselcore.conf# Core configuration file
├── logs/
│ └── core.log# Main core log file
└── quassel-storage.sqlite# Message and configuration database
.ssl/
├── quasselCert.pem# SSL certificate for secure connections
└── cacert.pem# Certificate authority bundle
System Configuration
/etc/default
quasselcore# Environment configuration file

Environment Configuration

Quassel Core uses environment variables defined in /etc/default/quasselcore:

# Log Level: Debug|Info|Warning|Error LOGLEVEL="Info" # Log file location LOGFILE="/home/username/.config/Quassel/logs/core.log" # Port for client connections (default: 4242) PORT="4242" # Network addresses to listen on (IPv6 and IPv4) LISTEN="::,0.0.0.0" # Data directory DATADIR="/var/lib/quassel"

Port Configuration

By default, Quassel Core listens on port 4242. QuickBox automatically handles:

  • Port availability checking
  • Automatic port assignment if default is in use
  • Firewall rule configuration
  • Database port registration
Firewall Configuration

Ensure port 4242 (or your custom port) is accessible through your firewall if connecting from external networks. QuickBox configures local access automatically.

Check your assigned port:

cat /etc/default/quasselcore | grep PORT

Allow port through UFW firewall:

# Allow from specific IP ufw allow from 203.0.113.50 to any port 4242 # Allow from anywhere (not recommended) ufw allow 4242/tcp

Advanced Configuration

Customize log level:

# Edit environment file nano /etc/default/quasselcore # Change LOGLEVEL (Debug|Info|Warning|Error) LOGLEVEL="Debug" # Restart service systemctl restart quasselcore

Change listening addresses:

# Edit environment file nano /etc/default/quasselcore # Listen only on IPv4 LISTEN="0.0.0.0" # Listen only on IPv6 LISTEN="::" # Listen on both (default) LISTEN="::,0.0.0.0" # Restart service systemctl restart quasselcore

Connecting to Quassel Core

Accessing Your Quassel Core

After installation, you’ll need the Quassel Client application to connect to your core. Unlike web-based IRC clients, Quassel requires a desktop or mobile application.

Download Quassel Client

Choose Your Platform

Quassel Client is available for all major platforms. Download the appropriate version for your operating system.

Desktop Clients:

PlatformInstallation Method
Linux (Debian/Ubuntu)apt install quassel-client
Linux (Fedora/RHEL)dnf install quassel-client
WindowsDownload from quassel-irc.org 
macOSbrew install quassel-client or download from website

Mobile Clients:

PlatformApplicationStore Link
AndroidQuasseldroidGoogle Play Store 
iOSQuassel for iOSApp Store 

First-Time Connection Setup

Step 1: Launch Quassel Client

Open the Quassel Client application on your device.

Step 2: Add Core Account

  1. Click “Add Core Account” or navigate to connection settings
  2. Enter your connection details:
Core Account Name: My QuickBox Server Hostname: your-server.com (or IP address) Port: 4242
  1. Enable “Use Secure Connection (SSL)”

Step 3: Accept SSL Certificate

Certificate Verification

On first connection, you’ll be prompted to accept the SSL certificate. This is normal for self-signed certificates. Verify the certificate fingerprint if security is critical.

To verify certificate fingerprint on your server:

openssl x509 -in ~/.ssl/quasselCert.pem -noout -fingerprint -sha256

Step 4: Create User Account

Since this is your first connection, you’ll create the initial admin account:

  1. Click “Add User”
  2. Enter username and strong password
  3. This becomes your Quassel Core account (separate from IRC networks)

Step 5: Add IRC Networks

Configure IRC networks you want to connect to:

  1. Right-click on your identity → “Configure Networks”

  2. Click “Add” to create a new network

  3. Common IRC networks:

    • Libera.Chat: irc.libera.chat:6697 (SSL)
    • OFTC: irc.oftc.net:6697 (SSL)
    • IRCnet: irc.ircnet.com:6667
  4. Configure authentication (if required by network)

  5. Set auto-join channels

Connected!

Once configured, your Quassel Core maintains persistent IRC connections 24/7. You can now close the client and reconnect anytime without losing your IRC session!

Connection Settings Reference

Required Connection Parameters:

ParameterValueNotes
HostnameYour server IP or domainExample: server.example.com
Port4242 (default)Check /etc/default/quasselcore if custom
SSL/TLSEnabled (required)Always use SSL for security
AccountCreated on first connectionSeparate from IRC network accounts

Find your assigned port:

cat /etc/default/quasselcore | grep "^PORT="

Multiple Client Connections

One of Quassel’s key features is multi-client support:

  • Connect from desktop, laptop, tablet, and phone simultaneously
  • All clients share the same conversation state
  • Read/unread status syncs across all devices
  • Disconnect any client without losing IRC connection

Example use case:

  1. Connect from desktop at work
  2. Disconnect and connect from phone during commute
  3. Resume from laptop at home
  4. All conversations and history available everywhere

Service Management

Quassel Core runs as a systemd service for reliable operation:

Basic Service Commands

Check service status:

systemctl status quasselcore

Start service:

systemctl start quasselcore

Stop service:

systemctl stop quasselcore

Restart service:

systemctl restart quasselcore

Enable service (start on boot):

systemctl enable quasselcore

Disable service:

systemctl disable quasselcore

Viewing Logs

View service logs:

journalctl -u quasselcore -f

View core log file:

tail -f /home/username/.config/Quassel/logs/core.log

Check last 100 log entries:

journalctl -u quasselcore -n 100

Features

Core Features

Message Backlog

Complete conversation history stored in SQLite database with efficient retrieval

Multi-User Support

Create multiple user accounts for different team members or use cases

Network Management

Connect to multiple IRC networks simultaneously with independent configurations

Channel Buffers

Organized channel and query buffers with unread message tracking

Smart Notifications

Customizable highlight rules and notification settings per channel

Secure Authentication

PostgreSQL or SQLite backend with encrypted password storage

Client Features

When connected via Quassel Client:

  • Cross-Platform: Windows, macOS, Linux, and mobile clients
  • Synchronized State: All clients share the same read/unread status
  • Rich Interface: Context menus, keyboard shortcuts, and customizable layouts
  • Advanced Search: Full-text search across conversation history
  • Identity Management: Multiple nicknames and authentication methods
  • File Transfers: DCC send/receive with resume support

Directory Structure

Quassel stores configuration and data in user-specific directories:

User Configuration
/home/username
.config/Quassel/
├── quasselcore.conf# Main configuration
├── quassel-storage.sqlite# Message database
└── logs/
│ └── core.log# Runtime logs
.ssl/
├── quasselCert.pem# SSL certificate
└── cacert.pem# CA bundle
System Files
/
var/lib/quassel/# Additional data storage
etc/default/quasselcore# Service environment

Troubleshooting

Common Issues & Solutions

Check Logs First

Most Quassel issues can be diagnosed by checking systemd logs with journalctl -u quasselcore -n 100. Always review logs before making configuration changes.

Service Won’t Start

Symptoms: systemctl start quasselcore fails or service immediately stops

Solutions:

  1. Check service status: systemctl status quasselcore
  2. Review logs: journalctl -u quasselcore -n 50
  3. Verify permissions: ls -la /home/username/.config/Quassel/
  4. Check port availability: ss -tlnp | grep 4242
  5. Reinstall if corrupted: qb reinstall quassel -u username

Client Connection Refused

Symptoms: Quassel client cannot connect to core, timeout errors

Solutions:

  1. Verify service is running: systemctl is-active quasselcore
  2. Check port is listening: netstat -tlnp | grep 4242
  3. Test local connection: telnet localhost 4242
  4. Verify firewall rules: ufw status or iptables -L
  5. Check client SSL settings match server configuration

SSL Certificate Errors

Symptoms: Certificate verification failed, untrusted certificate warnings

Solutions:

  1. Verify certificate exists: ls -la ~/.ssl/quasselCert.pem
  2. Check certificate validity: openssl x509 -in ~/.ssl/quasselCert.pem -noout -dates
  3. Regenerate certificate: qb reinstall quassel -u username
  4. Accept certificate in client (verify fingerprint first)

Database Corruption

Symptoms: Core crashes on startup, SQLite errors in logs

Solutions:

  1. Stop service: systemctl stop quasselcore
  2. Backup current database: cp ~/.config/Quassel/quassel-storage.sqlite ~/quassel-backup.sqlite
  3. Restore from backup: cp ~/.local/share/quickbox/backups/quassel/backup/quassel-storage.sqlite ~/.config/Quassel/
  4. Fix permissions: chown username:username ~/.config/Quassel/*.sqlite
  5. Start service: systemctl start quasselcore

Service Health Checks

Verify core is running:

systemctl is-active quasselcore

Check port listening:

ss -tlnp | grep 4242

Test local connection:

telnet localhost 4242

Verify SSL certificate:

openssl x509 -in ~/.ssl/quasselCert.pem -text -noout

Best Practices

Do

  • Use strong, unique passwords for each Quassel user account
  • Enable SSL/TLS for all client-to-core connections
  • Regularly backup ~/.config/Quassel/ directory and database
  • Monitor logs periodically with journalctl -u quasselcore
  • Keep Quassel Core updated via qb update quassel command
  • Restrict port 4242 access via firewall to known IP addresses
  • Use dedicated IRC networks for different purposes (work, personal, etc.)
  • Configure proper certificate verification in client settings

Don't

  • Don't use default or weak passwords for user accounts
  • Don't expose Quassel Core port directly to the internet without firewall rules
  • Don't disable SSL/TLS for client connections—always encrypt traffic
  • Don't ignore systemd service failures—investigate with journalctl
  • Don't manually edit the SQLite database—corruption risk
  • Don't share user credentials across multiple people
  • Don't run Quassel Core as root user—let QuickBox manage permissions
  • Don't forget to backup before major updates or system changes

Security Recommendations

  • Use strong passwords for Quassel user accounts
  • Enable SSL/TLS for all client connections
  • Restrict port access via firewall to known IPs
  • Regular updates to address security vulnerabilities
  • Monitor connections via logs and systemd status

When to Use Quassel

Symptoms

  • Need 24/7 IRC presence without keeping computer on
  • Want to access IRC from multiple devices (desktop, laptop, mobile, tablet)
  • Missing messages when disconnected from IRC networks
  • Managing multiple IRC networks and channels becomes cumbersome
  • Team needs centralized IRC communication platform
  • Require complete conversation history and backlog
  • Need advanced features like highlights, notifications, and rich formatting

Resolution

  • Install Quassel Core on QuickBox server for persistent connections
  • Connect multiple Quassel clients simultaneously from any device
  • Complete message backlog automatically stored in SQLite database
  • Single core manages all networks, channels, and identities
  • Distributed architecture enables team collaboration with shared core
  • Full conversation history with efficient search and retrieval
  • Modern Qt-based UI with customizable themes and advanced IRC features
Not Ideal For

Quassel may not be the best choice if you need web-only access (requires desktop/mobile client installation), single-user occasional IRC usage (consider The Lounge for simpler web-based access), or public IRC servers without authentication.


Additional Resources


Quassel IRC works well alongside these QuickBox Pro communication tools:

Security Tools

Monitoring


Join the Community

Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.

Dedicated Support
Feature Previews
Community Configs
Active Discussions
Join Discord Server
Last updated on