Skip to content

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

    Create Your Dockerfile

    Create a Dockerfile in your repository:

    FROM lscr.io/linuxserver/quassel-core:latest
    # Environment variables
    ENV PUID=1000
    ENV PGID=1000
    ENV TZ=Etc/UTC
    ENV RUN_OPTS=--config-from-environment
    # Expose Quassel port
    EXPOSE 4242
    # Volume for configuration and database
    VOLUME /config

    Push 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:

    • Select TCP as the traffic type
    • Set the internal port to 4242

    Set Environment Variables

    Configure the following environment variables:

    VariableValue
    PUID1000
    PGID1000
    TZYour timezone (e.g., America/New_York)

    Attach Persistent Volumes

    Add persistent storage for configuration and chat history:

    Mount PathRecommended SizePurpose
    /config10 GBConfiguration, 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:

    1. Connect to your Klutch.sh app URL on port 4242
    2. Create an admin user when prompted
    3. Configure your IRC networks and channels

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

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.