~azzar1/unity/add-show-desktop-key

1164.2.7 by Matt Giuca
Added doc/man/(config|install).rst. Bit more of man/index.rst.
1
.. IVLE - Informatics Virtual Learning Environment
2
   Copyright (C) 2007-2009 The University of Melbourne
3
4
.. This program is free software; you can redistribute it and/or modify
5
   it under the terms of the GNU General Public License as published by
6
   the Free Software Foundation; either version 2 of the License, or
7
   (at your option) any later version.
8
9
.. This program is distributed in the hope that it will be useful,
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
   GNU General Public License for more details.
13
14
.. You should have received a copy of the GNU General Public License
15
   along with this program; if not, write to the Free Software
16
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
17
18
************
19
Installation
20
************
21
1164.2.9 by Matt Giuca
doc/man: More headings!
22
System requirements
1164.2.7 by Matt Giuca
Added doc/man/(config|install).rst. Bit more of man/index.rst.
23
===================
24
1164.2.14 by William Grant
Add dependencies to docs.
25
Given versions are those on which IVLE is known to work; earlier versions
26
might work too. Debian/Ubuntu package names are given after the name of the
27
software.
28
29
* Ubuntu 8.04 or later (other distros should work with some tweaking, but are untested)
30
* Apache 2.x with modules:
31
   + mod_python (``libapache2-mod-python``)
32
   + mod_dav_svn and mod_authz_svn (``libapache2-svn``)
33
* Python 2.5 or 2.6 with modules:
34
   + pysvn (``python-svn``)
35
   + cjson (``python-cjson``)
36
   + Genshi (``python-genshi``)
37
   + ConfigObj (``python-configobj``)
38
   + Routes (``python-routes``)
39
   + docutils (``python-docutils``)
40
   + epydoc (``python-epydoc``)
41
   + Storm (``python-storm``)
42
   + psycopg2 (``python-psycopg2``)
43
* jQuery (``libjs-jquery``)
44
* PostgreSQL 8.3 or later (``postgresql``)
45
* Subversion (``subversion``)
46
* debootstrap (``debootstrap``)
47
* GCC and related build machinery (``build-essential``)
1164.2.7 by Matt Giuca
Added doc/man/(config|install).rst. Bit more of man/index.rst.
48
1164.2.9 by Matt Giuca
doc/man: More headings!
49
Master versus slave servers
50
===========================
51
1164.2.7 by Matt Giuca
Added doc/man/(config|install).rst. Bit more of man/index.rst.
52
Installing from a Debian package
53
================================
54
55
Installing from source
56
======================
57
1164.2.15 by William Grant
Add some initial installation docs.
58
While installing from a distribution package is often a better idea for
59
users, developers will need to install from a plain source tree.
60
61
To get the tree, either grab and extract a release tarball, or get the
62
very latest code using bzr: ::
63
64
   bzr get lp:ivle
65
66
You should then change into the new source directory.
67
68
As IVLE needs to compile some binaries, you must first build, then
69
install it: ::
70
71
   ./setup.py build
72
   sudo ./setup.py install
73
74
Unlike the package, you will have to manually set up the database and
75
configuration.
76
77
.. TODO: Separate IVLE PostgreSQL account.
78
79
First you must create a PostgreSQL database, and populate it with the
80
IVLE schema. You may use any name for the database. ::
81
82
   sudo -u postgres createdb ivle
83
   sudo -u postgres createlang plpgsql ivle
84
   sudo -u postgres psql -d ivle < userdb/users.sql
85
86
The configuration wizard - ``ivle-config`` - will ask you a series of
87
questions. Apart from database settings, the defaults should be correct
88
for a development system. If deploying IVLE properly - particularly on
89
multiple nodes - several options will need to be changed. Watching
90
carefully, run: ::
91
92
   sudo ivle-config
93
94
1164.2.7 by Matt Giuca
Added doc/man/(config|install).rst. Bit more of man/index.rst.
95
Basic configuration
96
===================
97
98
.. Note: Place here only the configuration required to get the system
99
   installed and running. Any further configuration should go in config.rst.
100
1164.2.15 by William Grant
Add some initial installation docs.
101
IVLE needs a directory hierarchy in which to store filesystem data, which
102
by default lives in ``/var/lib/ivle``. Create it now. ::
103
104
   sudo ivle-createdatadirs
105
106
.. TODO: Setting jail/devmode, jail/suite, jail/extra_packages...
107
         We also need to document setting of the default mirror, once
108
         issue #150 is fixed.
109
110
You will require a self-contained jail environment in which to safely
111
execute student code. The creation process basically downloads a minimal
112
Ubuntu system and installs it in ``/var/lib/ivle/jails/__base__``. Note
113
that this could download a couple of hundred megabytes. You should
114
replace the URL with a good close Ubuntu mirror. ::
115
116
   sudo ivle-buildjail -r -m http://url.to.archive/mirror
117
1164.2.16 by William Grant
Add docs on configuring Apache.
118
Configuring Apache
119
------------------
120
121
IVLE makes use of two Apache virtual hosts: one for the application itself,
122
and one for the Subversion services. There are example configuration files
123
in ``examples/config/apache.conf`` and ``examples/config/apache-svn.conf``,
124
which will run IVLE at ``http://ivle.localhost/``.
125
126
On a Debian or Ubuntu system, just copy those two files into
127
``/etc/apache2/sites-available`` under appropriate names (eg. ``ivle`` and
128
``ivle-svn``). Then you need to activate them: ::
129
130
   sudo a2ensite ivle
131
   sudo a2ensite ivle-svn
132
   sudo /etc/init.d/apache2 reload
133
134
1164.2.7 by Matt Giuca
Added doc/man/(config|install).rst. Bit more of man/index.rst.
135
.. note::
136
   For more advanced configuration, see :ref:`Configuring IVLE
137
   <ref-configuring-ivle>`.