
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 usernameAutomatic 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:
- 📦 Package Installation - Installs quassel-core from system repositories
- 🔐 SSL Certificate Generation - Creates secure certificates for client connections
- ⚙️ Service Configuration - Sets up systemd service with user-specific settings
- 📁 Directory Structure - Creates config directories and sets proper permissions
- 🔒 Security Hardening - Configures firewall rules and access controls
- 🗄️ Database Integration - Registers service in QuickBox database
- 🚀 Service Activation - Enables and starts Quassel Core service
- 💾 Automatic Backup - Creates initial configuration backup
CLI Commands
Basic Operations
| Command | Description |
|---|---|
qb install quassel -u username | Install Quassel Core with automatic SSL setup |
qb reinstall quassel -u username | Reinstall Quassel Core (preserves configuration) |
qb update quassel -u username | Update to latest Quassel Core version |
qb remove quassel -u username | Remove Quassel Core and clean up files |
qb help quassel | Display comprehensive help and usage information |
Usage Examples
Install Quassel Core:
qb install quassel -u myuserUpdate Quassel Core:
qb update quassel -u myuserReinstall (fix corrupted installation while preserving data):
qb reinstall quassel -u myuserRemove Quassel Core:
qb remove quassel -u myuserConfiguration
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
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 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
Choose Your Platform
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
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 -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
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:
| 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
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:
- 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
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
Related Applications
Quassel IRC works well alongside these QuickBox Pro communication tools:
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.