Overview
Discover what makes Request Tracker powerful
Request Tracker (RT) is a mature, open‑source ticketing engine written in **Perl** that has served enterprise help desks for over two decades. From a developer’s perspective, RT exposes a rich object‑oriented API (`RT::Ticket`, `RT::User`, etc.) that can be consumed programmatically via SOAP, REST, or direct Perl calls. The core logic lives in a set of CPAN modules that communicate with a relational database (MySQL, MariaDB, PostgreSQL, Oracle, or SQLite) using DBI. RT’s architecture is deliberately modular: the web front‑end is a FastCGI application that can run under Apache, Nginx, or any FastCGI‑capable server, while the business logic is isolated in Perl modules that can be extended or overridden.
Language & Runtime
Web Layer
Persistence
Extensibility
Overview
Request Tracker (RT) is a mature, open‑source ticketing engine written in Perl that has served enterprise help desks for over two decades. From a developer’s perspective, RT exposes a rich object‑oriented API (RT::Ticket, RT::User, etc.) that can be consumed programmatically via SOAP, REST, or direct Perl calls. The core logic lives in a set of CPAN modules that communicate with a relational database (MySQL, MariaDB, PostgreSQL, Oracle, or SQLite) using DBI. RT’s architecture is deliberately modular: the web front‑end is a FastCGI application that can run under Apache, Nginx, or any FastCGI‑capable server, while the business logic is isolated in Perl modules that can be extended or overridden.
Architecture
- Language & Runtime – Perl 5.26+ with DBI/DBD drivers for supported databases.
- Web Layer – FastCGI (via
mod_fcgidornginx‑fcgi) renders HTML templates written in Perl’sTemplate Toolkit. The UI is Bootstrap‑based, allowing developers familiar with modern CSS frameworks to tweak themes or build custom dashboards. - Persistence – A relational database stores all ticket, user, and workflow data. Full‑text indexing is optional but recommended for search performance.
- Extensibility – RT ships with a plugin system that hooks into events (
AfterTicketCreate,BeforeTicketUpdate, etc.) and can add new columns, actions, or UI components. Plugins are simple Perl modules that register callbacks viaRT::System->AddEventHandler. - APIs – REST endpoints (JSON) and SOAP are available for CRUD operations on tickets, queues, users, and custom fields. Developers can also embed RT objects directly in other Perl applications for tight integration.
Core Capabilities
- Lifecycle & Workflow Builder – Define ticket states, transitions, and automatic actions using a visual editor.
- Email Ingestion – RT parses inbound mail via its
maildaemon, supports multi‑recipient aliases, and can be configured to forward notifications. - Reporting & Charts – Built‑in charting uses JavaScript libraries; developers can expose custom metrics via the API.
- Security & Auditing – Fine‑grained ACLs, role‑based permissions, and an audit log that records every change to a ticket.
- Webhooks – Trigger external HTTP calls on events, enabling real‑time integrations with Slack, Jira, or custom services.
Deployment & Infrastructure
RT is designed for self‑hosting on Linux servers but also runs on Windows with Cygwin. It scales horizontally by clustering multiple FastCGI workers behind a load balancer; database replication (master‑slave or Galera) is recommended for high availability. Docker images are available on Docker Hub, allowing developers to spin up isolated environments quickly. The application’s statelessness (apart from the database) simplifies CI/CD pipelines and container orchestration.
Integration & Extensibility
Developers can extend RT through:
- Plugins – Add new UI panels, modify data models, or hook into lifecycle events.
- Custom REST endpoints – Subclass
RT::REST::V1to expose additional resources. - External Authentication – Integrate with LDAP, OAuth, or SAML via the authentication plug‑in system.
- Webhooks & Callbacks – Configure outbound HTTP requests for real‑time notifications.
Developer Experience
RT’s documentation is comprehensive, covering installation, configuration, and advanced customization. The community forum and public wiki provide a wealth of shared plugins and troubleshooting tips. Licensing under GPLv2 encourages open contribution, while the commercial support model offers paid extensions for enterprises needing guaranteed SLAs. Because RT is written in Perl, developers with legacy codebases can integrate ticketing without adopting a new language stack.
Use Cases
- Enterprise Help Desk – Centralized ticketing for IT, HR, and facilities with custom workflows.
- Project Management – Track tasks across teams using RT’s lifecycle builder and reporting tools.
- Compliance Tracking – Leverage audit logs and custom fields to meet regulatory requirements.
- Embedded Support in SaaS – Expose RT’s REST API to a front‑end built in React or Vue, providing seamless customer support within a product.
Advantages
RT offers unmatched flexibility for developers who need a fully programmable ticketing system. Its Perl foundation and modular plugin architecture allow deep customization, while the robust API surface enables integration with modern microservices. The open‑source license removes cost barriers, and the proven performance of RT in large deployments (thousands of tickets per day) makes it a reliable choice for mission‑critical environments.
Open SourceReady to get started?
Join the community and start self-hosting Request Tracker today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
WordPress
The world's most popular open‑source website builder
DocuSeal
Open‑source digital document signing and filling
AmuseWiki
Library‑oriented wiki engine for authoring, archiving and publishing
Zulip
Topic‑based team chat for live and async collaboration
Apprise
Unified notification library for all popular services
Gonic
Self-hosted Subsonic-compatible music server
