61 | | |
62 | | Using tracd with Apache .htpasswd files: |
63 | | |
64 | | To create a .htpasswd file using htpasswd: |
65 | | |
66 | | {{{ |
67 | | sudo htpasswd -c /path/to/env/.htpasswd username |
| 74 | `tracd` provides support for both Basic and Digest authentication. The default is to use Digest. |
| 75 | |
| 76 | ''Support for Basic authentication was added in version 0.9.'' |
| 77 | |
| 78 | The general format for using authentication is (replace `--auth` with `--basic-auth` if you want to use Basic auth): |
| 79 | |
| 80 | {{{ |
| 81 | $ tracd -p port --auth="base_project_dir,password_file_path,realm" project_path |
| 82 | }}} |
| 83 | |
| 84 | where: |
| 85 | |
| 86 | * '''base_project_dir''': the base directory of the project specified as follows: |
| 87 | * when serving multiple projects: ''relative'' to the `project_bath` |
| 88 | * when serving only a single project (`-s`): the name of the project directory |
| 89 | Don't use an absolute path here as this won't work. ''Note:'' This parameter is case-sensitive even for environments on Windows. |
| 90 | * '''password_file_path''': path to the password file |
| 91 | * '''realm''': the realm name (can be anything) |
| 92 | * '''project_path''': path of the project |
| 93 | |
| 94 | Examples: |
| 95 | |
| 96 | {{{ |
| 97 | $ tracd -p 8080 \ |
| 98 | --auth="project1,/path/to/passwordfile,mycompany.com" /path/to/project1 |
| 99 | }}} |
| 100 | |
| 101 | Of course, the password file can be be shared so that it is used for more than one project: |
| 102 | {{{ |
| 103 | $ tracd -p 8080 \ |
| 104 | --auth="project1,/path/to/passwordfile,mycompany.com" \ |
| 105 | --auth="project2,/path/to/passwordfile,mycompany.com" \ |
| 106 | /path/to/project1 /path/to/project2 |
| 107 | }}} |
| 108 | |
| 109 | Another way to share the password file is to specify "*" for the project name: |
| 110 | {{{ |
| 111 | $ tracd -p 8080 \ |
| 112 | --auth="*,/path/to/users.htdigest,mycompany.com" \ |
| 113 | /path/to/project1 /path/to/project2 |
| 114 | }}} |
| 115 | |
| 116 | === Using a htpasswd password file === |
| 117 | This section describes how to use `tracd` with Apache .htpasswd files. |
| 118 | |
| 119 | To create a .htpasswd file use Apache's `htpasswd` command (see [#GeneratingPasswordsWithoutApache below] for a method to create these files without using Apache): |
| 120 | |
| 121 | {{{ |
| 122 | $ sudo htpasswd -c /path/to/env/.htpasswd username |
71 | | sudo htpasswd /path/to/env/.htpasswd username2 |
72 | | }}} |
73 | | then for starting the tracd: |
74 | | {{{ |
75 | | tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname |
76 | | }}} |
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: |
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: |
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 == |
| 126 | $ sudo htpasswd /path/to/env/.htpasswd username2 |
| 127 | }}} |
| 128 | |
| 129 | Then to start `tracd` run something like this: |
| 130 | |
| 131 | {{{ |
| 132 | $ tracd -p 8080 --basic-auth="projectdirname,/fullpath/environmentname/.htpasswd,realmname" /fullpath/environmentname |
| 133 | }}} |
| 134 | |
| 135 | For example: |
| 136 | |
| 137 | {{{ |
| 138 | $ tracd -p 8080 --basic-auth="testenv,/srv/tracenv/testenv/.htpasswd,My Test Env" /srv/tracenv/testenv |
| 139 | }}} |
| 140 | |
| 141 | ''Note:'' You might need to pass "-m" as a parameter to htpasswd on some platforms (OpenBSD). |
| 142 | |
| 143 | === Using a htdigest password file === |