
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
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 quasselFull flag reference: CLI Reference.
Configuration
Default Settings
Quassel Core is configured with the following defaults:
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
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 PORTAllow 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/tcpAdvanced Configuration
Customize log level:
# Edit environment file
nano /etc/default/quasselcore
# Change LOGLEVEL (Debug|Info|Warning|Error)
LOGLEVEL="Debug"
# Restart service
systemctl restart quasselcoreChange 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 quasselcoreConnecting 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
Quassel Client is available for all major platforms. Download the appropriate version for your operating system.
Desktop Clients:
| Platform | Installation Method |
|---|---|
| Linux (Debian/Ubuntu) | apt install quassel-client |
| Linux (Fedora/RHEL) | dnf install quassel-client |
| Windows | Download from quassel-irc.org |
| macOS | brew install quassel-client or download from website |
Mobile Clients:
| Platform | Application | Store Link |
|---|---|---|
| Android | Quasseldroid | Google Play Store |
| iOS | Quassel for iOS | App Store |
First-Time Connection Setup
Step 1: Launch Quassel Client
Open the Quassel Client application on your device.
Step 2: Add Core Account
- Click “Add Core Account” or navigate to connection settings
- Enter your connection details:
Core Account Name: My QuickBox Server
Hostname: your-server.com (or IP address)
Port: 4242- Enable “Use Secure Connection (SSL)” ✓
Step 3: Accept SSL Certificate
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 -sha256Step 4: Create User Account
Since this is your first connection, you’ll create the initial admin account:
- Click “Add User”
- Enter username and strong password
- This becomes your Quassel Core account (separate from IRC networks)
Step 5: Add IRC Networks
Configure IRC networks you want to connect to:
-
Right-click on your identity → “Configure Networks”
-
Click “Add” to create a new network
-
Common IRC networks:
- Libera.Chat:
irc.libera.chat:6697(SSL) - OFTC:
irc.oftc.net:6697(SSL) - IRCnet:
irc.ircnet.com:6667
- Libera.Chat:
-
Configure authentication (if required by network)
-
Set auto-join channels
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:
| Parameter | Value | Notes |
|---|---|---|
| Hostname | Your server IP or domain | Example: server.example.com |
| Port | 4242 (default) | Check /etc/default/quasselcore if custom |
| SSL/TLS | Enabled (required) | Always use SSL for security |
| Account | Created on first connection | Separate 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:
- Connect from desktop at work
- Disconnect and connect from phone during commute
- Resume from laptop at home
- 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 quasselcoreStart service:
systemctl start quasselcoreStop service:
systemctl stop quasselcoreRestart service:
systemctl restart quasselcoreEnable service (start on boot):
systemctl enable quasselcoreDisable service:
systemctl disable quasselcoreViewing Logs
View service logs:
journalctl -u quasselcore -fView core log file:
tail -f /home/username/.config/Quassel/logs/core.logCheck last 100 log entries:
journalctl -u quasselcore -n 100Features
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:
Troubleshooting
Common Issues & Solutions
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:
- Check service status:
systemctl status quasselcore - Review logs:
journalctl -u quasselcore -n 50 - Verify permissions:
ls -la /home/username/.config/Quassel/ - Check port availability:
ss -tlnp | grep 4242 - Reinstall if corrupted:
qb reinstall quassel -u username
Client Connection Refused
Symptoms: Quassel client cannot connect to core, timeout errors
Solutions:
- Verify service is running:
systemctl is-active quasselcore - Check port is listening:
netstat -tlnp | grep 4242 - Test local connection:
telnet localhost 4242 - Verify firewall rules:
ufw statusoriptables -L - Check client SSL settings match server configuration
SSL Certificate Errors
Symptoms: Certificate verification failed, untrusted certificate warnings
Solutions:
- Verify certificate exists:
ls -la ~/.ssl/quasselCert.pem - Check certificate validity:
openssl x509 -in ~/.ssl/quasselCert.pem -noout -dates - Regenerate certificate:
qb reinstall quassel -u username - Accept certificate in client (verify fingerprint first)
Database Corruption
Symptoms: Core crashes on startup, SQLite errors in logs
Solutions:
- Stop service:
systemctl stop quasselcore - Backup current database:
cp ~/.config/Quassel/quassel-storage.sqlite ~/quassel-backup.sqlite - Restore from backup:
cp ~/.local/share/quickbox/backups/quassel/backup/quassel-storage.sqlite ~/.config/Quassel/ - Fix permissions:
chown username:username ~/.config/Quassel/*.sqlite - Start service:
systemctl start quasselcore
Service Health Checks
Verify core is running:
systemctl is-active quasselcoreCheck port listening:
ss -tlnp | grep 4242Test local connection:
telnet localhost 4242Verify SSL certificate:
openssl x509 -in ~/.ssl/quasselCert.pem -text -nooutBest 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
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
Related Applications
Quassel IRC works well alongside these QuickBox Pro communication tools:
Join the Community
Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.