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└── .dockerignoreCreating the Dockerfile
Create a Dockerfile in the root of your repository:
FROM netsandbox/request-tracker:latest
# Copy custom site configurationCOPY RT_SiteConfig.pm /opt/rt5/etc/RT_SiteConfig.pm
# Create necessary directoriesRUN 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 portEXPOSE 80
# The base image includes the default entrypointCreating 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
| Variable | Required | Description |
|---|---|---|
RT_WEB_DOMAIN | Yes | Your domain (e.g., your-app.klutch.sh) |
RT_DB_HOST | Yes | PostgreSQL host address |
RT_DB_PORT | No | Database port (default: 5432) |
RT_DB_NAME | No | Database name (default: rt5) |
RT_DB_USER | Yes | Database username |
RT_DB_PASSWORD | Yes | Database password |
RT_CORRESPOND_ADDRESS | No | Email for correspondence |
RT_OWNER_EMAIL | No | Admin email address |
RT_ORGANIZATION | No | Organization name |
Deploying Request Tracker on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 80
- Username:
root - Password:
password
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:
Set Environment Variables
Add the following environment variables:
| Variable | Value |
|---|---|
RT_WEB_DOMAIN | your-app.klutch.sh |
RT_DB_HOST | Your PostgreSQL host |
RT_DB_USER | Your database user |
RT_DB_PASSWORD | Your database password |
RT_ORGANIZATION | Your organization name |
Attach Persistent Volumes
Add the following volumes:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/opt/rt5/var | 10 GB | Attachments, 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:
Change these immediately after first login.
Initial Configuration
Post-Installation Setup
After logging in as root:
- Change the root password immediately
- Navigate to Admin > Global > RT at a glance to customize the homepage
- Create additional user accounts
Creating Queues
- Go to Admin > Queues > Create
- Set queue name and correspondence addresses
- Configure custom fields as needed
- Set up watchers and approvers
Configuring Email
- Set up mail gateway for incoming email
- Configure SMTP for outgoing notifications
- 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.