|   | 1 | = The Trac Configuration File = | 
          
          
            |   | 2 | [[TracGuideToc]] | 
          
          
            |   | 3 |  | 
          
          
            |   | 4 | Trac configuration is done by editing the '''`trac.ini`''' config file, located in `<projectenv>/conf/trac.ini`.  Changes to the configuration are usually reflected immediately, though changes to the `[components]` or `[logging]` sections will require restarting the web server. You may also need to restart the web server after creating a global configuration file when none was previously present. | 
          
          
            |   | 5 |  | 
          
          
            |   | 6 | The `trac.ini` configuration file should be writable by the web server, as Trac currently relies on the possibility to trigger a complete environment reload to flush its caches. | 
          
          
            |   | 7 |  | 
          
          
            |   | 8 | == Global Configuration == | 
          
          
            |   | 9 |  | 
          
          
            |   | 10 | In versions prior to 0.11, the global configuration was by default located in `$prefix/share/trac/conf/trac.ini` or /etc/trac/trac.ini, depending on the distribution. If you're upgrading, you may want to specify that file to inherit from.  Literally, when you're upgrading to 0.11, you have to add an `[inherit]` section to your project's `trac.ini` file. Additionally, you have to move your customized templates and common images from `$prefix/share/trac/...` to the new location. | 
          
          
            |   | 11 |  | 
          
          
            |   | 12 | Global options will be merged with the environment-specific options, where local options override global options. The options file is specified as follows: | 
          
          
            |   | 13 | {{{ | 
          
          
            |   | 14 | [inherit] | 
          
          
            |   | 15 | file = /path/to/global/trac.ini | 
          
          
            |   | 16 | }}} | 
          
          
            |   | 17 | Multiple files can be specified using a comma-separated list. | 
          
          
            |   | 18 |  | 
          
          
            |   | 19 | Note that you can also specify a global option file when creating a new project,  by adding the option `--inherit=/path/to/global/trac.ini` to [TracAdmin#initenv trac-admin]'s `initenv` command.  If you do not do this but nevertheless intend to use a global option file with your new environment, you will have to go through the newly generated `conf/trac.ini` file and delete the entries that will otherwise override those set in the global file. | 
          
          
            |   | 20 |  | 
          
          
            |   | 21 | There are two more entries in the [[#inherit-section| [inherit] ]] section, `templates_dir` for sharing global templates and `plugins_dir`, for sharing plugins. Those entries can themselves be specified in the shared configuration file, and in fact, configuration files can even be chained if you specify another `[inherit] file` there. | 
          
          
            |   | 22 |  | 
          
          
            |   | 23 | == Reference for settings | 
          
          
            |   | 24 |  | 
          
          
            |   | 25 | This is a brief reference of available configuration options. | 
          
          
            |   | 26 |  | 
          
          
            |   | 27 | [[TracIni]] | 
          
          
            |   | 28 |  | 
          
          
            |   | 29 | == Reference for special sections | 
          
          
            |   | 30 | [[PageOutline(3,,inline)]] | 
          
          
            |   | 31 |  | 
          
          
            |   | 32 | === [components] === #components-section | 
          
          
            |   | 33 | This section is used to enable or disable components provided by plugins, as well as by Trac itself. The component to enable/disable is specified via the name of the option. Whether its enabled is determined by the option value; setting the value to `enabled` or `on` will enable the component, any other value (typically `disabled` or `off`) will disable the component. | 
          
          
            |   | 34 |  | 
          
          
            |   | 35 | The option name is either the fully qualified name of the components or the module/package prefix of the component. The former enables/disables a specific component, while the latter enables/disables any component in the specified package/module. | 
          
          
            |   | 36 |  | 
          
          
            |   | 37 | Consider the following configuration snippet: | 
          
          
            |   | 38 | {{{ | 
          
          
            |   | 39 | [components] | 
          
          
            |   | 40 | trac.ticket.report.ReportModule = disabled | 
          
          
            |   | 41 | webadmin.* = enabled | 
          
          
            |   | 42 | }}} | 
          
          
            |   | 43 |  | 
          
          
            |   | 44 | The first option tells Trac to disable the [wiki:TracReports report module]. The second option instructs Trac to enable all components in the `webadmin` package. Note that the trailing wildcard is required for module/package matching. | 
          
          
            |   | 45 |  | 
          
          
            |   | 46 | See the ''Plugins'' page on ''About Trac'' to get the list of active components (requires `CONFIG_VIEW` [wiki:TracPermissions permissions].) | 
          
          
            |   | 47 |  | 
          
          
            |   | 48 | See also: TracPlugins | 
          
          
            |   | 49 |  | 
          
          
            |   | 50 | === [milestone-groups] === #milestone-groups-section | 
          
          
            |   | 51 | ''(since 0.11)'' | 
          
          
            |   | 52 |  | 
          
          
            |   | 53 | As the workflow for tickets is now configurable, there can be many ticket states, | 
          
          
            |   | 54 | and simply displaying closed tickets vs. all the others is maybe not appropriate  | 
          
          
            |   | 55 | in all cases. This section enables one to easily create ''groups'' of states  | 
          
          
            |   | 56 | that will be shown in different colors in the milestone progress bar. | 
          
          
            |   | 57 |  | 
          
          
            |   | 58 | Example configuration (the default only has closed and active): | 
          
          
            |   | 59 | {{{ | 
          
          
            |   | 60 | closed = closed | 
          
          
            |   | 61 | # sequence number in the progress bar | 
          
          
            |   | 62 | closed.order = 0 | 
          
          
            |   | 63 | # optional extra param for the query (two additional columns: created and modified and sort on created) | 
          
          
            |   | 64 | closed.query_args = group=resolution,order=time,col=id,col=summary,col=owner,col=type,col=priority,col=component,col=severity,col=time,col=changetime | 
          
          
            |   | 65 | # indicates groups that count for overall completion  | 
          
          
            |   | 66 | closed.overall_completion = truepercentage | 
          
          
            |   | 67 |  | 
          
          
            |   | 68 | new = new | 
          
          
            |   | 69 | new.order = 1 | 
          
          
            |   | 70 | new.css_class = new | 
          
          
            |   | 71 | new.label = new | 
          
          
            |   | 72 |  | 
          
          
            |   | 73 | # one catch-all group is allowed | 
          
          
            |   | 74 | active = * | 
          
          
            |   | 75 | active.order = 2 | 
          
          
            |   | 76 | # CSS class for this interval | 
          
          
            |   | 77 | active.css_class = open | 
          
          
            |   | 78 | # Displayed label for this group | 
          
          
            |   | 79 | active.label = in progress | 
          
          
            |   | 80 | }}} | 
          
          
            |   | 81 |  | 
          
          
            |   | 82 | The definition consists in a comma-separated list of accepted status. | 
          
          
            |   | 83 | Also, '*' means any status and could be used to associate all remaining | 
          
          
            |   | 84 | states to one catch-all group. | 
          
          
            |   | 85 |  | 
          
          
            |   | 86 | The CSS class can be one of: new (yellow), open (no color) or | 
          
          
            |   | 87 | closed (green). New styles can easily be added using the following | 
          
          
            |   | 88 | selector:  `table.progress td.<class>` | 
          
          
            |   | 89 |  | 
          
          
            |   | 90 | === [repositories] === #repositories-section | 
          
          
            |   | 91 |  | 
          
          
            |   | 92 | (''since 0.12'' multirepos) | 
          
          
            |   | 93 |  | 
          
          
            |   | 94 | One of the alternatives for registering new repositories is to populate the `[repositories]` section of the trac.ini. | 
          
          
            |   | 95 |  | 
          
          
            |   | 96 | This is especially suited for setting up convenience aliases, short-lived repositories, or during the initial phases of an installation. | 
          
          
            |   | 97 |  | 
          
          
            |   | 98 | See [TracRepositoryAdmin#Intrac.ini TracRepositoryAdmin] for details about the format adopted for this section and the rest of that page for the other alternatives. | 
          
          
            |   | 99 |  | 
          
          
            |   | 100 | === [svn:externals] === #svn:externals-section | 
          
          
            |   | 101 | ''(since 0.11)'' | 
          
          
            |   | 102 |  | 
          
          
            |   | 103 | The TracBrowser for Subversion can interpret the `svn:externals` property of folders. | 
          
          
            |   | 104 | By default, it only turns the URLs into links as Trac can't browse remote repositories. | 
          
          
            |   | 105 |  | 
          
          
            |   | 106 | However, if you have another Trac instance (or an other repository browser like [http://www.viewvc.org/ ViewVC]) configured to browse the target repository, then you can instruct Trac which other repository browser to use for which external URL. | 
          
          
            |   | 107 |  | 
          
          
            |   | 108 | This mapping is done in the `[svn:externals]` section of the TracIni | 
          
          
            |   | 109 |  | 
          
          
            |   | 110 | Example: | 
          
          
            |   | 111 | {{{ | 
          
          
            |   | 112 | [svn:externals] | 
          
          
            |   | 113 | 1 = svn://server/repos1                       http://trac/proj1/browser/$path?rev=$rev | 
          
          
            |   | 114 | 2 = svn://server/repos2                       http://trac/proj2/browser/$path?rev=$rev | 
          
          
            |   | 115 | 3 = http://theirserver.org/svn/eng-soft       http://ourserver/viewvc/svn/$path/?pathrev=25914 | 
          
          
            |   | 116 | 4 = svn://anotherserver.com/tools_repository  http://ourserver/tracs/tools/browser/$path?rev=$rev | 
          
          
            |   | 117 | }}} | 
          
          
            |   | 118 | With the above, the `svn://anotherserver.com/tools_repository/tags/1.1/tools` external will be mapped to `http://ourserver/tracs/tools/browser/tags/1.1/tools?rev=` (and `rev` will be set to the appropriate revision number if the external additionally specifies a revision, see the [http://svnbook.red-bean.com/en/1.4/svn.advanced.externals.html SVN Book on externals] for more details). | 
          
          
            |   | 119 |  | 
          
          
            |   | 120 | Note that the number used as a key in the above section is purely used as a place holder, as the URLs themselves can't be used as a key due to various limitations in the configuration file parser. | 
          
          
            |   | 121 |  | 
          
          
            |   | 122 | Finally, the relative URLs introduced in [http://subversion.tigris.org/svn_1.5_releasenotes.html#externals Subversion 1.5] are not yet supported. | 
          
          
            |   | 123 |  | 
          
          
            |   | 124 | === [ticket-custom] === #ticket-custom-section | 
          
          
            |   | 125 |  | 
          
          
            |   | 126 | In this section, you can define additional fields for tickets. See TracTicketsCustomFields for more details. | 
          
          
            |   | 127 |  | 
          
          
            |   | 128 | === [ticket-workflow] === #ticket-workflow-section | 
          
          
            |   | 129 | ''(since 0.11)'' | 
          
          
            |   | 130 |  | 
          
          
            |   | 131 | The workflow for tickets is controlled by plugins.  | 
          
          
            |   | 132 | By default, there's only a `ConfigurableTicketWorkflow` component in charge.  | 
          
          
            |   | 133 | That component allows the workflow to be configured via this section in the trac.ini file. | 
          
          
            |   | 134 | See TracWorkflow for more details. | 
          
          
            |   | 135 |  | 
          
          
            |   | 136 |  | 
          
          
            |   | 137 | ---- | 
          
          
            |   | 138 | See also: TracGuide, TracAdmin, TracEnvironment |