Abort and print when dependencies not met.
[ganeti_webmgr.git] / docs / source / manual-install.rst
blob3cf18e639ef5d5cec6b1c915a90591d66ad52398
1 Manual installation
2 ===================
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:
11 Install dependencies
12 ~~~~~~~~~~~~~~~~~~~~
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)
20 -  `Python
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
23    >=0.9
24 -  `Python
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
34 following command:
37     sudo apt-get install python2.7 python-django python-django-registration python-django-south
38     sudo pip install django-haystack whoosh django-fields
40 Optional
41 ''''''''
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>`_
53    component.)
55 Get the code
56 ~~~~~~~~~~~~
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:
62    ::
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
71    move into it:
72    ::
74        mkdir ganeti_webmgr_lib
75        cd ganeti_webmgr_lib
77 #. Check out
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>`_ :
83    ::
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:
92    ::
94        cd ../ganeti_webmgr/
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:
105    ::
107        cd ganeti_webmgr
108        git clone git://github.com/kanaka/noVNC.git
110 #. Check out :ref:`vnc-authproxy` directly into the ganeti\_webmgr root::
112        cd ganeti_webmgr
113        git clone git://git.osuosl.org/gitolite/ganeti/twisted_vncauthproxy
115 Configuration
116 ~~~~~~~~~~~~~
118 #. In the project root, you'll find a default-settings file called
119    **settings.py.dist**. Copy it to **settings.py**:
120    ::
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:
127    ::
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:
137    ::
139        ./manage.py syncdb --migrate
141 #. Build the search indexes
142    ::
144        ./manage.py rebuild_index
146 #. Everything should be all set up! Run the development server with:
147    ::
149        ./manage.py runserver
151 See :ref:`install-additional-config` to configure a production server.