MCPSERV.CLUB
Request Tracker

Request Tracker

Self-Hosted

Enterprise‑grade ticketing and issue tracking

Active(100)
1.1kstars
0views
Updated 2 days ago
Request Tracker screenshot

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_fcgid or nginx‑fcgi) renders HTML templates written in Perl’s Template 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 via RT::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 mail daemon, 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::V1 to 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