| 1 |
= Cleverbox = |
|---|
| 2 |
|
|---|
| 3 |
The Cleverbox sits on top of [http://trac.edgewall.org Trac] and [http://subversion.tigris.org Subversion]. |
|---|
| 4 |
It provides an interactive shell for deploying and maintaining instances of both projects. |
|---|
| 5 |
|
|---|
| 6 |
== Features == |
|---|
| 7 |
|
|---|
| 8 |
* Apache configuration templates |
|---|
| 9 |
* `trac.ini` configuration templates |
|---|
| 10 |
* Easy to setup |
|---|
| 11 |
* Easy to use |
|---|
| 12 |
|
|---|
| 13 |
== Prerequisites == |
|---|
| 14 |
|
|---|
| 15 |
* Python-2.4+ |
|---|
| 16 |
* Apache-2.0+ |
|---|
| 17 |
* mod_python-3.0+ |
|---|
| 18 |
* Trac-0.10+ |
|---|
| 19 |
* Subversion-1.2+ |
|---|
| 20 |
|
|---|
| 21 |
== Installation == |
|---|
| 22 |
|
|---|
| 23 |
All operations should be performed as root. |
|---|
| 24 |
|
|---|
| 25 |
* Download sources : |
|---|
| 26 |
{{{ |
|---|
| 27 |
svn export http://lab.clever-age.net/svn/lab/cleverbox/tags/0.3 |
|---|
| 28 |
}}} |
|---|
| 29 |
* Install sources : |
|---|
| 30 |
{{{ |
|---|
| 31 |
python setup.py install |
|---|
| 32 |
}}} |
|---|
| 33 |
* Create the directory that will hold apache configuration and cleverobx preferences : |
|---|
| 34 |
{{{ |
|---|
| 35 |
mkdir /etc/cleverbox |
|---|
| 36 |
}}} |
|---|
| 37 |
* Initialize environment : |
|---|
| 38 |
{{{ |
|---|
| 39 |
cleverbox-admin /etc/cleverbox initenv |
|---|
| 40 |
}}} |
|---|
| 41 |
Provide informations required by script, follow its instructions regarding apache configuration. |
|---|
| 42 |
|
|---|
| 43 |
== Basic usage == |
|---|
| 44 |
|
|---|
| 45 |
The Cleverbox implements a "client has many projects" model. You must therefore create at least one client prior to creating a new project. |
|---|
| 46 |
|
|---|
| 47 |
Full documentation of available commands can be obtained with the command : |
|---|
| 48 |
{{{ |
|---|
| 49 |
cleverbox-admin /etc/cleverbox help |
|---|
| 50 |
}}} |
|---|
| 51 |
|
|---|
| 52 |
=== Console launch === |
|---|
| 53 |
|
|---|
| 54 |
{{{ |
|---|
| 55 |
cleverbox-admin /etc/cleverbox |
|---|
| 56 |
}}} |
|---|
| 57 |
|
|---|
| 58 |
=== Client creation === |
|---|
| 59 |
|
|---|
| 60 |
If client already exists, you can skip this step. |
|---|
| 61 |
|
|---|
| 62 |
{{{ |
|---|
| 63 |
client add <client_name> |
|---|
| 64 |
}}} |
|---|
| 65 |
|
|---|
| 66 |
When asked about enabling the client, answer "y" |
|---|
| 67 |
|
|---|
| 68 |
=== Project creation === |
|---|
| 69 |
|
|---|
| 70 |
{{{ |
|---|
| 71 |
project add <client_name> <project_name> |
|---|
| 72 |
}}} |
|---|
| 73 |
|
|---|
| 74 |
* When asked about the project admin, enter your login |
|---|
| 75 |
* When asked about enabling the project, answer "y" |
|---|
| 76 |
|
|---|
| 77 |
Don't forget to reload Apache. |
|---|
| 78 |
|
|---|
| 79 |
== Advanced usage == |
|---|
| 80 |
|
|---|
| 81 |
=== Customising Apache configuration templates for your needs === |
|---|
| 82 |
|
|---|
| 83 |
When creating a new project, the cleverbox will look for Apache configuration templates in directory referenced by `assets_dir` configuration directive. |
|---|
| 84 |
|
|---|
| 85 |
Provided defaults work out of the box, but you may want to use custom configuration templates. |
|---|
| 86 |
You just have to change the value of `assets_dir` configuration directive and the Cleverbox will look for configuration templates in this new directory. |
|---|
| 87 |
|
|---|
| 88 |
The available configuration templates are `apache.conf.single` or `apache.conf.multi` (depending on the value of `vhost_mode` cleverbox directive). |
|---|
| 89 |
|
|---|
| 90 |
At project creation, the selected template's variables are subtituted with concrete values : |
|---|
| 91 |
* `client_name` : client's short name |
|---|
| 92 |
* `project_name` : project's short name |
|---|
| 93 |
* `clients_root` : directory holding Subversion and Trac data for each project |
|---|
| 94 |
* `authbackend_pass` : password for hypothetical authentication backend (ldap, etc) |
|---|
| 95 |
* `trac_install_dir` : directory where Trac is installed on the server |
|---|
| 96 |
* `domain_name` : if in "single" `vhost_mode`, host's domain name |
|---|
| 97 |
|
|---|
| 98 |
=== Customising `trac-defaults.ini` configuration for your needs === |
|---|
| 99 |
|
|---|
| 100 |
This file resides in Cleverbox's `assets_dir` directory. It holds values that will override standard's trac.ini values. |
|---|
| 101 |
|
|---|
| 102 |
For instance, you may want The webadmin plugin to be enabled by default in all new project instances. |
|---|
| 103 |
You just have to add these lines to the file : |
|---|
| 104 |
{{{ |
|---|
| 105 |
[components] |
|---|
| 106 |
webadmin.* = enabled |
|---|
| 107 |
}}} |
|---|
| 108 |
|
|---|
| 109 |
=== Defining defaut permission profiles === |
|---|
| 110 |
|
|---|
| 111 |
At project creation, the Cleverbox removes the `anonymous` permission profile and creates new profiles based on the contents of the |
|---|
| 112 |
`permissions.ini` file (which resides in `assets_dir` directory). Example file : |
|---|
| 113 |
{{{ |
|---|
| 114 |
[trac] |
|---|
| 115 |
authenticated = BROWSER_VIEW CHANGESET_VIEW FILE_VIEW LOG_VIEW MILESTONE_VIEW REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW TICKET_CREATE TICKET_MODIFY TICKET_VIEW TIMELINE_VIEW WIKI_CREATE WIKI_MODIFY WIKI_VIEW |
|---|
| 116 |
privileged = TRAC_ADMIN |
|---|
| 117 |
}}} |
|---|
| 118 |
|
|---|
| 119 |
== Roadmap == |
|---|
| 120 |
|
|---|
| 121 |
=== 0.4-beta === |
|---|
| 122 |
|
|---|
| 123 |
* Integrity checks prior to environment initialisation in `ìnitenv` task |
|---|
| 124 |
* Better unix rights usage |
|---|
| 125 |
* Integration of `cleverbox-backup.sh` script |
|---|
| 126 |
|
|---|
| 127 |
== Changelog == |
|---|
| 128 |
|
|---|
| 129 |
=== 2007-08-07 | trunk === |
|---|
| 130 |
|
|---|
| 131 |
* '''[BC BREAK]''' Implemented overridable trac and apache configuration |
|---|
| 132 |
* Wrote better documentation |
|---|
| 133 |
* Got read of hardcoded Clever Age stuff |
|---|
| 134 |
* Implemented distutils installation |
|---|
| 135 |
* Adopted GPLv3 |
|---|
| 136 |
* Fixed "Iteration over a non-sequence" bug |
|---|
| 137 |
|
|---|
| 138 |
== Maintainer == |
|---|
| 139 |
|
|---|
| 140 |
Tristan Rivoallan (trivoallan AT clever-age DOT com) |
|---|