wiki:AdminToolkitScript

Version 11 (modified by rjollos, 14 months ago) (diff)

Format page.

Admin Toolkit - scripts for managing multiple Trac environments

Update

An early release candidate of the Admin Toolkit 0.6rc1 is available. The documentation is out of date and the Apache configuration has changed. We assume no liability or responsibility for anything untoward that may happen.

Description

The Admin Toolkit is a collection of Python scripts (developed specifically for Linux) 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

Configuration

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:

http://localhost/trac/<project_name>

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.
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthName "somename"
      AuthUserFile /srv/.htpasswd
      Require valid-user
   </LimitExcept>
</Location>
  • trac.conf
<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 "somename"
  AuthUserFile /srv/.htpasswd
  Require valid-user
</LocationMatch>

Authentication

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:

/srv/.htpasswd

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

Download the zipped source from here.

Source

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

Example

To create a new Trac environment, run:

trac-admin-mkproject

And answer a few questions.

To delete the project, run:

trac-admin-rmproject

Recent Changes

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

Author/Contributors

Author: stodge
Maintainer: stodge
Contributors: