4 Please note that :doc:`fabric-recommend`
5 for Ganeti Web Manager version 0.7 and above.
7 For troubleshooting and help with common errors, see :doc:`errors`.
9 .. _install-dependencies:
14 The following packages are **required** to run Ganeti Web Manager.
15 Either install these with your system's package manager (recomended), or
16 directly from the project sites.
18 - `Python >= 2.5 but < 3.x <http://www.python.org/>`_ (Python 3.x is
19 **not** supported due to backward-compatibility issues)
21 Django <http://docs.djangoproject.com/en/dev/intro/install/>`_ with
22 specific versions: 1.2 for GWM <0.7, 1.3 for GWM 0.7-0.8, 1.4 for GWM
25 Django-registration <http://bitbucket.org/ubernostrum/django-registration/wiki/Home>`_
26 - `Django South >=0.7 <http://south.aeracode.org/docs/installation.html>`_
27 - `Django Haystack >= 1.2.3 <http://haystacksearch.org/>`_
28 - `Python Whoosh >= 1.8.3 <https://bitbucket.org/mchaput/whoosh>`_
29 - `Django Fields >= 0.2.0 <https://github.com/svetlyak40wt/django-fields>`_
31 If you're on Ubuntu >=v10.04, you should be able to install all of these
32 using `APT <http://en.wikipedia.org/wiki/Advanced_Packaging_Tool>`_ and
33 `Python pip <http://pypi.python.org/pypi/pip>`_ in one go with the
37 sudo apt-get install python2.7 python-django python-django-registration python-django-south
38 sudo pip install django-haystack whoosh django-fields
43 The following packages are **optional**, but may reduce the
44 functionality of Ganeti Web Manager if not installed.
46 - `MySQL <http://dev.mysql.com/doc/refman/5.1/en/installing.html>`_ or
47 `PostgreSQL <http://www.postgresql.org/docs/8.1/interactive/installation.html>`_
48 (Ganeti Web Manager uses SQLite by default, but using MySQL or
49 PostreSQL is suggested for production environments.)
50 - `Twisted >=10.2 <http://twistedmatrix.com/trac/>`_ and `Twisted
51 Web <http://twistedmatrix.com/trac/wiki/TwistedWeb>`_ (Required for
52 `VNC <http://en.wikipedia.org/wiki/Virtual_Network_Computing>`_
58 #. Make sure you have `Git <http://git-scm.com/>`_ installed.
59 #. Either download and unpack the `latest
60 release <https://code.osuosl.org/projects/ganeti-webmgr/files>`_, or
61 check it out from the repository:
64 #For public, read-only access use:
65 git clone git://git.osuosl.org/gitolite/ganeti/ganeti_webmgr
67 #Developers with push access to the repository use:
68 git clone git@git.osuosl.org:ganeti/ganeti_webmgr
70 #. Make a new directory called something like *ganeti\_webmgr\_lib* and
74 mkdir ganeti_webmgr_lib
78 `object_permissions <http://code.osuosl.org/projects/object-permissions>`_,
79 `object_log <http://code.osuosl.org/projects/django-object-log>`_,
80 `muddle_users <http://code.osuosl.org/projects/muddle-users>`_ and
81 `muddle <http://code.osuosl.org/projects/muddle>`_ :
85 git clone git://git.osuosl.org/gitolite/django/django_object_permissions
86 git clone git://git.osuosl.org/gitolite/django/django_object_log
87 git clone git://git.osuosl.org/gitolite/django/django_muddle_users
88 git clone git://git.osuosl.org/gitolite/django/muddle
90 #. Change directory into the Ganeti Web Manager root directory and
91 symlink the aforementioned modules:
95 ln -s ../ganeti_webmgr_lib/django_object_permissions/object_permissions/ .
96 ln -s ../ganeti_webmgr_lib/django_object_log/object_log/ .
97 ln -s ../ganeti_webmgr_lib/django_muddle_users/muddle_users .
98 ln -s ../ganeti_webmgr_lib/muddle/muddle .
100 Optional (for the web-based VNC console)
101 ''''''''''''''''''''''''''''''''''''''''
103 #. Check out `noVNC <https://github.com/kanaka/noVNC>`_ directly into
104 the ganeti\_webmgr root:
108 git clone git://github.com/kanaka/noVNC.git
110 #. Check out :ref:`vnc-authproxy` directly into the ganeti\_webmgr root::
113 git clone git://git.osuosl.org/gitolite/ganeti/twisted_vncauthproxy
118 #. In the project root, you'll find a default-settings file called
119 **settings.py.dist**. Copy it to **settings.py**:
122 cp settings.py.dist settings.py
124 #. If you want to use another database engine besides the default SQLite
125 (not recommended for production), edit **settings.py**, and edit the
126 following lines to reflect your wishes:
129 1DATABASE_ENGINE = '' # <-- Change this to 'mysql', 'postgresql', 'postgresql_psycopg2' or 'sqlite3'
130 2DATABASE_NAME = '' # <-- Change this to a database name, or a file for SQLite
131 3DATABASE_USER = '' # <-- Change this (not needed for SQLite)
132 4DATABASE_PASSWORD = '' # <-- Change this (not needed for SQLite)
133 5DATABASE_HOST = '' # <-- Change this (not needed if database is localhost)
134 6DATABASE_PORT = '' # <-- Change this (not needed if database is localhost)
136 #. Initialize Database:
139 ./manage.py syncdb --migrate
141 #. Build the search indexes
144 ./manage.py rebuild_index
146 #. Everything should be all set up! Run the development server with:
149 ./manage.py runserver
151 See :ref:`install-additional-config` to configure a production server.