18 | | the appropriate permissions. The same applies to the Subversion |
19 | | repository, although Trac will only require read access as long as you're |
20 | | not using the BDB file system.'' |
| 18 | the appropriate permissions. The same applies to the Subversion repository |
| 19 | Trac is eventually using, although Trac will only require read access as long |
| 20 | as you're not using the BDB file system. Also, it seems that project names |
| 21 | with spaces can be problematic for authentication (see [trac:#7163]).'' |
25 | | [http://www.postgresql.org/ PostgreSQL] as database backends. The default |
26 | | is to use SQLite, which is probably sufficient for most projects. The database file |
27 | | is then stored in the environment directory, and can easily be |
| 26 | [http://www.postgresql.org/ PostgreSQL] database backends. Preliminary |
| 27 | support for [http://mysql.com/ MySQL] was added in 0.10. The default is |
| 28 | to use SQLite, which is probably sufficient for most projects. The database |
| 29 | file is then stored in the environment directory, and can easily be |
35 | | If you want to use PostgreSQL instead, you'll have to use a different |
36 | | connection string. For example, to connect to a database on the same |
37 | | machine called `trac`, that allows access to the user `johndoe` with |
38 | | the password `letmein`, use: |
| 38 | === PostgreSQL Connection String === |
| 39 | If you want to use PostgreSQL or MySQL instead, you'll have to use a |
| 40 | different connection string. For example, to connect to a PostgreSQL |
| 41 | database on the same machine called `trac`, that allows access to the |
| 42 | user `johndoe` with the password `letmein`, use: |
| 65 | |
| 66 | See the [http://www.postgresql.org/docs/ PostgreSQL documentation] for detailed instructions on how to administer [http://postgresql.org PostgreSQL]. |
| 67 | Generally, the following is sufficient to create a database user named `tracuser`, and a database named `trac`. |
| 68 | {{{ |
| 69 | createuser -U postgres -E -P tracuser |
| 70 | createdb -U postgres -O tracuser -E UTF8 trac |
| 71 | }}} |
| 72 | When running `createuser` you will be prompted for the password for the user 'tracuser'. This new user will not be a superuser, will not be allowed to create other databases and will not be allowed to create other roles. These privileges are not needed to run a trac instance. If no password is desired for the user, simply remove the `-P` and `-E` options from the `createuser` command. Also note that the database should be created as UTF8. LATIN1 encoding causes errors trac's use of unicode in trac. SQL_ASCII also seems to work. |
| 73 | |
| 74 | Under some default configurations (debian) one will have run the `createuser` and `createdb` scripts as the `postgres` user. For example: |
| 75 | {{{ |
| 76 | sudo su - postgres -c 'createuser -U postgres -S -D -R -E -P tracuser' |
| 77 | sudo su - postgres -c 'createdb -U postgres -O tracuser -E UTF8 trac' |
| 78 | }}} |
| 79 | |
| 80 | Trac uses the `public` schema by default but you can specify a different schema in the connection string: |
| 81 | {{{ |
| 82 | postgres://user:pass@server/database?schema=yourschemaname |
| 83 | }}} |
| 84 | |
| 85 | === MySQL Connection String === |
| 86 | |
| 87 | If you want to use MySQL instead, you'll have to use a |
| 88 | different connection string. For example, to connect to a MySQL |
| 89 | database on the same machine called `trac`, that allows access to the |
| 90 | user `johndoe` with the password `letmein`, the mysql connection string is: |
| 91 | {{{ |
| 92 | mysql://johndoe:letmein@localhost:3306/trac |
| 93 | }}} |
| 94 | |
| 95 | == Source Code Repository == |
| 96 | |
| 97 | You'll first have to provide the ''type'' of your repository (e.g. `svn` for Subversion, |
| 98 | which is the default), then the ''path'' where the repository is located. |
| 99 | |
| 100 | If you don't want to use Trac with a source code repository, simply leave the ''path'' empty |
| 101 | (the ''type'' information doesn't matter, then). |
| 102 | |
| 103 | For some systems, it is possible to specify not only the path to the repository, |
| 104 | but also a ''scope'' within the repository. Trac will then only show information |
| 105 | related to the files and changesets below that scope. The Subversion backend for |
| 106 | Trac supports this; for other types, check the corresponding plugin's documentation. |
| 107 | |
| 108 | Example of a configuration for a Subversion repository: |
| 109 | {{{ |
| 110 | [trac] |
| 111 | repository_type = svn |
| 112 | repository_dir = /path/to/your/repository |
| 113 | }}} |
| 114 | |
| 115 | The configuration for a scoped Subversion repository would be: |
| 116 | {{{ |
| 117 | [trac] |
| 118 | repository_type = svn |
| 119 | repository_dir = /path/to/your/repository/scope/within/repos |
| 120 | }}} |
62 | | * `plugins` - Environment-specific [wiki:TracPlugins plugins] (Python eggs) |
63 | | * `templates` - Custom environment-specific templates. |
| 133 | * `htdocs` - directory containing web resources, which can be referenced in Genshi templates. '''''(0.11 only)''''' |
| 134 | * `log` - default directory for log files, if logging is turned on and a relative path is given. |
| 135 | * `plugins` - Environment-specific [wiki:TracPlugins plugins] (Python eggs, since [milestone:0.10]) |
| 136 | * `templates` - Custom ClearSilver environment-specific templates. '''''(0.10 only)''''' |
67 | | * `wiki-macros` - Environment-specific [wiki:WikiMacros Wiki macros]. |
| 140 | * `templates` - Custom Genshi environment-specific templates. '''''(0.11 only)''''' |
| 141 | * `site.html` - method to customize header, footer, and style, described in TracInterfaceCustomization#SiteAppearance |
| 142 | * `wiki-macros` - Environment-specific [WikiMacros Wiki macros]. '''''(0.10 only)''''' |
| 143 | |
| 144 | '''Note: don't confuse a Trac environment directory with the source code repository directory. |
| 145 | It happens that the above structure is loosely modelled after the Subversion repository directory |
| 146 | structure, but they are not and ''must not'' be located at the same place.''' |