Code

446ff6a5c5d57005c0effd2c3d783fbc24c118fe
[roundup.git] / doc / installation.txt
1 Installing Roundup
2 ==================
4 :Version: $Revision: 1.2 $
6 .. contents::
9 Overview
10 ========
12 Broken out separately, there are several conceptual pieces to a
13 Roundup installation:
15 Roundup support code
16  Installed into your Python install's lib directory
18 Roundup scripts
19  These include the email gateway, the roundup
20  HTTP server, the roundup administration command-line interface, etc.
22 Roundup instances
23  Instances consist of core support files, issues
24  (be they bug reports or otherwise), instance configuration file(s),
25  etc.  Roundup instances also adhere to a specific "Template" which
26  defines the fields usable/assignable on a per-issue basis.  A
27  description of the provided templates follows.
29 Classic Template
30 ----------------
32 The classic template is the one defined in the `Roundup Specification`_. It
33 holds issues which have priorities and statuses. Each issue may also have a
34 set of messages which are disseminated to the issue's list of nosy users.
37 Extended Template
38 -----------------
40 The extended template adds additional information to issues: product,
41 platform, version, targetversion and supportcall.
42 There is an additional class for
43 handling support calls, which includes a time log, customername, rate and
44 source.
46 The priorty class has different default entries too: "fatal-bug", "bug",
47 "usability" and "feature".
49 Users of this template will want to change the contents of the product
50 class as soon as the instance is created.
53 Prerequisites
54 =============
56 Python 2.1.1 or newer with a functioning anydbm or bsddb module.
58 Download the latest version from http://www.python.org/.
61 Testing your Python
62 -------------------
64 Run ``"python -c 'import test;test.go()'"`` and make sure there
65 are no errors.  If there are errors, please let us know!
68 Getting Roundup
69 ===============
71 Download the latest version from http://roundup.sf.net/.
74 Installation
75 ============
77 Set aside 15-30 minutes.
79 1. To install the Roundup support code into your Python tree and
80    Roundup scripts into /usr/local/bin::
82        python setup.py install
84    If you would like to place the Roundup scripts in a directory other
85    than ``/usr/local/bin``, use the ``--install-scripts`` option as follows,
86    replacing ``/opt/roundup/bin`` with the location where you would like
87    the scripts to reside::
89        python setup.py install --install-scripts=/opt/roundup/bin
91 2. To create a Roundup instance (necessary to do before you can
92    use the software in any real fashion):
94    a. (Optional) If you intend to keep your roundup instances
95       under one top level directory which does not exist yet,
96       you should create that directory now.  Example:
98          mkdir /opt/roundup/instances
100    b. Either add the Roundup script location to your ``PATH``
101       environment variable or specify the full path to
102       the command in the next step.
104   c.  ``roundup-admin init``
106       You will be asked a series of questions.  A description of
107       the Roundup-provided templates can be found under the Overview_::
109           Enter instance home: /opt/roundup/instances/support
110           Templates: classic, extended
111           Select template [classic]: classic
112           Back ends: anydbm, bsddb
113           Select backend [anydbm]: anydbm
114           Admin Password:
115                  Confirm:
117 3. Each instance ideally should have its own UNIX group, so create
118    a UNIX group (edit ``/etc/group`` or your appropriate NIS map if
119    you're using NIS).  To continue with my examples so far, I would
120    create the UNIX group 'support', although the name of the UNIX
121    group does not have to be the same as the instance name.  To this
122    'support' group I then add all of the UNIX usernames who will be
123    working with this Roundup instance.  In addition to 'real' users,
124    the Roundup email gateway will need to have permissions to this
125    area as well, so add the user your mail service runs as to the
126    group.  The UNIX group might then look like::
128         support:*:1002:jblaine,samh,geezer,mail
130    If you intend to use the web interface (as most people do), you
131    should also add the username your web server runs as to the group.
132    My group now looks like this::
134         support:*:1002:jblaine,samh,geezer,mail,apache
136 4. Configure your new instance by editing the file ``instance_config.py``
137    located in the instance home you specified in step 2c above.  This
138    file is Python code and must adhere to Python syntax rules, but
139    don't be daunted if you do not know Python - it should look pretty
140    straightfoward if you carefully read the comments in the file.
142 5. There are two supported ways to get emailed issues into the
143    Roundup instance.  You should pick ONE of the following, both
144    of which will continue my example setup from above:
146    a. Set up a mail alias called "support" as::
148        "|/opt/roundup/bin/roundup-mailgw /opt/roundup/instances/support"
150       If you use Sendmail's ``smrsh`` mechanism, please read the notes
151       under 'Platform-Specific Notes'
153    b. OR... Configure roundup-mailgw to run every 10 minutes or
154       so via ``cron``.  My cron job would be (these 2 lines all on one
155       line)::
157        10 * * * * /opt/roundup/bin/roundup-mailgw
158                 /opt/roundup/instances/support /var/mail/support
160 6. TODO (mention perms)
162 7. Test the email gateway.  Under most flavors of UNIX, this
163    can be done by::
165      echo test | mail -s '[issue] test' support@YOUR_DOMAIN_HERE
167 TODO (finish)
170 Further Reading
171 ===============
173 If you intend to use Roundup with anything other than the defualt
174 templates, if you would like to hack on Roundup, or if you would
175 like implementation details, you should read `Customising Roundup`_.
178 Platform-Specific Notes
179 =======================
181 Sendmail smrsh
182 --------------
184 If you use Sendmail's ``smrsh`` mechanism, you will need to tell
185 smrsh that roundup-mailgw is a valid/trusted mail handler
186 before it will work.
188 This is usually done via the following 2 steps:
190 1. make a symlink in ``/etc/smrsh`` called ``roundup-mailgw``
191    which points to the full path of your actual ``roundup-mailgw``
192    script.
194 2. change your alias to ``"|roundup-mailgw <instance_home>"``
197 Linux
198 -----
200 Python 2.1.1 as shipped with SuSE7.3 might be missing module
201 ``_weakref``.
203 -------------------------------------------------------------------------------
205 Back to `Table of Contents`_
207 Next: `Getting Started`_
209 .. _`table of contents`: index.html
210 .. _`getting started`: getting_started.html
211 .. _`roundup specification`: spec.html
212 .. _`customising roundup`: customizing.html