Edgewall Software

Changes between Version 124 and Version 125 of TracStandalone


Ignore:
Timestamp:
Mar 6, 2022, 9:16:05 AM (2 years ago)
Author:
figaro
Comment:

Cosmetic changes

Legend:

Unmodified
Added
Removed
Modified
  • TracStandalone

    v124 v125  
    66== Pros
    77
    8  * Fewer dependencies: You don't need to install apache or any other web-server.
    9  * Fast: Should be almost as fast as the [wiki:TracModPython mod_python] version (and much faster than the [wiki:TracCgi CGI]), even more so since version 0.12 where the HTTP/1.1 version of the protocol is enabled by default
    10  * Automatic reloading: For development, Tracd can be used in ''auto_reload'' mode, which will automatically restart the server whenever you make a change to the code (in Trac itself or in a plugin).
     8 * Fewer dependencies: You don't need to install Apache or any other web-server.
     9 * Fast: Should be almost as fast as the [wiki:TracModPython mod_python] version (and much faster than the [wiki:TracCgi CGI]), especially since the HTTP/1.1 version of the protocol is enabled by default.
     10 * Automatic reloading: For development, Tracd can be used in ''auto_reload'' mode, which will automatically restart the server whenever you make a change to the code, for example in Trac itself or in a plugin.
    1111
    1212== Cons
    1313
    1414 * Fewer features: Tracd implements a very simple web-server and is not as configurable or as scalable as Apache httpd.
    15  * No native HTTPS support: [http://www.rickk.com/sslwrap/ sslwrap] can be used instead,
    16    or [trac:wiki:STunnelTracd stunnel -- a tutorial on how to use stunnel with tracd] or Apache with mod_proxy.
     15 * No native HTTPS support: [http://www.rickk.com/sslwrap/ sslwrap] can be used instead, or [trac:wiki:STunnelTracd stunnel -- a tutorial on how to use stunnel with tracd] or Apache with mod_proxy.
    1716
    1817== Usage examples
     
    3130}}}
    3231
    33 You can't have the last portion of the path identical between the projects since Trac uses that name to keep the URLs of the
    34 different projects unique. So if you use `/project1/path/to` and `/project2/path/to`, you will only see the second project.
     32You can't have the last portion of the path identical between the projects since Trac uses that name to keep the URLs of the different projects unique. So if you use `/project1/path/to` and `/project2/path/to`, you will only see the second project.
    3533
    3634An alternative way to serve multiple projects is to specify a parent directory in which each subdirectory is a Trac project, using the `-e` option. The example above could be rewritten:
     
    4139There is support for the HTTPS protocol (//Since 1.3.4//). Specify the path to the PEM certificate file and keyfile using the `--certfile` and `--keyfile` options. You can specify just the `--certfile` option if you have a [https://docs.python.org/2/library/ssl.html#combined-key-and-certificate combined key and certificate].
    4240
    43 To exit the server on Windows, be sure to use `CTRL-BREAK` -- using `CTRL-C` will leave a Python process running in the background.
     41To exit the server on Windows, be sure to use `CTRL-BREAK`. Using `CTRL-C` will leave a Python process running in the background.
    4442
    4543== Installing as a Windows Service
    4644
    4745=== Option 1
     46
    4847To install as a Windows service, get the [https://www.google.com/search?q=srvany.exe SRVANY] utility and run:
    4948{{{#!cmd
     
    5453
    5554{{{#!div style="border: 1pt dotted; margin: 1em;"
    56 **Attention:** Do not use `tracd.exe` directly.  Instead register `python.exe` directly with `tracd.exe` as a parameter.  If you use `tracd.exe`, it will spawn the python process without SRVANY's knowledge. This python process will survive a `net stop tracd`.
     55**Attention:** Do not use `tracd.exe` directly. Instead register `python.exe` directly with `tracd.exe` as a parameter. If you use `tracd.exe`, it will spawn the python process without SRVANY's knowledge. This python process will survive a `net stop tracd`.
    5756}}}
    5857
     
    7372||!AppParameters ||scripts\tracd.exe -p 8080 ... ||
    7473
    75 Note that, if the !AppDirectory is set as above, the paths of the executable ''and'' of the script name and parameter values are relative to the directory.  This makes updating Python a little simpler because the change can be limited, here, to a single point.
    76 (This is true for the path to the .htpasswd file, as well, despite the documentation calling out the /full/path/to/htpasswd; however, you may not wish to store that file under the Python directory.)
     74Note that, if the !AppDirectory is set as above, the paths of the executable ''and'' of the script name and parameter values are relative to the directory. This makes updating Python a little simpler because the change can be limited, here, to a single point.
     75This is true for the path to the .htpasswd file as well, despite the documentation calling out the /full/path/to/htpasswd; however, you may not wish to store that file under the Python directory.
    7776}}}
    7877
     
    9796== Using Authentication
    9897
    99 Tracd allows you to run Trac without the need for Apache, but you can take advantage of Apache's password tools (`htpasswd` and `htdigest`) to easily create a password file in the proper format for tracd to use in authentication. (It is also possible to create the password file without `htpasswd` or `htdigest`; see below for alternatives)
     98Tracd allows you to run Trac without the need for Apache, but you can take advantage of Apache's password tools (`htpasswd` and `htdigest`) to easily create a password file in the proper format for tracd to use in authentication. It is also possible to create the password file without `htpasswd` or `htdigest`; see below for alternatives.
    10099
    101100{{{#!div style="border: 1pt dotted; margin: 1em"
     
    143142
    144143=== Basic Authorization: Using a htpasswd password file
     144
    145145This section describes how to use `tracd` with Apache .htpasswd files.
    146146
    147   Note: On Windows It is necessary to install the [https://pypi.python.org/pypi/passlib passlib]
    148   package in order to decode some htpasswd formats. Only `SHA-1` passwords (since Trac 1.0)
    149   work without this module.
     147'''Note''': On Windows It is necessary to install the [https://pypi.python.org/pypi/passlib passlib] package in order to decode some htpasswd formats. Only `SHA-1` passwords (since Trac 1.0) work without this module.
    150148
    151149To create a .htpasswd file use Apache's `htpasswd` command (see [#GeneratingPasswordsWithoutApache below] for a method to create these files without using Apache):
     
    167165 $ tracd -p 8080 --basic-auth="project,/srv/tracenv/testenv/.htpasswd,My Test Env" /path/to/project
    168166}}}
    169 ''Note:'' You might need to pass "-m" as a parameter to htpasswd on some platforms (OpenBSD).
     167
     168'''Note:''' You might need to pass "-m" as a parameter to htpasswd on some platforms (OpenBSD).
    170169
    171170=== Digest authentication: Using a htdigest password file
     
    191190
    192191==== Using `md5sum`
     192
    193193It is possible to use `md5sum` utility to generate digest-password file:
    194194{{{#!sh
     
    253253=== Serving static content
    254254
    255 If `tracd` is the only web server used for the project,
    256 it can also be used to distribute static content
    257 (tarballs, Doxygen documentation, etc.)
    258 
    259 This static content should be put in the `$TRAC_ENV/htdocs` folder,
    260 and is accessed by URLs like `<project_URL>/chrome/site/...`.
    261 
    262 Example: given a `$TRAC_ENV/htdocs/software-0.1.tar.gz` file,
    263 the corresponding relative URL would be `/<project_name>/chrome/site/software-0.1.tar.gz`,
    264 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).
     255If `tracd` is the only web server used for the project, it can also be used to distribute static content, such as tarballs, Doxygen documentation, etc.
     256
     257This static content should be put in the `$TRAC_ENV/htdocs` folder, and is accessed by URLs like `<project_URL>/chrome/site/...`.
     258
     259Example: given a `$TRAC_ENV/htdocs/software-0.1.tar.gz` file, the corresponding relative URL would be `/<project_name>/chrome/site/software-0.1.tar.gz`, 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).
    265260
    266261=== Using tracd behind a proxy
     
    275270
    276271=== Authentication for tracd behind a proxy
    277 It is convenient to provide central external authentication to your tracd instances, instead of using `--basic-auth`. There is some discussion about this in [trac:#9206].
     272
     273It is convenient to provide central external authentication to your tracd instances, instead of using `--basic-auth`. See also [trac:#9206].
    278274
    279275Below is example configuration based on Apache 2.2, mod_proxy, mod_authnz_ldap.
     
    325321}}}
    326322
    327 Note that if you want to install this plugin for all projects, you have to put it in your [TracPlugins#Plugindiscovery global plugins_dir] and enable it in your global trac.ini.
     323Note that if you want to install this plugin for all projects, you have to put it in your [TracPlugins#Plugindiscovery global plugins_directory] and enable it in your global `trac.ini`.
    328324
    329325Global config (e.g. `/srv/trac/conf/trac.ini`):
     
    344340
    345341=== Serving a different base path than /
    346 Tracd supports serving projects with different base urls than /<project>. The parameter name to change this is
     342
     343Tracd supports serving projects with different base urls than /<project>. The parameter name to change this is:
    347344{{{#!sh
    348345 $ tracd --base-path=/some/path