comparison doc/tracker_config.txt @ 7920:6aa0525187cd

doc: use generated config.ini in reference.txt Deleted the manually maintained config.ini reference items. Lost a few nice index references along the way but... Updated configuration.py with longer descriptions from the manually maintained items where appropriate. Checking in the generated tracker_config.txt and the Makefile used to generate the config and the man pages and then generate local documentation using setup.py build_docs.
author John Rouillard <rouilj@ieee.org>
date Mon, 29 Apr 2024 04:17:10 -0400
parents
children 83a531e72e3e
comparison
equal deleted inserted replaced
7919:e3b34d02c61a 7920:6aa0525187cd
1
2 .. index:: config.ini; sections main
3
4 .. code:: ini
5
6 [main]
7
8 # Database directory path.
9 # The path may be either absolute or relative
10 # to the directory containing this config file.
11 # Default: db
12 database = db
13
14 # Templating engine to use.
15 # Possible values are:
16 # 'zopetal' for the old TAL engine ported from Zope,
17 # 'chameleon' for Chameleon,
18 # 'jinja2' for jinja2 templating.
19 # Available found jinja2 module.
20 # Default: zopetal
21 template_engine = zopetal
22
23 # Path to the HTML templates directory.
24 # The path may be either absolute or relative
25 # to the directory containing this config file.
26 # Default: html
27 templates = html
28
29 # A list of space separated directory paths (or a single
30 # directory). These directories hold additional public
31 # static files available via Web UI. These directories
32 # may contain sitewide images, CSS stylesheets etc. If a
33 # '-' is included, the list processing ends and the
34 # TEMPLATES directory is not searched after the specified
35 # directories. If this option is not set, all static
36 # files are taken from the TEMPLATES directory. Access to
37 # these files is public, it is not checked against
38 # registered users. So do not put any sensitive data in
39 # the files in these directories.
40 # The space separated paths may be either absolute
41 # or relative to the directory containing this config file.
42 # Default:
43 static_files =
44
45 # Email address that roundup will complain to if it runs
46 # into trouble.
47 # If no domain is specified then the config item
48 # mail -> domain is added.
49 # Default: roundup-admin
50 admin_email = roundup-admin
51
52 # The 'dispatcher' is a role that can get notified
53 # when errors occur while sending email to a user.
54 # It is used by the ERROR_MESSAGES_TO config setting.
55 # If no domain is specified then the config item
56 # mail -> domain is added.
57 # Default: roundup-admin
58 dispatcher_email = roundup-admin
59
60 # Additional text to include in the "name" part
61 # of the From: address used in nosy messages.
62 # If the sending user is "Foo Bar", the From: line
63 # is usually: "Foo Bar" <issue_tracker@tracker.example>
64 # the EMAIL_FROM_TAG goes inside the "Foo Bar" quotes like so:
65 # "Foo Bar EMAIL_FROM_TAG" <issue_tracker@tracker.example>
66 # Default:
67 email_from_tag =
68
69 # Roles that a user gets when they register
70 # with Web User Interface.
71 # This is a comma-separated string of role names
72 # (e.g. 'Admin,User').
73 # Default: User
74 new_web_user_roles = User
75
76 # Roles that a user gets when they register
77 # with Email Gateway.
78 # This is a comma-separated string of role names
79 # (e.g. 'Admin,User').
80 # Default: User
81 new_email_user_roles = User
82
83 # On schema changes, properties or classes in the history may
84 # become obsolete. Since normal access permissions do not apply
85 # (we don't know if a user should see such a property or class)
86 # a list of roles is specified here that are allowed to see
87 # these obsolete properties in the history. By default only the
88 # admin role may see these history entries, you can make them
89 # visible to all users by adding, e.g., the 'User' role here.
90 # Default: Admin
91 obsolete_history_roles = Admin
92
93 # Send error message emails to the "dispatcher", "user",
94 # or "both" (these are the three allowed values).
95 # The dispatcher is configured using the DISPATCHER_EMAIL
96 # setting.
97 # Default: user
98 error_messages_to = user
99
100 # This setting should be left at the default value of html4.
101 # Support is ending for xhtml mode.
102 # HTML version to generate. The templates are html4 by default.
103 # If you wish to make them xhtml, then you'll need to change
104 # this setting to 'xhtml' too so all auto-generated HTML
105 # is compliant.
106 # Allowed values: html4, xhtml
107 # Default: html4
108 html_version = html4
109
110 # Default timezone offset,
111 # applied when user's timezone is not set.
112 # If pytz module is installed, value may be any valid
113 # timezone specification (e.g. EET or Europe/Warsaw).
114 # If pytz is not installed, value must be integer number
115 # giving local timezone offset from UTC in hours.
116 # Default: UTC
117 timezone = UTC
118
119 # Register new users instantly, or require confirmation via
120 # email?
121 # Allowed values: yes, no
122 # Default: no
123 instant_registration = no
124
125 # Offer registration confirmation by email or only
126 # through the web?
127 # Allowed values: yes, no
128 # Default: yes
129 email_registration_confirmation = yes
130
131 # Force Roundup to use a particular text indexer.
132 # If no indexer is supplied, the first available indexer
133 # will be used in the following order:
134 # Possible values: xapian, whoosh, native (internal), native-fts.
135 # Note 'native-fts' will only be used if set.
136 # Allowed values: '', 'xapian', 'whoosh', 'native', 'native-fts'
137 # Default:
138 indexer =
139
140 # Used to determine what language should be used by the
141 # indexer above. Applies to Xapian and PostgreSQL native-fts
142 # indexer. It sets the language for the stemmer, and PostgreSQL
143 # native-fts stopwords and other dictionaries.
144 # Possible values: must be a valid language for the indexer,
145 # see indexer documentation for details.
146 # Default: english
147 indexer_language = english
148
149 # Additional stop-words for the full-text indexer specific to
150 # your tracker. See the indexer source for the default list of
151 # stop-words (eg. A,AND,ARE,AS,AT,BE,BUT,BY, ...). This is
152 # not used by the postgres native-fts indexer. But is used to
153 # filter search terms with the sqlite native-fts indexer.
154 # Allowed values: comma-separated list of words
155 # Default:
156 indexer_stopwords =
157
158 # Defines the file creation mode mask.
159 # Default: 0o2
160 umask = 0o2
161
162 # Maximum size of a csv-field during import. Roundups export
163 # format is a csv (comma separated values) variant. The csv
164 # reader has a limit on the size of individual fields
165 # starting with python 2.5. Set this to a higher value if you
166 # get the error 'Error: field larger than field limit' during
167 # import.
168 # Default: 131072
169 csv_field_size = 131072
170
171 # Sets the default number of rounds used when encoding passwords
172 # using the PBKDF2 scheme. Set this to a higher value on faster
173 # systems which want more security.
174 # PBKDF2 (Password-Based Key Derivation Function) is a
175 # password hashing mechanism that derives hash from the
176 # password and a random salt. For authentication this process
177 # is repeated with the same salt as in the stored hash.
178 # If both hashes match, the authentication succeeds.
179 # PBKDF2 supports a variable 'rounds' parameter which varies
180 # the time-cost of calculating the hash - doubling the number
181 # of rounds doubles the cpu time required to calculate it. The
182 # purpose of this is to periodically adjust the rounds as CPUs
183 # become faster. The currently enforced minimum number of
184 # rounds is 1000.
185 # See: http://en.wikipedia.org/wiki/PBKDF2 and RFC2898
186 # Default: 2000000
187 password_pbkdf2_default_rounds = 2000000
188
189 .. index:: config.ini; sections tracker
190
191 .. code:: ini
192
193 [tracker]
194
195 # A descriptive name for your roundup instance.
196 # Default: Roundup issue tracker
197 name = Roundup issue tracker
198
199 # The web address that the tracker is viewable at.
200 # This will be included in information
201 # sent to users of the tracker.
202 # The URL MUST include the cgi-bin part or anything else
203 # that is required to get to the home page of the tracker.
204 # URL MUST start with http/https scheme and end with '/'
205 # Default: NO DEFAULT
206 #web = NO DEFAULT
207
208 # Email address that mail to roundup should go to.
209 # If no domain is specified then mail_domain is added.
210 # Default: issue_tracker
211 email = issue_tracker
212
213 # Controls the reply-to header address used when sending
214 # nosy messages.
215 # If the value is unset (default) the roundup tracker's
216 # email address (above) is used.
217 # If set to "AUTHOR" then the primary email address of the
218 # author of the change will be used as the reply-to
219 # address. This allows email exchanges to occur outside of
220 # the view of roundup and exposes the address of the person
221 # who updated the issue, but it could be useful in some
222 # unusual circumstances.
223 # If set to some other value, the value is used as the reply-to
224 # address. It must be a valid RFC2822 address or people will not
225 # be able to reply.
226 # Default:
227 replyto_address =
228
229 # Default locale name for this tracker.
230 # If this option is not set, the language is determined
231 # by OS environment variable LANGUAGE, LC_ALL, LC_MESSAGES,
232 # or LANG, in that order of preference.
233 # Default:
234 language =
235
236 .. index:: config.ini; sections web
237
238 .. code:: ini
239
240 [web]
241
242 # Setting this option enables Roundup to serve uploaded HTML
243 # file content *as HTML*. This is a potential security risk
244 # and is therefore disabled by default. Set to 'yes' if you
245 # trust *all* users uploading content to your tracker.
246 # Allowed values: yes, no
247 # Default: no
248 allow_html_file = no
249
250 # Whether to use HTTP Basic Authentication, if present.
251 # Roundup will use either the REMOTE_USER (the value set
252 # by http_auth_header) or HTTP_AUTHORIZATION
253 # variables supplied by your web server (in that order).
254 # Set this option to 'no' if you do not wish to use HTTP Basic
255 # Authentication in your web interface.
256 # Allowed values: yes, no
257 # Default: yes
258 http_auth = yes
259
260 # The HTTP header that holds the user authentication information.
261 # If empty (default) the REMOTE_USER header is used.
262 # This is used when the upstream HTTP server authenticates
263 # the user and passes the username using this HTTP header.
264 # Default:
265 http_auth_header =
266
267 # Setting this option makes roundup look at the Accept-Encoding
268 # header supplied by the client. It will compress the response
269 # on the fly using a common encoding. Disable it if your
270 # upstream server does compression of dynamic data.
271 # Allowed values: yes, no
272 # Default: yes
273 dynamic_compression = yes
274
275 # Setting this option enables Roundup to serve precompressed
276 # static files. The admin must create the compressed files with
277 # proper extension (.gzip, .br, .zstd) in the same directory as
278 # the uncompressed file. If a precompressed file doesn't
279 # exist, the uncompressed file will be served possibly with
280 # dynamic compression.
281 # Allowed values: yes, no
282 # Default: no
283 use_precompressed_files = no
284
285 # If usernames consist of a name and a domain/realm part of
286 # the form user@realm and we're using REMOTE_USER for
287 # authentication (e.g. via Kerberos), convert the realm part
288 # of the incoming REMOTE_USER to lowercase before matching
289 # against the roundup username. This allows roundup usernames
290 # to be lowercase (including the realm) and still follow the
291 # Kerberos convention of using an uppercase realm. In
292 # addition this is compatible with Active Directory which
293 # stores the username with realm as UserPrincipalName in
294 # lowercase.
295 # Allowed values: yes, no
296 # Default: no
297 http_auth_convert_realm_to_lowercase = no
298
299 # If the http_auth option is in effect (see above)
300 # we're accepting a REMOTE_USER variable resulting from
301 # an authentication mechanism implemented in the web-server,
302 # e.g., Kerberos login or similar. To override the mechanism
303 # provided by the web-server (e.g. for enabling sub-login as
304 # another user) we tell roundup that the cookie takes
305 # precedence over a REMOTE_USER or HTTP_AUTHORIZATION
306 # variable. So if both, a cookie and a REMOTE_USER is
307 # present, the cookie wins.
308 #
309 # Allowed values: yes, no
310 # Default: no
311 cookie_takes_precedence = no
312
313 # Limit login attempts per user per minute to this number.
314 # By default the 4th login attempt in a minute will notify
315 # the user that they need to wait 20 seconds before trying to
316 # log in again. This limits password guessing attacks and
317 # shouldn't need to be changed. Rate limiting on login can
318 # be disabled by setting the value to 0.
319 # Default: 3
320 login_attempts_min = 3
321
322 # The number of seconds needed to complete the new user
323 # registration form. This limits the rate at which bots
324 # can attempt to sign up. Limit can be disabled by setting
325 # the value to 0.
326 # Default: 4
327 registration_delay = 4
328
329 # When registering a user, check that the username
330 # is available before sending confirmation email.
331 # Usually a username conflict is detected when
332 # confirming the registration. Disabled by default as
333 # it can be used for guessing existing usernames.
334 #
335 # Allowed values: yes, no
336 # Default: no
337 registration_prevalidate_username = no
338
339 # Set the mode of the SameSite cookie option for
340 # the session cookie. Choices are 'Lax' or
341 # 'Strict'. 'None' can be used to suppress the
342 # option. Strict mode provides additional security
343 # against CSRF attacks, but may confuse users who
344 # are logged into roundup and open a roundup link
345 # from a source other than roundup (e.g. link in
346 # email).
347 # Allowed values: Strict, Lax, None
348 # Default: Lax
349 samesite_cookie_setting = Lax
350
351 # Whether to enable the XMLRPC API in the roundup web
352 # interface. By default the XMLRPC endpoint is the string
353 # 'xmlrpc' after the roundup web url configured in the
354 # 'tracker' section. If this variable is set to 'no', the
355 # xmlrpc path has no special meaning and will yield an
356 # error message.
357 # Allowed values: yes, no
358 # Default: yes
359 enable_xmlrpc = yes
360
361 # Whether to enable i18n for the xmlrpc endpoint. Enable it if
362 # you want to enable translation based on browsers lang
363 # (if enabled), trackers lang (if set) or environment.
364 # Allowed values: yes, no
365 # Default: no
366 translate_xmlrpc = no
367
368 # Whether to enable the REST API in the roundup web
369 # interface. By default the REST endpoint is the string
370 # 'rest' plus any additional REST-API parameters after the
371 # roundup web url configured in the tracker section. If this
372 # variable is set to 'no', the rest path has no special meaning
373 # and will yield an error message.
374 # Allowed values: yes, no
375 # Default: yes
376 enable_rest = yes
377
378 # Whether to enable i18n for the rest endpoint. Enable it if
379 # you want to enable translation based on browsers lang
380 # (if enabled), trackers lang (if set) or environment.
381 # Allowed values: yes, no
382 # Default: no
383 translate_rest = no
384
385 # Log-Level for REST errors.
386 # Allowed values: none, debug, info, warning, error, critical
387 # Default: none
388 rest_logging = none
389
390 # Limit API calls per api_interval_in_sec seconds to
391 # this number.
392 # Determines the burst rate and the rate that new api
393 # calls will be made available. If set to 360 and
394 # api_intervals_in_sec is set to 3600, the 361st call in
395 # 10 seconds results in a 429 error to the caller. It
396 # tells them to wait 10 seconds (3600/360) before making
397 # another api request. A value of 0 turns off rate
398 # limiting in the API. Tune this as needed. See rest
399 # documentation for more info.
400 #
401 # Default: 0
402 api_calls_per_interval = 0
403
404 # Defines the interval in seconds over which an api client can
405 # make api_calls_per_interval api calls. Tune this as needed.
406 #
407 # Default: 3600
408 api_interval_in_sec = 3600
409
410 # Limit login failure to the API per api_failed_login_interval_in_sec
411 # seconds.
412 # A value of 0 turns off failed login rate
413 # limiting in the API. You should not disable this. See rest
414 # documentation for more info.
415 #
416 # Default: 4
417 api_failed_login_limit = 4
418
419 # Defines the interval in seconds over which api login failures
420 # are recorded. It allows api_failed_login_limit login failures
421 # in this time interval. Tune this as needed.
422 #
423 # Default: 600
424 api_failed_login_interval_in_sec = 600
425
426 # How do we deal with @csrf fields in posted forms.
427 # Set this to 'required' to block the post and notify
428 # the user if the field is missing or invalid.
429 # Set this to 'yes' to block the post and notify the user
430 # if the token is invalid, but accept the form if
431 # the field is missing.
432 # Set this to 'logfailure' to log a notice to the roundup
433 # log if the field is invalid or missing, but accept
434 # the post.
435 # Set this to 'no' to ignore the field and accept the post.
436 #
437 # Allowed values: required, yes, logfailure, no
438 # Default: yes
439 csrf_enforce_token = yes
440
441 # csrf_tokens have a limited lifetime. If they are not
442 # used they are purged from the database after this
443 # number of minutes. Default (20160) is 2 weeks.
444 # Default: 20160
445 csrf_token_lifetime = 20160
446
447 # This is only used for xmlrpc and rest requests. This test is
448 # done after Origin and Referer headers are checked. It only
449 # verifies that the X-Requested-With header exists. The value
450 # is ignored.
451 # Set this to 'required' to block the post and notify
452 # the user if the header is missing or invalid.
453 # Set this to 'yes' is the same as required.
454 # Set this to 'logfailure' is the same as 'no'.
455 # Set this to 'no' to ignore the header and accept the post.
456 # Allowed values: required, yes, logfailure, no
457 # Default: yes
458 csrf_enforce_header_x-requested-with = yes
459
460 # Verify that the Referer http header matches the
461 # tracker.web setting in config.ini.
462 # Set this to 'required' to block the post and notify
463 # the user if the header is missing or invalid.
464 # Set this to 'yes' to block the post and notify the user
465 # if the header is invalid, but accept the form if
466 # the field is missing.
467 # Set this to 'logfailure' to log a notice to the roundup
468 # log if the header is invalid or missing, but accept
469 # the post.
470 # Set this to 'no' to ignore the header and accept the post.
471 # Allowed values: required, yes, logfailure, no
472 # Default: yes
473 csrf_enforce_header_referer = yes
474
475 # Verify that the Origin http header matches the
476 # tracker.web setting in config.ini.
477 # Set this to 'required' to block the post and notify
478 # the user if the header is missing or invalid.
479 # Set this to 'yes' to block the post and notify the user
480 # if the header is invalid, but accept the form if
481 # the field is missing.
482 # Set this to 'logfailure' to log a notice to the roundup
483 # log if the header is invalid or missing, but accept
484 # the post.
485 # Set this to 'no' to ignore the header and accept the post.
486 # Allowed values: required, yes, logfailure, no
487 # Default: yes
488 csrf_enforce_header_origin = yes
489
490 # A comma separated list of additonal valid Origin header
491 # values used when enforcing the header origin. They are used
492 # only for the api URL's (/rest and /xmlrpc). They are not
493 # used for the usual html URL's. These strings must match the
494 # value of the Origin header exactly. So 'https://bar.edu' and
495 # 'https://Bar.edu' are two different Origin values. Note that
496 # the origin value is scheme://host. There is no path
497 # component. So 'https://bar.edu/' would never be valid.
498 # The value '*' can be used to match any origin. It must be
499 # first in the list if used. Note that this value allows
500 # any web page on the internet to make anonymous requests
501 # against your Roundup tracker.
502 #
503 # You need to set these if you have a web application on a
504 # different origin accessing your Roundup instance.
505 #
506 # (The origin from the tracker.web setting in config.ini is
507 # always valid and does not need to be specified.)
508 # A list of space separated case sensitive
509 # origin headers 'scheme://host'.
510 # Default:
511 allowed_api_origins =
512
513 # Verify that the X-Forwarded-Host http header matches
514 # the host part of the tracker.web setting in config.ini.
515 # Set this to 'required' to block the post and notify
516 # the user if the header is missing or invalid.
517 # Set this to 'yes' to block the post and notify the user
518 # if the header is invalid, but accept the form if
519 # the field is missing.
520 # Set this to 'logfailure' to log a notice to the roundup
521 # log if the header is invalid or missing, but accept
522 # the post.
523 # Set this to 'no' to ignore the header and accept the post.
524 # Allowed values: required, yes, logfailure, no
525 # Default: yes
526 csrf_enforce_header_x-forwarded-host = yes
527
528 # "If there is no X-Forward-Host header, verify that
529 # the Host http header matches the host part of the
530 # tracker.web setting in config.ini.
531 # Set this to 'required' to block the post and notify
532 # the user if the header is missing or invalid.
533 # Set this to 'yes' to block the post and notify the user
534 # if the header is invalid, but accept the form if
535 # the field is missing.
536 # Set this to 'logfailure' to log a notice to the roundup
537 # log if the header is invalid or missing, but accept
538 # the post.
539 # Set this to 'no' to ignore the header and accept the post.
540 # Allowed values: required, yes, logfailure, no
541 # Default: yes
542 csrf_enforce_header_host = yes
543
544 # Minimum number of header checks that must pass
545 # to accept the request. Set to 0 to accept post
546 # even if no header checks pass. Usually the Host header check
547 # always passes, so setting it less than 1 is not recommended.
548 # Default: 1
549 csrf_header_min_count = 1
550
551 # Whether to use HTTP Accept-Language, if present.
552 # Browsers send a language-region preference list.
553 # It's usually set in the client's browser or in their
554 # Operating System.
555 # Set this option to 'no' if you want to ignore it.
556 # Allowed values: yes, no
557 # Default: yes
558 use_browser_language = yes
559
560 # Setting this option makes Roundup display error tracebacks
561 # in the user's browser rather than emailing them to the
562 # tracker admin.
563 # Allowed values: yes, no
564 # Default: no
565 debug = no
566
567 # Setting this option to yes/true allows users with
568 # an empty/blank password to login to the
569 # web/http interfaces.
570 # Allowed values: yes, no
571 # Default: no
572 login_empty_passwords = no
573
574 # Setting this option makes Roundup migrate passwords with
575 # an insecure password-scheme to a more secure scheme
576 # when the user logs in via the web-interface.
577 # Allowed values: yes, no
578 # Default: yes
579 migrate_passwords = yes
580
581 # A per tracker secret used in etag calculations for
582 # an object. It must not be empty.
583 # It prevents reverse engineering hidden data in an object
584 # by calculating the etag for a sample object. Then modifying
585 # hidden properties until the sample object's etag matches
586 # the one returned by roundup.
587 # Changing this changes the etag and invalidates updates by
588 # clients. It must be persistent across application restarts.
589 # (Note the default value changes every time
590 # roundup-admin updateconfig
591 # is run, so it must be explicitly set to a non-empty string.
592 #
593 # A string that starts with 'file://' is interpreted
594 # as a file path relative to the tracker home. Using
595 # 'file:///' defines an absolute path. The first
596 # line of the file will be used as the value. Any
597 # string that does not start with 'file://' is used
598 # as is. It removes any whitespace at the end of the
599 # line, so a newline can be put in the file.
600 #
601 # Default: 3CpCdT9GrdQv7SCn24DTIQTwAoBguqhAopZnXRZA38w=
602 secret_key = 3CpCdT9GrdQv7SCn24DTIQTwAoBguqhAopZnXRZA38w=
603
604 # This is used to sign/validate json web tokens
605 # (JWT). Even if you don't use JWTs it must not be
606 # empty. You can use multiple secrets separated by a
607 # comma ','. This allows for secret rotation. The newest
608 # secret should be placed first and used for signing. The
609 # rest of the secrets are used for validating an old JWT.
610 # If the first secret is less than 256 bits (32
611 # characters) in length JWTs are disabled. If other secrets
612 # are less than 32 chars, the application will exit. Removing
613 # a secret from this list invalidates all JWTs signed with
614 # the secret. JWT support is experimental and disabled by
615 # default. The secrets must be persistent across
616 # application restarts.
617 #
618 # A string that starts with 'file://' is interpreted
619 # as a file path relative to the tracker home. Using
620 # 'file:///' defines an absolute path. The first
621 # line of the file will be used as the value. Any
622 # string that does not start with 'file://' is used
623 # as is. It removes any whitespace at the end of the
624 # line, so a newline can be put in the file.
625 #
626 # Default: disabled
627 jwt_secret = disabled
628
629 .. index:: config.ini; sections rdbms
630
631 .. code:: ini
632
633 # Settings in this section (except for backend) are used
634 # by RDBMS backends only.
635 [rdbms]
636
637 # Database backend.
638 # Available backends: anydbm, mysql, sqlite, postgresql
639 # Default: NO DEFAULT
640 #backend = NO DEFAULT
641
642 # Name of the database to use. For Postgresql, this can
643 # be database.schema to use a specific schema within
644 # a Postgres database.
645 # Default: roundup
646 name = roundup
647
648 # Database server host.
649 # Default: localhost
650 host = localhost
651
652 # TCP port number of the database server.
653 # Postgresql usually resides on port 5432 (if any),
654 # for MySQL default port number is 3306.
655 # Leave this option empty to use backend default
656 # Default:
657 port =
658
659 # Database user name that Roundup should use.
660 # Default: roundup
661 user = roundup
662
663 # Database user password.
664 # A string that starts with 'file://' is interpreted
665 # as a file path relative to the tracker home. Using
666 # 'file:///' defines an absolute path. The first
667 # line of the file will be used as the value. Any
668 # string that does not start with 'file://' is used
669 # as is. It removes any whitespace at the end of the
670 # line, so a newline can be put in the file.
671 #
672 # Default: roundup
673 password = roundup
674
675 # Name of the PostgreSQL connection service for this Roundup
676 # instance. Only used in Postgresql connections. You need to set
677 # up a pg_service.conf file usable by psql use this option.
678 # Default:
679 service =
680
681 # Name of the MySQL defaults file.
682 # Only used in MySQL connections.
683 # Default: ~/.my.cnf
684 read_default_file = ~/.my.cnf
685
686 # Name of the group to use in the MySQL defaults file (.my.cnf).
687 # Only used in MySQL connections.
688 # Default: roundup
689 read_default_group = roundup
690
691 # Charset to use for mysql connection and databases.
692 # If set to 'default', no charset option is used when
693 # creating the db connection and utf8mb4 is used for the
694 # database charset.
695 # Otherwise any permissible mysql charset is allowed here.
696 # Only used in MySQL connections.
697 # Default: utf8mb4
698 mysql_charset = utf8mb4
699
700 # Comparison/order to use for mysql database/table collations.
701 # When upgrading, you can use 'utf8' to match the
702 # depricated 'utf8mb3'. This must be compatible with the
703 # mysql_charset setting above. Only used by MySQL.
704 # Default: utf8mb4_unicode_ci
705 mysql_collation = utf8mb4_unicode_ci
706
707 # Comparison/order to use for mysql database/table collations
708 # when matching case. When upgrading, you can use 'utf8_bin'
709 # to match the depricated 'utf8mb3_bin' collation. This must
710 # be compatible with the mysql_collation above. Only used
711 # by MySQL.
712 # Default: utf8mb4_0900_bin
713 mysql_binary_collation = utf8mb4_0900_bin
714
715 # Number of seconds to wait when the SQLite database is locked
716 # Default: use a 30 second timeout (extraordinarily generous)
717 # Only used in SQLite connections.
718 # Default: 30
719 sqlite_timeout = 30
720
721 # Size of the node cache (in elements). Used to keep the
722 # most recently used data in memory.
723 # Default: 100
724 cache_size = 100
725
726 # Setting this option to 'no' protects the database against
727 # table creations.
728 # Allowed values: yes, no
729 # Default: yes
730 allow_create = yes
731
732 # Setting this option to 'no' protects the database against
733 # table alterations.
734 # Allowed values: yes, no
735 # Default: yes
736 allow_alter = yes
737
738 # Setting this option to 'no' protects the database against
739 # table drops.
740 # Allowed values: yes, no
741 # Default: yes
742 allow_drop = yes
743
744 # Name of the PostgreSQL template for database creation.
745 # For database creation the template used has to match
746 # the character encoding used (UTF8), there are different
747 # PostgreSQL installations using different templates with
748 # different encodings. If you get an error:
749 # new encoding (UTF8) is incompatible with the encoding of
750 # the template database (SQL_ASCII)
751 # HINT: Use the same encoding as in the template database,
752 # or use template0 as template.
753 # then set this option to the template name given in the
754 # error message.
755 # Default:
756 template =
757
758 # Database isolation level, currently supported for
759 # PostgreSQL and mysql. See, e.g.,
760 # http://www.postgresql.org/docs/9.1/static/transaction-iso.html
761 # Allowed values: 'read uncommitted', 'read committed', 'repeatable read', 'serializable'
762 # Default: read committed
763 isolation_level = read committed
764
765 # Set the database cursor for filter queries to serverside
766 # cursor, this avoids caching large amounts of data in the
767 # client. This option only applies for the postgresql backend.
768 # Allowed values: yes, no
769 # Default: yes
770 serverside_cursor = yes
771
772 .. index:: config.ini; sections sessiondb
773
774 .. code:: ini
775
776 # Choose configuration for session and one time key storage.
777 [sessiondb]
778
779 # Set backend for storing one time key (otk) and session data.
780 # Values have to be compatible with main backend.
781 # main\/ session>| anydbm | sqlite | redis | mysql | postgresql |
782 # anydbm | D | | X | | |
783 # sqlite | X | D | X | | |
784 # mysql | | | | D | |
785 # postgresql | | | | | D |
786 # -------------------------------------------------------------+
787 # D - default if unset, X - compatible choice
788 # Default:
789 backend =
790
791 # URL used to connect to redis. Default uses unauthenticated
792 # redis database 0 running on localhost with default port.
793 #
794 # A string that starts with 'file://' is interpreted
795 # as a file path relative to the tracker home. Using
796 # 'file:///' defines an absolute path. The first
797 # line of the file will be used as the value. Any
798 # string that does not start with 'file://' is used
799 # as is. It removes any whitespace at the end of the
800 # line, so a newline can be put in the file.
801 #
802 # Default: redis://localhost:6379/0?health_check_interval=2
803 redis_url = redis://localhost:6379/0?health_check_interval=2
804
805 .. index:: config.ini; sections logging
806
807 .. code:: ini
808
809 [logging]
810
811 # Path to configuration file for standard Python logging module.
812 # If this option is set, logging configuration is loaded
813 # from specified file; options 'filename' and 'level'
814 # in this section are ignored.
815 # The path may be either absolute or relative
816 # to the directory containing this config file.
817 # Default:
818 config =
819
820 # Log file name for minimal logging facility built into Roundup.
821 # If no file name specified, log messages are written on stderr.
822 # If above 'config' option is set, this option has no effect.
823 # The path may be either absolute or relative
824 # to the directory containing this config file.
825 # Default:
826 filename =
827
828 # Minimal severity level of messages written to log file.
829 # If above 'config' option is set, this option has no effect.
830 # Allowed values: DEBUG, INFO, WARNING, ERROR
831 # Default: ERROR
832 level = ERROR
833
834 # If set to yes, only the loggers configured in this section will
835 # be used. Yes will disable gunicorn's --access-logfile.
836 #
837 # Allowed values: yes, no
838 # Default: no
839 disable_loggers = no
840
841 .. index:: config.ini; sections mail
842
843 .. code:: ini
844
845 # Outgoing email options.
846 # Used for nosy messages, password reset and registration approval
847 # requests.
848 [mail]
849
850 # The email domain that admin_email, issue_tracker and
851 # dispatcher_email belong to.
852 # This domain is added to those config items if they don't
853 # explicitly include a domain.
854 # Do not include the '@' symbol.
855 # Default: NO DEFAULT
856 #domain = NO DEFAULT
857
858 # SMTP mail host that roundup will use to send mail
859 # Default: NO DEFAULT
860 #host = NO DEFAULT
861
862 # SMTP login name.
863 # Set this if your mail host requires authenticated access.
864 # If username is not empty, password (below) MUST be set!
865 # Default:
866 username =
867
868 # SMTP login password.
869 # Set this if your mail host requires authenticated access.
870 # A string that starts with 'file://' is interpreted
871 # as a file path relative to the tracker home. Using
872 # 'file:///' defines an absolute path. The first
873 # line of the file will be used as the value. Any
874 # string that does not start with 'file://' is used
875 # as is. It removes any whitespace at the end of the
876 # line, so a newline can be put in the file.
877 #
878 # Default: NO DEFAULT
879 #password = NO DEFAULT
880
881 # Default port to send SMTP on.
882 # Set this if your mail server runs on a different port.
883 # Default: 25
884 port = 25
885
886 # The (fully qualified) host/ domain name (FQDN) to use during
887 # SMTP sessions. If left blank, the underlying SMTP library will
888 # attempt to detect your FQDN. Set this if your mail server
889 # requires something specific.
890 #
891 # Default:
892 local_hostname =
893
894 # If your SMTP mail host provides or requires TLS
895 # (Transport Layer Security) then set this option to 'yes'.
896 # Allowed values: yes, no
897 # Default: no
898 tls = no
899
900 # If TLS is used, you may set this option to the name
901 # of a PEM formatted file that contains your private key.
902 # The path may be either absolute or relative
903 # to the directory containing this config file.
904 # Default:
905 tls_keyfile =
906
907 # If TLS is used, you may set this option to the name
908 # of a PEM formatted certificate chain file.
909 # The path may be either absolute or relative
910 # to the directory containing this config file.
911 # Default:
912 tls_certfile =
913
914 # Character set to encode email headers with.
915 # We use utf-8 by default, as it's the most flexible.
916 # Some mail readers (eg. Eudora) can't cope with that,
917 # so you might need to specify a more limited character set
918 # (eg. iso-8859-1).
919 # Default: utf-8
920 charset = utf-8
921
922 # Setting this option makes Roundup write all outgoing email
923 # messages to this file *instead* of sending them.
924 # This option has the same effect as the environment variable
925 # SENDMAILDEBUG.
926 # Environment variable takes precedence.
927 # The path may be either absolute or relative
928 # to the directory containing this config file.
929 # Default:
930 debug =
931
932 # Add a line with author information at top of all messages
933 # sent by roundup
934 # Allowed values: yes, no
935 # Default: yes
936 add_authorinfo = yes
937
938 # Add the mail address of the author to the author information
939 # at the top of all messages.
940 # If this is false but add_authorinfo is true, only the name
941 # of the actor is added which protects the mail address of the
942 # actor from being exposed at mail archives, etc.
943 # Allowed values: yes, no
944 # Default: yes
945 add_authoremail = yes
946
947 .. index:: config.ini; sections mailgw
948
949 .. code:: ini
950
951 # Roundup Mail Gateway options
952 [mailgw]
953
954 # Keep email citations when accepting messages.
955 # Setting this to "no" strips out "quoted" text
956 # from the message. Setting this to "new" keeps quoted
957 # text only if a new issue is being created.
958 # Signatures are also stripped.
959 # Allowed values: yes, no, new
960 # Default: yes
961 keep_quoted_text = yes
962
963 # Setting this to "yes" preserves the email body
964 # as is - that is, keep the citations _and_ signatures.
965 # Setting this to "new" keeps the body only if we are
966 # creating a new issue.
967 # Allowed values: yes, no, new
968 # Default: no
969 leave_body_unchanged = no
970
971 # Default class to use in the mailgw
972 # if one isn't supplied in email subjects.
973 # To disable, leave the value blank.
974 # Default: issue
975 default_class = issue
976
977 # Default locale name for the tracker mail gateway.
978 # If this option is not set, mail gateway will use
979 # the language of the tracker instance.
980 # Default:
981 language =
982
983 # Controls the parsing of the [prefix] on subject
984 # lines in incoming emails. "strict" will return an
985 # error to the sender if the [prefix] is not recognised.
986 # "loose" will attempt to parse the [prefix] but just
987 # pass it through as part of the issue title if not
988 # recognised. "none" will always pass any [prefix]
989 # through as part of the issue title.
990 # Default: strict
991 subject_prefix_parsing = strict
992
993 # Controls the parsing of the [suffix] on subject
994 # lines in incoming emails. "strict" will return an
995 # error to the sender if the [suffix] is not recognised.
996 # "loose" will attempt to parse the [suffix] but just
997 # pass it through as part of the issue title if not
998 # recognised. "none" will always pass any [suffix]
999 # through as part of the issue title.
1000 # Default: strict
1001 subject_suffix_parsing = strict
1002
1003 # Defines the brackets used for delimiting the prefix and
1004 # suffix in a subject line. The presence of "suffix" in
1005 # the config option name is a historical artifact and may
1006 # be ignored.
1007 # Default: []
1008 subject_suffix_delimiters = []
1009
1010 # Controls matching of the incoming email subject line
1011 # against issue titles in the case where there is no
1012 # designator [prefix]. "never" turns off matching.
1013 # "creation + interval" or "activity + interval"
1014 # will match an issue for the interval after the issue's
1015 # creation or last activity. The interval is a standard
1016 # Roundup interval.
1017 # Default: always
1018 subject_content_match = always
1019
1020 # Update issue title if incoming subject of email is different.
1021 # Setting this to "no" will ignore the title part of the subject
1022 # of incoming email messages.
1023 #
1024 # Allowed values: yes, no
1025 # Default: yes
1026 subject_updates_title = yes
1027
1028 # Regular expression matching a single reply or forward
1029 # prefix prepended by the mailer. This is explicitly
1030 # stripped from the subject during parsing.
1031 # Value is Python Regular Expression (UTF8-encoded).
1032 # Default: (\s*\W?\s*(fw|fwd|re|aw|sv|ang)\W)+
1033 refwd_re = (\s*\W?\s*(fw|fwd|re|aw|sv|ang)\W)+
1034
1035 # Regular expression matching start of an original message
1036 # if quoted the in body.
1037 # Value is Python Regular Expression (UTF8-encoded).
1038 # Default: ^[>|\s]*-----\s?Original Message\s?-----$
1039 origmsg_re = ^[>|\s]*-----\s?Original Message\s?-----$
1040
1041 # Regular expression matching the start of a signature
1042 # in the message body.
1043 # Value is Python Regular Expression (UTF8-encoded).
1044 # Default: ^[>|\s]*-- ?$
1045 sign_re = ^[>|\s]*-- ?$
1046
1047 # Regular expression matching end of line.
1048 # Value is Python Regular Expression (UTF8-encoded).
1049 # Default: [\r\n]+
1050 eol_re = [\r\n]+
1051
1052 # Regular expression matching a blank line.
1053 # Value is Python Regular Expression (UTF8-encoded).
1054 # Default: [\r\n]+\s*[\r\n]+
1055 blankline_re = [\r\n]+\s*[\r\n]+
1056
1057 # Unpack attached messages (encoded as message/rfc822 in MIME)
1058 # as multiple parts attached as files to the issue, if not
1059 # set we handle message/rfc822 attachments as a single file.
1060 # Allowed values: yes, no
1061 # Default: no
1062 unpack_rfc822 = no
1063
1064 # When parsing incoming mails, roundup uses the first
1065 # text/plain part it finds. If this part is inside a
1066 # multipart/alternative, and this option is set, all other
1067 # parts of the multipart/alternative are ignored. The default
1068 # is to keep all parts and attach them to the issue.
1069 # Allowed values: yes, no
1070 # Default: no
1071 ignore_alternatives = no
1072
1073 # If an email has only text/html parts, use this module
1074 # to convert the html to text. Choose from beautifulsoup 4,
1075 # dehtml - (internal code), or none to disable conversion.
1076 # If 'none' is selected, email without a text/plain part
1077 # will be returned to the user with a message. If
1078 # beautifulsoup is selected but not installed dehtml will
1079 # be used instead.
1080 # Allowed values: beautifulsoup, dehtml, none
1081 # Default: none
1082 convert_htmltotext = none
1083
1084 # When handling emails ignore the Resent-From:-header
1085 # and use the original senders From:-header instead.
1086 # (This might be desirable in some situations where a moderator
1087 # reads incoming messages first before bouncing them to Roundup)
1088 # Allowed values: yes, no
1089 # Default: no
1090 keep_real_from = no
1091
1092 .. index:: config.ini; sections pgp
1093
1094 .. code:: ini
1095
1096 # OpenPGP mail processing options
1097 [pgp]
1098
1099 # Enable PGP processing. Requires gpg. If you're planning
1100 # to send encrypted PGP mail to the tracker, you should also
1101 # enable the encrypt-option below, otherwise mail received
1102 # encrypted might be sent unencrypted to another user.
1103 # Allowed values: yes, no
1104 # Default: no
1105 enable = no
1106
1107 # If specified, a comma-separated list of roles to perform
1108 # PGP processing on. If not specified, it happens for all
1109 # users. Note that received PGP messages (signed and/or
1110 # encrypted) will be processed with PGP even if the user
1111 # doesn't have one of the PGP roles, you can use this to make
1112 # PGP processing completely optional by defining a role here
1113 # and not assigning any users to that role.
1114 # Default:
1115 roles =
1116
1117 # Location of PGP directory. Defaults to $HOME/.gnupg if
1118 # not specified.
1119 # Default:
1120 homedir =
1121
1122 # Enable PGP encryption. All outgoing mails are encrypted.
1123 # This requires that keys for all users (with one of the gpg
1124 # roles above or all users if empty) are available. Note that
1125 # it makes sense to educate users to also send mails encrypted
1126 # to the tracker, to enforce this, set 'require_incoming'
1127 # option below (but see the note).
1128 # Allowed values: yes, no
1129 # Default: no
1130 encrypt = no
1131
1132 # Require that pgp messages received by roundup are either
1133 # 'signed', 'encrypted' or 'both'. If encryption is required
1134 # we do not return the message (in clear) to the user but just
1135 # send an informational message that the message was rejected.
1136 # Note that this still presents known-plaintext to an attacker
1137 # when the users sends the mail a second time with encryption
1138 # turned on.
1139 # Default: signed
1140 require_incoming = signed
1141
1142 .. index:: config.ini; sections nosy
1143
1144 .. code:: ini
1145
1146 # Nosy messages sending
1147 [nosy]
1148
1149 # Send nosy messages to the author of the message.
1150 # Allowed values: yes, no, new, nosy -- if yes, messages
1151 # are sent to the author even if not on the nosy list, same
1152 # for new (but only for new messages). When set to nosy,
1153 # the nosy list controls sending messages to the author.
1154 # Default: no
1155 messages_to_author = no
1156
1157 # Where to place the email signature.
1158 # Allowed values: top, bottom, none
1159 # Default: bottom
1160 signature_position = bottom
1161
1162 # Does the author of a message get placed on the nosy list
1163 # automatically? If 'new' is used, then the author will
1164 # only be added when a message creates a new issue.
1165 # If 'yes', then the author will be added on followups too.
1166 # If 'no', they're never added to the nosy.
1167 #
1168 # Allowed values: yes, no, new
1169 # Default: new
1170 add_author = new
1171
1172 # Do the recipients (To:, Cc:) of a message get placed on the
1173 # nosy list? If 'new' is used, then the recipients will
1174 # only be added when a message creates a new issue.
1175 # If 'yes', then the recipients will be added on followups too.
1176 # If 'no', they're never added to the nosy.
1177 #
1178 # Allowed values: yes, no, new
1179 # Default: new
1180 add_recipients = new
1181
1182 # Controls the email sending from the nosy reactor. If
1183 # "multiple" then a separate email is sent to each
1184 # recipient. If "single" then a single email is sent with
1185 # each recipient as a CC address.
1186 # Default: single
1187 email_sending = single
1188
1189 # Attachments larger than the given number of bytes
1190 # won't be attached to nosy mails. They will be replaced by
1191 # a link to the tracker's download page for the file.
1192 # Default: 9223372036854775807
1193 max_attachment_size = 9223372036854775807
1194
1195 .. index:: config.ini; sections markdown
1196
1197 .. code:: ini
1198
1199 # Markdown rendering options.
1200 [markdown]
1201
1202 # If yes/true, render single new line characters in markdown
1203 # text with <br>. Set true if you want GitHub Flavored Markdown
1204 # (GFM) handling of embedded newlines.
1205 # Allowed values: yes, no
1206 # Default: no
1207 break_on_newline = no

Roundup Issue Tracker: http://roundup-tracker.org/