Version 2 (modified by Mike Stoddart, 9 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):

  • subversion.conf
<Location /repos>
   DAV svn
   SVNParentPath /srv/svn

   # Limit write permission to list of valid users.
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthName "excds"
      AuthUserFile /srv/.htpasswd
      Require valid-user
  • trac.conf
<Location /trac>
  SetHandler mod_python
  PythonInterpreter main_interpreter
  PythonHandler trac.web.modpython_frontend 
  PythonOption TracEnvParentDir /srv/trac
  PythonOption TracUriRoot /trac

<LocationMatch "/.+/">

<LocationMatch "/trac/[^/]+/login">
  AuthType Basic
  AuthName "excds"
  AuthUserFile /srv/.htpasswd
  Require valid-user


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.

Bugs/Feature Requests

Existing bugs and feature requests for AdminToolkitScript are here.

If you have any issues, create a new ticket.


Download the zipped source from [download:admintoolkitscript here].


You can check out AdminToolkitScript from here using Subversion, or browse the source with Trac.


To create a new Trac environment, run:


And answer a few questions.

To delete the project, run:


Recent Changes

11846 by rjollos on 2012-07-31 06:44:42
Added code that was attached to the project wiki page.
5176 by stodge on 2009-02-02 12:35:59
New hack AdminToolkitScript, created by stodge


Author: stodge?