2 # WARNING: NEVER EDIT RT_Config.pm. Instead, copy any sections you want to change to RT_SiteConfig.pm
18 # {{{ Base Configuration
20 # $rtname the string that RT will look for in mail messages to
21 # figure out what ticket a new piece of mail belongs to
23 # Your domain name is recommended, so as not to pollute the namespace.
24 # once you start using a given tag, you should probably never change it.
25 # (otherwise, mail for existing tickets won't get put in the right place
27 Set($rtname , "example.com");
29 # You should set this to your organization's DNS domain. For example,
30 # fsck.com or asylum.arkham.ma.us. It's used by the linking interface to
31 # guarantee that ticket URIs are unique and easy to construct.
33 Set($Organization , "example.com");
35 # $user_passwd_min defines the minimum length for user passwords. Setting
36 # it to 0 disables this check
37 Set($MinimumPasswordLength , "5");
39 # $Timezone is used to convert times entered by users into GMT and back again
40 # It should be set to a timezone recognized by your local unix box.
41 Set($Timezone , 'US/Eastern');
45 # {{{ Database Configuration
47 # Database driver beeing used. Case matters
48 # Valid types are "mysql", "Oracle" and "Pg"
50 Set($DatabaseType , '@DB_TYPE@');
52 # The domain name of your database server
53 # If you're running mysql and it's on localhost,
54 # leave it blank for enhanced performance
55 Set($DatabaseHost , '@DB_HOST@');
56 Set($DatabaseRTHost , '@DB_RT_HOST@');
58 # The port that your database server is running on. Ignored unless it's
59 # a positive integer. It's usually safe to leave this blank
60 Set($DatabasePort , '@DB_PORT@');
62 #The name of the database user (inside the database)
63 Set($DatabaseUser , '@DB_RT_USER@');
65 # Password the DatabaseUser should use to access the database
66 Set($DatabasePassword , '@DB_RT_PASS@');
68 # The name of the RT's database on your database server
69 Set($DatabaseName , '@DB_DATABASE@');
71 # If you're using Postgres and have compiled in SSL support,
72 # set DatabaseRequireSSL to 1 to turn on SSL communication
73 Set($DatabaseRequireSSL , undef);
77 # {{{ Incoming mail gateway configuration
79 # OwnerEmail is the address of a human who manages RT. RT will send
80 # errors generated by the mail gateway to this address. This address
81 # should _not_ be an address that's managed by your RT instance.
83 Set($OwnerEmail , 'root');
85 # If $LoopsToRTOwner is defined, RT will send mail that it believes
86 # might be a loop to $RT::OwnerEmail
88 Set($LoopsToRTOwner , 1);
90 # If $StoreLoopss is defined, RT will record messages that it believes
91 # to be part of mail loops.
92 # As it does this, it will try to be careful not to send mail to the
93 # sender of these messages
95 Set($StoreLoops , undef);
97 # $MaxAttachmentSize sets the maximum size (in bytes) of attachments stored
100 # For mysql and oracle, we set this size at 10 megabytes.
101 # If you're running a postgres version earlier than 7.1, you will need
102 # to drop this to 8192. (8k)
104 Set($MaxAttachmentSize , 10000000);
106 # $TruncateLongAttachments: if this is set to a non-undef value,
107 # RT will truncate attachments longer than MaxAttachmentLength.
109 Set($TruncateLongAttachments , undef);
111 # $DropLongAttachments: if this is set to a non-undef value,
112 # RT will silently drop attachments longer than MaxAttachmentLength.
114 Set($DropLongAttachments , undef);
116 # If $ParseNewMessageForTicketCcs is true, RT will attempt to divine
117 # Ticket 'Cc' watchers from the To and Cc lines of incoming messages
118 # Be forewarned that if you have _any_ addresses which forward mail to
119 # RT automatically and you enable this option without modifying
120 # "RTAddressRegexp" below, you will get yourself into a heap of trouble.
122 Set($ParseNewMessageForTicketCcs , undef);
124 # RTAddressRegexp is used to make sure RT doesn't add itself as a ticket CC if
125 # the setting above is enabled.
127 Set($RTAddressRegexp , '^rt\@example.com$');
129 # RT provides functionality which allows the system to rewrite
130 # incoming email addresses. In its simplest form,
131 # you can substitute the value in CanonicalizeEmailAddressReplace
132 # for the value in CanonicalizeEmailAddressMatch
133 # (These values are passed to the CanonicalizeEmailAddress subroutine in RT/User.pm)
134 # By default, that routine performs a s/$Match/$Replace/gi on any address passed to it
136 Set($CanonicalizeEmailAddressMatch , 'subdomain.example.com$');
137 Set($CanonicalizeEmailAddressReplace , 'example.com');
139 # set this to true and the create new user page will use the values that you
140 # enter in the form but use the function CanonicalizeUserInfo in User_Local.pm
141 Set($CanonicalizeOnCreate , 0);
143 # If $SenderMustExistInExternalDatabase is true, RT will refuse to
144 # create non-privileged accounts for unknown users if you are using
145 # the "LookupSenderInExternalDatabase" option.
146 # Instead, an error message will be mailed and RT will forward the
147 # message to $RTOwner.
149 # If you are not using $LookupSenderInExternalDatabase, this option
152 # If you define an AutoRejectRequest template, RT will use this
153 # template for the rejection message.
155 Set($SenderMustExistInExternalDatabase , undef);
159 # {{{ Outgoing mail configuration
161 # RT is designed such that any mail which already has a ticket-id associated
162 # with it will get to the right place automatically.
164 # $CorrespondAddress and $CommentAddress are the default addresses
165 # that will be listed in From: and Reply-To: headers of correspondence
166 # and comment mail tracked by RT, unless overridden by a queue-specific
169 Set($CorrespondAddress , 'RT_CorrespondAddressNotSet');
171 Set($CommentAddress , 'RT_CommentAddressNotSet');
173 #Sendmail Configuration
175 # $MailCommand defines which method RT will use to try to send mail
176 # We know that 'sendmailpipe' works fairly well.
177 # If 'sendmailpipe' doesn't work well for you, try 'sendmail'
179 # Note that you should remove the '-t' from $SendmailArguments
180 # if you use 'sendmail rather than 'sendmailpipe'
182 Set($MailCommand , 'sendmailpipe');
184 # $SendmailArguments defines what flags to pass to $Sendmail
185 # assuming you picked 'sendmail' or 'sendmailpipe' as the $MailCommand above.
186 # If you picked 'sendmailpipe', you MUST add a -t flag to $SendmailArguments
188 # These options are good for most sendmail wrappers and workalikes
189 Set($SendmailArguments , "-oi -t");
191 # These arguments are good for sendmail brand sendmail 8 and newer
192 #Set($SendmailArguments,"-oi -t -ODeliveryMode=b -OErrorMode=m");
194 # If you selected 'sendmailpipe' above, you MUST specify the path
195 # to your sendmail binary in $SendmailPath.
196 # !! If you did not # select 'sendmailpipe' above, this has no effect!!
197 Set($SendmailPath , "/usr/sbin/sendmail");
199 # By default, RT sets the outgoing mail's "From:" header to
200 # "SenderName via RT". Setting this option to 0 disables it.
202 Set($UseFriendlyFromLine , 1);
204 # sprintf() format of the friendly 'From:' header; its arguments
205 # are SenderName and SenderEmailAddress.
206 Set($FriendlyFromLineFormat , "\"%s via RT\" <%s>");
208 # RT can optionally set a "Friendly" 'To:' header when sending messages to
209 # Ccs or AdminCcs (rather than having a blank 'To:' header.
211 # This feature DOES NOT WORK WITH SENDMAIL[tm] BRAND SENDMAIL
212 # If you are using sendmail, rather than postfix, qmail, exim or some other MTA,
213 # you _must_ disable this option.
215 Set($UseFriendlyToLine , 0);
217 # sprintf() format of the friendly 'From:' header; its arguments
218 # are WatcherType and TicketId.
219 Set($FriendlyToLineFormat, "\"%s of $RT::rtname Ticket #%s\":;");
221 # By default, RT doesn't notify the person who performs an update, as they
222 # already know what they've done. If you'd like to change this behaviour,
223 # Set $NotifyActor to 1
225 Set($NotifyActor, 0);
227 # By default, RT records each message it sends out to its own internal database.# To change this behaviour, set $RecordOutgoingEmail to 0
229 Set($RecordOutgoingEmail, 1);
235 # Logging. The default is to log anything except debugging
236 # information to syslog. Check the Log::Dispatch POD for
237 # information about how to get things by syslog, mail or anything
238 # else, get debugging info in the log, etc.
240 # It might generally make
241 # sense to send error and higher by email to some administrator.
242 # If you do this, be careful that this email isn't sent to this RT instance.
244 # the minimum level error that will be logged to the specific device.
245 # levels from lowest to highest:
246 # debug info notice warning error critical alert emergency
248 # Mail loops will generate a critical log message.
249 Set($LogToSyslog , 'debug');
250 Set($LogToScreen , 'error');
251 Set($LogToFile , undef);
252 Set($LogDir, '@RT_LOG_PATH@');
253 Set($LogToFileNamed , "rt.log"); #log to rt.log
255 # On Solaris or UnixWare, set to ( socket => 'inet' ). Options here
256 # override any other options RT passes to Log::Dispatch::Syslog.
257 # Other interesting flags include facility and logopt. (See the
258 # Log::Dispatch::Syslog documentation for more information.) (Maybe
259 # ident too, if you have multiple RT installations.)
261 @LogToSyslogConf = () unless (@LogToSyslogConf);
265 # {{{ Web interface configuration
267 # Define the directory name to be used for images in rt web
270 # If you're putting the web ui somewhere other than at the root of
272 # $WebPath requires a leading / but no trailing /
276 # This is the Scheme, server and port for constructing urls to webrt
277 # $WebBaseURL doesn't need a trailing /
279 Set($WebBaseURL , "http://RT::WebBaseURL.not.configured:80");
281 Set($WebURL , $WebBaseURL . $WebPath . "/");
283 # $WebImagesURL points to the base URL where RT can find its images.
285 Set($WebImagesURL , $WebPath . "/NoAuth/images/");
287 # $RTLogoURL points to the URL of the RT logo displayed in the web UI
289 Set($LogoURL , $WebImagesURL . "rt.jpg");
291 # WebNoAuthRegex - What portion of RT's URLspace should not require
293 Set($WebNoAuthRegex, qr!^(?:/+NoAuth/|
294 /+REST/\d+\.\d+/NoAuth/)!x );
296 # For message boxes, set the entry box width and what type of wrapping
300 Set($MessageBoxWidth , 72);
302 # Default wrapping: "HARD" (choices "SOFT", "HARD")
303 Set($MessageBoxWrap, "HARD");
305 # if TrustHTMLAttachments is not defined, we will display them
306 # as text. This prevents malicious HTML and javascript from being
307 # sent in a request (although there is probably more to it than that)
308 Set($TrustHTMLAttachments , undef);
311 # If PreferRichText is set to a true value, RT will show HTML/Rich text
312 # messages in preference to their plaintext alternatives. RT "scrubs" the
313 # html to show only a minimal subset of HTML to avoid possible contamination
314 # by cross-site-scripting attacks.
316 Set($PreferRichText, undef);
318 # If $WebExternalAuth is defined, RT will defer to the environment's
319 # REMOTE_USER variable.
321 Set($WebExternalAuth , undef);
323 # If $WebFallbackToInternalAuth is undefined, the user is allowed a chance
324 # of fallback to the login screen, even if REMOTE_USER failed.
326 Set($WebFallbackToInternalAuth , undef);
328 # $WebExternalGecos means to match 'gecos' field as the user identity);
329 # useful with mod_auth_pwcheck and IIS Integrated Windows logon.
331 Set($WebExternalGecos , undef);
333 # $WebExternalAuto will create users under the same name as REMOTE_USER
334 # upon login, if it's missing in the Users table.
336 Set($WebExternalAuto , undef);
338 # $WebSessionClass is the class you wish to use for managing Sessions.
339 # It defaults to use your SQL database, but if you are using MySQL 3.x and
340 # plans to use non-ascii Queue names, uncomment and add this line to
341 # RT_SiteConfig.pm will prevent session corruption.
343 # Set($WebSessionClass , 'Apache::Session::File');
345 # $MaxInlineBody is the maximum attachment size that we want to see
346 # inline when viewing a transaction. 13456 is a random sane-sounding
349 Set($MaxInlineBody, 13456);
351 # $MyTicketsLength is the length of the owned tickets table on the
352 # front page. For some people, the default of 10 isn't big enough
353 # to get a feel for how much work needs to be done before you get
356 Set($MyTicketsLength, 10);
358 # $MyRequestsLength is the length of the requested tickets table
361 Set($MyRequestsLength, 10);
363 # @MasonParameters is the list of parameters for the constructor of
364 # HTML::Mason's Apache or CGI Handler. This is normally only useful
365 # for debugging, eg. profiling individual components with
366 # (preamble => 'my $p = MasonX::Profiler->new($m, $r);');
368 @MasonParameters = () unless (@MasonParameters);
370 # $DefaultSearchResultFormat is the default format for RT search results
371 Set ($DefaultSearchResultFormat, qq{
372 '<B><A HREF="$RT::WebPath/Ticket/Display.html?id=__id__">__id__</a></B>/TITLE:#',
373 '<B><A HREF="$RT::WebPath/Ticket/Display.html?id=__id__">__Subject__</a></B>/TITLE:Subject',
380 '<small>__Requestors__</small>',
381 '<small>__CreatedRelative__</small>',
382 '<small>__ToldRelative__</small>',
383 '<small>__LastUpdatedRelative__</small>',
384 '<small>__TimeLeft__</small>'});
389 # {{{ RT UTF-8 Settings
391 # An array that contains languages supported by RT's internationalization
392 # interface. Defaults to all *.po lexicons; set it to qw(en ja) will make
393 # RT bilingual instead of multilingual, but will save same memory.
395 @LexiconLanguages = qw(*) unless (@LexiconLanguages);
397 # An array that contains default encodings used to guess which charset
398 # an attachment uses if not specified. Must be recognized by
401 @EmailInputEncodings = qw(utf-8 iso-8859-1 us-ascii) unless (@EmailInputEncodings);
403 # The charset for localized email. Must be recognized by Encode.
405 Set($EmailOutputEncoding , 'utf-8');
409 # {{{ RT Date Handling Options (for Time::ParseDate)
411 # Set this to 1 if your local date convention looks like "dd/mm/yy"
412 # instead of "mm/dd/yy".
414 Set($DateDayBeforeMonth , 1);
416 # Should "Tuesday" default to meaning "Next Tuesday" or "Last Tuesday"?
417 # Set to 0 for "Next" or 1 for "Last".
419 Set($AmbiguousDayInPast , 1);