Skip to content

Deploying Request Tracker

Introduction

Request Tracker (RT) is an enterprise-grade issue tracking system developed by Best Practical Solutions. Used by organizations worldwide including NASA and major universities, RT handles everything from IT help desk tickets to complex project workflows. Its powerful features and extensive customization options make it suitable for organizations of any size.

Key highlights of Request Tracker:

  • Enterprise-Grade: Battle-tested by thousands of organizations worldwide
  • Flexible Workflows: Customizable ticket lifecycles and approval processes
  • Email Integration: Create and update tickets via email automatically
  • Custom Fields: Extend tickets with organization-specific data
  • Powerful Search: Full-text search with saved searches and dashboards
  • SLA Management: Track and enforce service level agreements
  • Asset Tracking: Integrated asset management capabilities
  • LDAP/AD Integration: Enterprise authentication support
  • REST API: Comprehensive API for automation and integrations
  • Extensive Customization: Callbacks, overlays, and custom code support
  • Open Source: GPL-licensed with commercial support available

This guide walks through deploying Request Tracker on Klutch.sh using Docker, configuring the database, and setting up email integration.

Why Deploy Request Tracker on Klutch.sh

Deploying Request Tracker on Klutch.sh provides several advantages:

Simplified Deployment: Klutch.sh automatically builds and deploys RT from a Dockerfile without complex Perl environment setup.

Persistent Storage: Attach persistent volumes for attachments, session data, and logs that survive container restarts.

HTTPS by Default: Klutch.sh provides automatic SSL certificates for secure ticket management.

Environment Variable Management: Securely store database credentials and secret keys through Klutch.sh.

Custom Domains: Assign a custom domain for professional customer-facing support portals.

Prerequisites

Before deploying Request Tracker on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your RT configuration
  • An external database (PostgreSQL recommended, MySQL also supported)
  • (Optional) SMTP server for email notifications
  • Basic familiarity with Docker

Preparing Your Repository

Create a GitHub repository containing your Dockerfile for Request Tracker deployment.

Repository Structure

request-tracker-deploy/
├── Dockerfile
├── RT_SiteConfig.pm
└── .dockerignore

Creating the Dockerfile

Create a Dockerfile in the root of your repository:

FROM netsandbox/request-tracker:latest
# Copy custom site configuration
COPY RT_SiteConfig.pm /opt/rt5/etc/RT_SiteConfig.pm
# Create necessary directories
RUN mkdir -p /opt/rt5/var/data/gpg \
&& mkdir -p /opt/rt5/var/data/smime \
&& chown -R www-data:www-data /opt/rt5/var
# Expose the web interface port
EXPOSE 80
# The base image includes the default entrypoint

Creating RT_SiteConfig.pm

Create a site configuration file:

Set($WebDomain, $ENV{'RT_WEB_DOMAIN'} || 'localhost');
Set($WebPort, 443);
Set($WebBaseURL, "https://" . RT->Config->Get('WebDomain'));
Set($DatabaseType, 'Pg');
Set($DatabaseHost, $ENV{'RT_DB_HOST'});
Set($DatabasePort, $ENV{'RT_DB_PORT'} || '5432');
Set($DatabaseName, $ENV{'RT_DB_NAME'} || 'rt5');
Set($DatabaseUser, $ENV{'RT_DB_USER'});
Set($DatabasePassword, $ENV{'RT_DB_PASSWORD'});
Set($CorrespondAddress, $ENV{'RT_CORRESPOND_ADDRESS'} || 'support@example.com');
Set($CommentAddress, $ENV{'RT_COMMENT_ADDRESS'} || 'support-comment@example.com');
Set($OwnerEmail, $ENV{'RT_OWNER_EMAIL'} || 'admin@example.com');
Set($Organization, $ENV{'RT_ORGANIZATION'} || 'My Organization');
Set($Timezone, $ENV{'RT_TIMEZONE'} || 'UTC');
1;

Environment Variables Reference

VariableRequiredDescription
RT_WEB_DOMAINYesYour domain (e.g., your-app.klutch.sh)
RT_DB_HOSTYesPostgreSQL host address
RT_DB_PORTNoDatabase port (default: 5432)
RT_DB_NAMENoDatabase name (default: rt5)
RT_DB_USERYesDatabase username
RT_DB_PASSWORDYesDatabase password
RT_CORRESPOND_ADDRESSNoEmail for correspondence
RT_OWNER_EMAILNoAdmin email address
RT_ORGANIZATIONNoOrganization name

Deploying Request Tracker on Klutch.sh

    Push Your Repository to GitHub

    Commit and push your Dockerfile and configuration to GitHub.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project with a descriptive name like “request-tracker” or “helpdesk”.

    Create a New App

    Within your project, create a new app. Connect your GitHub account and select the repository containing your RT Dockerfile.

    Configure HTTP Traffic

    In the deployment settings:

    • Select HTTP as the traffic type
    • Set the internal port to 80

    Set Environment Variables

    Add the following environment variables:

    VariableValue
    RT_WEB_DOMAINyour-app.klutch.sh
    RT_DB_HOSTYour PostgreSQL host
    RT_DB_USERYour database user
    RT_DB_PASSWORDYour database password
    RT_ORGANIZATIONYour organization name

    Attach Persistent Volumes

    Add the following volumes:

    Mount PathRecommended SizePurpose
    /opt/rt5/var10 GBAttachments, sessions, and data

    Deploy Your Application

    Click Deploy to start the build process.

    Access Request Tracker

    Once deployment completes, access RT at your app URL. Default credentials:

    • Username: root
    • Password: password

    Change these immediately after first login.

Initial Configuration

Post-Installation Setup

After logging in as root:

  1. Change the root password immediately
  2. Navigate to Admin > Global > RT at a glance to customize the homepage
  3. Create additional user accounts

Creating Queues

  1. Go to Admin > Queues > Create
  2. Set queue name and correspondence addresses
  3. Configure custom fields as needed
  4. Set up watchers and approvers

Configuring Email

  1. Set up mail gateway for incoming email
  2. Configure SMTP for outgoing notifications
  3. Create scrips for automated actions

Additional Resources

Conclusion

Deploying Request Tracker on Klutch.sh gives you an enterprise-grade ticket management system with automatic builds, persistent storage, and secure HTTPS access. RT’s powerful customization options and proven track record make it an excellent choice for organizations needing reliable issue tracking and workflow management.