|Version 2 (modified by stodge, 5 years ago) (diff)|
Admin Toolkit - scripts for managing multiple Trac environments
The Admin Toolkit is a collection of Python scripts that facilitate the management of new and existing Trac projects on a single server, including support for Apache (.htpasswd file), Trac & Subversion (via WebDav) and database backends (currently only Postgresql).
The scripts make it easy to manage multiple Trac environments on a single server. Authentication is supported using a single .htpasswd file - one .htpasswd file is maintained for all projects but support for per-project authentication is in development.
Creating a new Trac environment, Postgresql database and Subversion repository is as simple as typing "trac-admin-mkproject", hitting return and answering a few questions.
The current list of scripts is:
- trac-admin-init - prepare the disk for a new development environment
- trac-admin-mkproject - create a Subversion repository, Postgresql database and Trac environment for one project
- trac-admin-rmproject - remove the Subversion repository, Postgresql database and Trac environment for an existing project
- trac-admin-useradd - add a user (currently one user has access to all projects)
- trac-admin-userdel - remove an existing user
- trac-admin-promote - promote a user to administrator on one of more projects
- trac-admin-demote - remove administrator privileges for a user on one of more projects
Subversion repositories and Trac environments are assumed to be in /srv/svn and /srv/trac though this is configurable.
Access to Subversion is via:
svn co http://localhost/repos/<project_name>/trunk
And Trac projects are accessed via:
Two Apache configuration files are therefore needed (and are included in the Admin Toolkit):
<Location /repos> DAV svn SVNParentPath /srv/svn # Limit write permission to list of valid users. <LimitExcept GET PROPFIND OPTIONS REPORT> # Require SSL connection for password protection. # SSLRequireSSL AuthType Basic AuthName "excds" AuthUserFile /srv/.htpasswd Require valid-user </LimitExcept> </Location>
<Location /trac> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /srv/trac PythonOption TracUriRoot /trac </Location> <LocationMatch "/.+/"> </LocationMatch> <LocationMatch "/trac/[^/]+/login"> AuthType Basic AuthName "excds" AuthUserFile /srv/.htpasswd Require valid-user </LocationMatch>
Authentication is via a single Apache .htpasswd file for all projects; that is, each developer has global access to all projects. A change to the Admin Toolkit that implements per project authentication is in development. The .htpasswd file is located in:
This file is also managed by the Admin Toolkit.
If you have any issues, create a new ticket.
Download the zipped source from here.
To create a new Trac environment, run:
And answer a few questions.
To delete the project, run: