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

Prerequisites

Before installing Quassel Core, ensure your environment meets these requirements:

Symptoms

  • QuickBox Pro v3 installed and configured
  • Valid user account with appropriate permissions
  • Port 4242 available (or will be auto-assigned)
  • Network connectivity for package installation

Resolution

  • Install QuickBox Pro via standard installation process
  • Create user account with qb adduser command
  • QuickBox automatically checks port availability during install
  • Download Quassel Client for your platform after core installation

Install Quassel Core

Install Quassel IRC core for a specific user:

qb install quassel -u username

Automatic Configuration

The QuickBox installer automatically configures Quassel Core with SSL certificates, systemd service integration, and optimal settings for your environment. The core starts immediately after installation.

Automatic Installation Process

QuickBox handles complete Quassel Core setup:

  1. 📦 Package Installation - Installs quassel-core from system repositories
  2. 🔐 SSL Certificate Generation - Creates secure certificates for client connections
  3. ⚙️ Service Configuration - Sets up systemd service with user-specific settings
  4. 📁 Directory Structure - Creates config directories and sets proper permissions
  5. 🔒 Security Hardening - Configures firewall rules and access controls
  6. 🗄️ Database Integration - Registers service in QuickBox database
  7. 🚀 Service Activation - Enables and starts Quassel Core service
  8. 💾 Automatic Backup - Creates initial configuration backup

CLI Commands

Basic Operations

CommandDescription
qb install quassel -u usernameInstall Quassel Core with automatic SSL setup
qb reinstall quassel -u usernameReinstall Quassel Core (preserves configuration)
qb update quassel -u usernameUpdate to latest Quassel Core version
qb remove quassel -u usernameRemove Quassel Core and clean up files
qb help quasselDisplay comprehensive help and usage information

Usage Examples

Install Quassel Core:

qb install quassel -u myuser

Update Quassel Core:

qb update quassel -u myuser

Reinstall (fix corrupted installation while preserving data):

qb reinstall quassel -u myuser

Remove Quassel Core:

qb remove quassel -u myuser

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


QuickBox Integration

Quassel Core integrates seamlessly with QuickBox Pro:

  • Dashboard Widget: Monitor Quassel Core status from QuickBox dashboard
  • User Management: Per-user installations with isolated configurations
  • Automatic Backups: Configuration and database backed up during updates
  • Service Monitoring: Health checks and automatic restart on failure
  • Database Tracking: Version and port information stored in QuickBox database
  • SSL Integration: Shared SSL infrastructure with other QuickBox services

Support & Community

Need help with Quassel IRC? The QuickBox community is here to help!

QuickBox Pro Support

QuickBox Pro users receive priority support for Quassel Core installation, configuration, and troubleshooting through Discord and the ticket system. Join our Discord for real-time assistance!

Getting Help


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