wiki:AdminToolkitScript

Version 4 (modified by stodge, 5 years ago) (diff)

--

Admin Toolkit - scripts for managing multiple Trac environments

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
Contributors: