| 80 | $ htpasswd -c /path/to/env/.htpasswd username |
| 81 | }}} |
| 82 | then for additional users: |
| 83 | {{{ |
| 84 | $ htpasswd /path/to/env/.htpasswd username2 |
| 85 | }}} |
| 86 | then for starting the tracd (on windows skip the "=" after --basic-auth): |
| 87 | {{{ |
| 88 | tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname |
| 89 | }}} |
| 90 | |
| 91 | `environmentname` is the directory name of the Trac project folder, as opposed to `/fullpath/environmentname` which is the full path to the Trac project folder. See below for another example. |
| 92 | |
| 93 | Tracd provides support for both Basic and Digest authentication. The default is to use Digest; to use Basic authentication, replace `--auth` with `--basic-auth` in the examples below. (You must still specify a dialogic "realm", which can be an empty string by trailing the BASICAUTH with a comma.) |
| 94 | |
| 95 | ''Support for Basic authentication was added in version 0.9.'' |
| 96 | |
| 97 | The general format for using authentication is (replace `--auth` with `--basic-auth` if you want to use Basic auth): |
| 98 | |
| 99 | {{{ |
| 100 | $ tracd -p port --auth="base_project_dir,password_file_path,realm" project_path |
| 101 | }}} |
| 102 | |
| 103 | where: |
| 104 | |
| 105 | * '''base_project_dir''': the base directory of the project specified as follows: |
| 106 | * when serving multiple projects: ''relative'' to the `project_path` |
| 107 | * when serving only a single project (`-s`): the name of the project directory |
| 108 | Don't use an absolute path here as this won't work. ''Note:'' This parameter is case-sensitive even for environments on Windows. |
| 109 | * '''password_file_path''': path to the password file |
| 110 | * '''realm''': the realm name (can be anything) |
| 111 | * '''project_path''': path of the project |
| 112 | |
| 113 | Examples: |
| 114 | |
| 115 | {{{ |
| 116 | $ tracd -p 8080 \ |
| 117 | --auth="project1,/path/to/passwordfile,mycompany.com" /path/to/project1 |
| 118 | }}} |
| 119 | |
| 120 | Of course, the password file can be be shared so that it is used for more than one project: |
| 121 | {{{ |
| 122 | $ tracd -p 8080 \ |
| 123 | --auth="project1,/path/to/passwordfile,mycompany.com" \ |
| 124 | --auth="project2,/path/to/passwordfile,mycompany.com" \ |
| 125 | /path/to/project1 /path/to/project2 |
| 126 | }}} |
| 127 | |
| 128 | Another way to share the password file is to specify "*" for the project name: |
| 129 | {{{ |
| 130 | $ tracd -p 8080 \ |
| 131 | --auth="*,/path/to/users.htdigest,mycompany.com" \ |
| 132 | /path/to/project1 /path/to/project2 |
| 133 | }}} |
| 134 | |
| 135 | === Using a htpasswd password file === |
| 136 | This section describes how to use `tracd` with Apache .htpasswd files. |
| 137 | |
| 138 | To create a .htpasswd file use Apache's `htpasswd` command (see [#GeneratingPasswordsWithoutApache below] for a method to create these files without using Apache): |
| 139 | |
| 140 | {{{ |
74 | | then for starting the tracd (on windows skip the "=" after --basic-auth): |
75 | | {{{ |
76 | | $ tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname |
77 | | }}} |
78 | | |
79 | | Tracd provides support for both Basic and Digest authentication. The default is to use Digest; to use Basic authentication, replace `--auth` with `--basic-auth` in the examples below. (You must still specify a dialogic "realm", which can be an empty string by trailing the BASICAUTH with a comma.) |
80 | | |
81 | | ''Support for Basic authentication was added in version 0.9.'' |
82 | | |
83 | | The general format for using authentication is (on windows skip the "=" after --auth): |
84 | | |
85 | | {{{ |
86 | | $ tracd -p port --auth=base_project_dir,password_file_path,realm project_path |
87 | | }}} |
88 | | |
89 | | where: |
90 | | |
91 | | * '''base_project_dir''' is the base directory of the project; note: this doesn't refer to the project name, and it is case-sensitive even for windows environments |
92 | | * '''password_file_path''' path of the password file |
93 | | * '''realm''' realm |
94 | | * '''project_path''' path of the project |
95 | | |
96 | | Example (on windows skip the "=" after --auth): |
97 | | |
98 | | {{{ |
99 | | $ tracd -p 8080 \ |
100 | | --auth=project1,/path/to/users.htdigest,mycompany.com /path/to/project1 |
101 | | }}} |
102 | | Of course, the digest file can be be shared so that it is used for more than one project: |
103 | | {{{ |
104 | | $ tracd -p 8080 \ |
105 | | --auth=project1,/path/to/users.htdigest,mycompany.com \ |
106 | | --auth=project2,/path/to/users.htdigest,mycompany.com \ |
107 | | /path/to/project1 /path/to/project2 |
108 | | }}} |
109 | | |
110 | | Another way to share the digest file is to specify "*" |
111 | | for the project name: |
112 | | {{{ |
113 | | $ tracd -p 8080 \ |
114 | | --auth="*",/path/to/users.htdigest,mycompany.com \ |
115 | | /path/to/project1 /path/to/project2 |
116 | | }}} |
117 | | If using the `-s` parameter for serving a Trac environment from the root of a domain, one must use `*` for the project name |
118 | | |
119 | | == How to set up an htdigest password file == |
| 147 | |
| 148 | Then to start `tracd` run something like this: |
| 149 | |
| 150 | {{{ |
| 151 | $ tracd -p 8080 --basic-auth="projectdirname,/fullpath/environmentname/.htpasswd,realmname" /fullpath/environmentname |
| 152 | }}} |
| 153 | |
| 154 | For example: |
| 155 | |
| 156 | {{{ |
| 157 | $ tracd -p 8080 --basic-auth="testenv,/srv/tracenv/testenv/.htpasswd,My Test Env" /srv/tracenv/testenv |
| 158 | }}} |
| 159 | |
| 160 | ''Note:'' You might need to pass "-m" as a parameter to htpasswd on some platforms (OpenBSD). |
| 161 | |
| 162 | === Using a htdigest password file === |
189 | | which in turn can be written using the relative link syntax |
190 | | in the Wiki: `[/<project_name>/chrome/site/software-0.1.tar.gz]` |
191 | | |
192 | | Since 0.10, Trac supports a new `htdocs:` TracLinks |
193 | | syntax for the above. With this, the example link above can be written simply |
194 | | `htdocs:software-0.1.tar.gz`. |
| 233 | which in turn can be written as `htdocs:software-0.1.tar.gz` (TracLinks syntax) or `[/<project_name>/chrome/site/software-0.1.tar.gz]` (relative link syntax). |
| 234 | |
| 235 | ''Support for `htdocs:` TracLinks syntax was added in version 0.10'' |