Request Tracker

From Alpine Linux
Revision as of 02:02, 27 June 2022 by Encode (talk | contribs) (Change link to Repositories page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This guide will get Request Tracker 4 setup working, with support for emails sent to an mlmmj mailing list to be inserted first into the ticket system, then sent on to mlmmj. It is intended for a HelpDesk-type deployment. This howto assumes that you have a working postfix setup already.

Note: This document has been tested on Alpine Linux 2.2.2, but contains some packages which are currently in the edge repository.
Note: Use a computer with at least 512MB of RAM.

Initial package installation and setup

  • add edge/main repository to /etc/apk/repositories

printf "" >> /etc/apk/repositories apk update

  • apk add lighttpd fcgi postgresql rt4 postfix postfix-pcre mlmmj

  • Edit /etc/lighttpd/lighttpd.conf and enable fastcgi
  • /etc/init.d/postgresql setup

  • /etc/init.d/postgresql start

  • su - postgres -c "createuser -P rt_user"

Enter password for new role: rtpass
Enter it again: rtpass
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) y

Setup RT4 environment

  • cp /etc/rt4/ /etc/rt4/

  • chmod 644 /etc/rt4/

  • Setup with proper queue name, link to your organization's homepage, support postgresql, set outbound email defaults.
    • /etc/rt4/
Set($rtname, 'support');
Set($Organization, '');
Set($WebDomain, '');
Set($OwnerEmail, '');
Set($LogoLinkURL, '');
Set($LogoAltText, ' Support');
# Set($LogoURL, );

Set($DatabaseType, 'Pg');
Set($DatabaseUser, 'rt_user');
Set($DatabasePassword, 'rtpass');
Set($DatabaseName, 'support_rt');

Set($LogToSyslog, 'warning');

Set($MailCommand, 'sendmailpipe');
Set($SendmailArguments , ' -oi -t');
Set($ParseNewMessageForTicketCCs, 1);
Set($UseTransactionBatch, 1);
Set($CorrespondAddress, '');
Set($CommentAddress, '');
Set($RecordOutgoingEmail, 0);
Set($ForwardFromUser, 1);
Set($SetOutgoingMailFrom, 1);
Set($FriendlyFromLineFormat, '"%s" <%s>');
  • /usr/sbin/rt-setup-database --action init --dba postgres

  • rt-server

  • Test and make sure that you can access rt using the built-in webserver first.
    • Tools -> Config -> Users -> Create
    • Username: Support-lists, Email:, etc -> Create
    • Tools -> Config -> Groups -> Create
    • Name: Support Users, etc -> Create
    • Tools -> Configuration -> Queues -> Create... Give it a name like 'support', and set to be both reply and comment addresses. Remember the name 'support' which you'll use in the next sections (including the email address)

Modify Postfix Configuration for RT4 and mlmmj

  • adduser mlmmj
  • mkdir /var/spool/mlmmj
  • -L support-list
  • Support sending bcc to list
    • touch /var/spool/mlmmj/support-list/control/tocc
  • Allow to send to list without being subscribed to it
    • mlmmj-sub -L /var/spool/mlmmj/support-list -a -n
  • Add to /etc/postfix/
rt4    unix  -       n       n       -       -       pipe flags=DORhu user=lighttpd argv=/usr/bin/rt-mailgate --queue $nexthop --action correspond --url
mlmmj  unix  -       n       n       -       -       pipe flags=DORhu user=mlmmj argv=/usr/bin/mlmmj-recieve -F -L /var/spool/mlmmj/$nexthop
  • Add to /etc/postfix/
myhostname =
mydomain =
relay_domains =
recipient_delimiter = +
transport_maps = hash:/etc/postfix/transport
  • Create /etc/postfix/transport (and run "postmap transport" after editing):        rt4:support   mlmmj:support-list     local:                error:No such mailbox.
  • Edit /etc/postfix/aliases for the postmaster alias (and run "newaliases")
  • Allow users to create tickets by email by checking all General Rights for group Everyone in Tools -> Configuration -> Global -> Group Rights

Lighttpd configuration

  • Stop rt-server
  • /etc/lightttpd/lighttpd.conf:
include "rt4.conf"
  • /etc/lighttpd/rt4.conf:
server.modules += ("mod_fastcgi")

$HTTP["host"] == "" {
        server.document-root = "/usr/share/rt4/html"
        index.file-names = ( "index.html" ) 

        fastcgi.server = ( "/" =>
                "bin-path"      => "/usr/sbin/rt-server.fcgi",
                "socket"        => "/var/run/lighttpd/rt4.socket",
                "check-local"   => "disable",
                "fix-root-scriptname" => "enable"
  • /etc/init.d/lighttpd start

Final RT4 configuration

  • Login to (your RT server)
    • Add AdminCC for Support Users to support queue
    • New template called 'Support Users Correspondence' (anyone you add to Support Users group will have their outbound email rewritten to 'Support Team' instead of their realname
  my $output = undef;
  my $groups = $Transaction->CreatorObj->OwnGroups();
  while( my $group = $groups->Next ) {
    my $queue = $Ticket->QueueObj;
    my $realname = $queue->Description;
    my $email = $queue->CorrespondAddress || RT->Config->Get('CorrespondAddress');
    $output = 'From: "' . $realname . '" <' . $email . '>' if $group->Name eq 'Support Team';
RT-Attach-Message: yes 

    • Edit Resolved template and add the following to the end:
 my $old_user = $Ticket->CurrentUser;
 $Ticket->CurrentUser( $RT::SystemUser );
 my $batch = $Ticket->TransactionBatch;
 my $comment;
 if( !$batch || !ref($batch) ) {
   $RT::Logger->info("TransactionBatch stage is disabled,
                     fallback to last comment.
                     Turn on TransactionBatch stages for acurate results.");
   my $transactions = $Ticket->Transactions;
   $transactions->Limit( FIELD => 'Type', VALUE => 'Comment' );
   $transactions->OrderByCols( { FIELD => 'Created',
                                 ORDER => 'DESC' },
                                 { FIELD => 'id',
                                   ORDER => 'DESC' } );
   $comment = $transactions->First;
 } else {
   $comment = (grep { ($_->Type eq 'Comment')? 1: 0;} @$batch)[0];
 $OUT = " ";
 if ( $comment ) {
   $OUT = "Resolution:\n";
   $OUT .= ("-"x76) ."\n";
   $OUT .= $comment->Content;
 $Ticket->CurrentUser( $old_user );
  • Test that inbound and outbound emails, creating tickets by email and replying to ticket emails works as expected:
    • Emails from end-users should be sent to
    • Those emails are either created as a new ticket in RT, or if the subject line contains a ticket ID, then it's inserted into the appropriate ticket
    • Ticket comments and correspondence will be sent on to, which is an mlmmj list, which can be subscribed to using
    • The RT4 web interface is available at

Upgrading RT

Upgrading the web interfaces should be easy as upgrading any Alpine package

apk add -u rt4

Now upgrade the database:

rt-setup-database --dba postgres --datadir /etc/rt4/upgrade --action upgrade

Answers to the questions asked.