Deploying Quassel IRC
Introduction
Quassel IRC is a modern, distributed IRC client that separates the core (which stays connected to IRC networks) from the client (which you use to interact). This architecture allows you to stay permanently connected to IRC while accessing your chat from multiple devices without missing messages.
Key features of Quassel IRC include:
- Distributed Architecture: Core stays connected 24/7, clients connect when needed
- Message Backlog: Never miss messages while disconnected
- Multiple Client Support: Connect from desktop, mobile, or web interfaces
- SSL/TLS Encryption: Secure connections between core and clients
- Per-Channel Settings: Customize notifications and behavior per channel
- Search Functionality: Search through your entire chat history
- Multi-Network Support: Connect to multiple IRC networks simultaneously
- Database Backend: PostgreSQL or SQLite for message storage
- User Management: Multi-user support with individual configurations
This guide walks through deploying Quassel Core on Klutch.sh using Docker, enabling persistent connections and chat history storage.
Prerequisites
Before deploying Quassel IRC on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your Quassel configuration
- A Quassel client application installed on your devices
- Basic familiarity with Docker and IRC concepts
Deploying Quassel IRC on Klutch.sh
- Select TCP as the traffic type
- Set the internal port to 4242
- Connect to your Klutch.sh app URL on port 4242
- Create an admin user when prompted
- Configure your IRC networks and channels
Create Your Dockerfile
Create a Dockerfile in your repository:
FROM lscr.io/linuxserver/quassel-core:latest
# Environment variablesENV PUID=1000ENV PGID=1000ENV TZ=Etc/UTCENV RUN_OPTS=--config-from-environment
# Expose Quassel portEXPOSE 4242
# Volume for configuration and databaseVOLUME /configPush Your Repository to GitHub
Commit and push your Dockerfile to your GitHub repository.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project named “quassel-irc”.
Create a New App
Create a new app within your project and connect your GitHub repository.
Configure TCP Traffic
Quassel Core uses TCP for client connections:
Set Environment Variables
Configure the following environment variables:
| Variable | Value |
|---|---|
PUID | 1000 |
PGID | 1000 |
TZ | Your timezone (e.g., America/New_York) |
Attach Persistent Volumes
Add persistent storage for configuration and chat history:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/config | 10 GB | Configuration, database, and chat logs |
Deploy Your Application
Click Deploy to build and start your Quassel Core instance.
Initial Setup
On first connection from a Quassel client:
Connecting Clients
Desktop Clients
Download the Quassel Client from quassel-irc.org and configure:
- Host:
your-app-name.klutch.sh - Port:
4242 - Use SSL if configured
Mobile Clients
For mobile access, consider using:
- Quasseldroid for Android
- Third-party iOS clients with Quassel support
Additional Resources
- Official Quassel IRC Website
- Quassel Documentation
- Quassel GitHub Repository
- Klutch.sh Persistent Volumes
Conclusion
Deploying Quassel IRC on Klutch.sh provides a persistent IRC presence with 24/7 connectivity, complete chat history, and multi-device access. Never miss important IRC conversations again, and enjoy the flexibility of connecting from any device while maintaining a consistent presence on your favorite networks.