installation.rst
201 lines
| 6.3 KiB
| text/x-rst
|
RstLexer
/ docs / installation.rst
r568 | .. _installation: | |||
Mads Kiilerich
|
r4814 | ========================== | ||
Installation on Unix/Linux | ||||
========================== | ||||
r568 | ||||
Mads Kiilerich
|
r4902 | ``Kallithea`` is written entirely in Python. Kallithea requires Python version | ||
2.6 or higher. | ||||
.. Note:: Alternative very detailed installation instructions for Ubuntu Server | ||||
with celery, indexer and daemon scripts: https://gist.github.com/4546398 | ||||
r568 | ||||
Mads Kiilerich
|
r4902 | Installing Kallithea from Python Package Index (PyPI) | ||
----------------------------------------------------- | ||||
r1092 | ||||
Mads Kiilerich
|
r4902 | ``Kallithea`` can be installed from PyPI with:: | ||
r568 | ||||
Bradley M. Kuhn
|
r4192 | pip install kallithea | ||
r568 | ||||
Mads Kiilerich
|
r4902 | Installation in virtualenv | ||
-------------------------- | ||||
r2358 | ||||
Mads Kiilerich
|
r4902 | It is highly recommended to use a separate virtualenv_ for installing Kallithea. | ||
This way, all libraries required by Kallithea will be installed separately from your | ||||
main Python installation and things will be less problematic when upgrading the | ||||
system or Kallithea. | ||||
An additional benefit of virtualenv_ is that it doesn't require root privileges. | ||||
r568 | ||||
Mads Kiilerich
|
r4902 | - Assuming you have installed virtualenv_, create a new virtual environment | ||
r3224 | using virtualenv command:: | |||
r572 | ||||
Mads Kiilerich
|
r4902 | virtualenv /srv/kallithea/venv | ||
r572 | ||||
Mads Kiilerich
|
r4902 | .. note:: Older versions of virtualenv required ``--no-site-packages`` to work | ||
correctly. It should no longer be necessary. | ||||
r1092 | ||||
Mads Kiilerich
|
r4902 | - this will install new virtualenv_ into `/srv/kallithea/venv`. | ||
- Activate the virtualenv_ in your current shell session by running:: | ||||
r1092 | ||||
Mads Kiilerich
|
r4902 | source /srv/kallithea/venv/bin/activate | ||
r1092 | ||||
.. note:: If you're using UNIX, *do not* use ``sudo`` to run the | ||||
``virtualenv`` script. It's perfectly acceptable (and desirable) | ||||
to create a virtualenv as a normal user. | ||||
r3224 | ||||
Bradley M. Kuhn
|
r4192 | - Make a folder for Kallithea data files, and configuration somewhere on the | ||
r1309 | filesystem. For example:: | |||
r572 | ||||
Mads Kiilerich
|
r4902 | mkdir /srv/kallithea | ||
r3224 | ||||
Bradley M. Kuhn
|
r4192 | - Go into the created directory run this command to install kallithea:: | ||
r572 | ||||
Bradley M. Kuhn
|
r4192 | pip install kallithea | ||
r3224 | ||||
Mads Kiilerich
|
r4902 | Alternatively, download a .tar.gz from http://pypi.python.org/pypi/Kallithea, | ||
extract it and run:: | ||||
python setup.py install | ||||
Bradley M. Kuhn
|
r4192 | - This will install Kallithea together with pylons and all other required | ||
Mads Kiilerich
|
r4902 | python libraries into the activated virtualenv. | ||
r572 | ||||
r855 | Requirements for Celery (optional) | |||
---------------------------------- | ||||
r1309 | In order to gain maximum performance | |||
Bradley M. Kuhn
|
r4192 | there are some third-party you must install. When Kallithea is used | ||
r1309 | together with celery you have to install some kind of message broker, | |||
recommended one is rabbitmq_ to make the async tasks work. | ||||
Bradley M. Kuhn
|
r4192 | Of course Kallithea works in sync mode also and then you do not have to install | ||
r3224 | any third party applications. However, using Celery_ will give you a large | |||
speed improvement when using many big repositories. If you plan to use | ||||
Bradley M. Kuhn
|
r4192 | Kallithea for say 7 to 10 repositories, Kallithea will perform perfectly well | ||
r1309 | without celery running. | |||
r3224 | ||||
Bradley M. Kuhn
|
r4192 | If you make the decision to run Kallithea with celery make sure you run | ||
r3224 | celeryd using paster and message broker together with the application. | |||
r1309 | ||||
r855 | .. note:: | |||
Bradley M. Kuhn
|
r4192 | Installing message broker and using celery is optional, Kallithea will | ||
r1092 | work perfectly fine without them. | |||
r855 | ||||
r3224 | **Message Broker** | |||
r855 | ||||
- preferred is `RabbitMq <http://www.rabbitmq.com/>`_ | ||||
r1092 | - A possible alternative is `Redis <http://code.google.com/p/redis/>`_ | |||
r855 | ||||
r3224 | For installation instructions you can visit: | |||
r1092 | http://ask.github.com/celery/getting-started/index.html. | |||
This is a very nice tutorial on how to start using celery_ with rabbitmq_ | ||||
r855 | ||||
r572 | ||||
Mads Kiilerich
|
r4902 | Next | ||
---- | ||||
You can now proceed to :ref:`setup`. | ||||
Upgrading Kallithea from Python Package Index (PyPI) | ||||
----------------------------------------------------- | ||||
.. note:: | ||||
Firstly, it is recommended that you **always** perform a database and | ||||
configuration backup before doing an upgrade. | ||||
(These directions will use '{version}' to note that this is the version of | ||||
Kallithea that these files were used with. If backing up your Kallithea | ||||
instance from version 0.1 to 0.2, the ``my.ini`` file could be | ||||
backed up to ``my.ini.0-1``.) | ||||
If using a sqlite database, stop the Kallithea process/daemon/service, and | ||||
then make a copy of the database file:: | ||||
service kallithea stop | ||||
cp kallithea.db kallithea.db.{version} | ||||
Back up your configuration file:: | ||||
cp my.ini my.ini.{version} | ||||
Ensure that you are using the Python Virtual Environment that you'd originally | ||||
installed Kallithea in:: | ||||
pip freeze | ||||
will list all packages installed in the current environment. If Kallithea | ||||
isn't listed, change virtual environments to your venv location:: | ||||
source /srv/kallithea/venv/bin/activate | ||||
Once you have verified the environment you can upgrade ``Kallithea`` with:: | ||||
pip install --upgrade kallithea | ||||
Then run the following command from the installation directory:: | ||||
r855 | ||||
Mads Kiilerich
|
r4902 | paster make-config Kallithea my.ini | ||
This will display any changes made by the new version of Kallithea to your | ||||
current configuration. It will try to perform an automerge. It's recommended | ||||
that you re-check the content after the automerge. | ||||
.. note:: | ||||
Please always make sure your .ini files are up to date. Often errors are | ||||
caused by missing params added in new versions. | ||||
It is also recommended that you rebuild the whoosh index after upgrading since | ||||
the new whoosh version could introduce some incompatible index changes. Please | ||||
read the changelog to see if there were any changes to whoosh. | ||||
The final step is to upgrade the database. To do this simply run:: | ||||
paster upgrade-db my.ini | ||||
This will upgrade the schema and update some of the defaults in the database, | ||||
and will always recheck the settings of the application, if there are no new | ||||
options that need to be set. | ||||
.. note:: | ||||
DB schema upgrade library has some limitations and can sometimes fail if you try to | ||||
upgrade from older major releases. In such case simply run upgrades sequentially, eg. | ||||
upgrading from 0.1.X to 0.3.X should be done like that: 0.1.X. > 0.2.X > 0.3.X | ||||
You can always specify what version of Kallithea you want to install for example in pip | ||||
`pip install Kallithea==0.2` | ||||
You may find it helpful to clear out your log file so that new errors are | ||||
readily apparent:: | ||||
echo > kallithea.log | ||||
Once that is complete, you may now start your upgraded Kallithea Instance:: | ||||
service kallithea start | ||||
Or:: | ||||
paster serve /srv/kallithea/my.ini | ||||
.. note:: | ||||
If you're using Celery, make sure you restart all instances of it after | ||||
upgrade. | ||||
r855 | ||||
r568 | ||||
r3224 | .. _virtualenv: http://pypi.python.org/pypi/virtualenv | |||
r572 | .. _python: http://www.python.org/ | |||
.. _mercurial: http://mercurial.selenic.com/ | ||||
.. _celery: http://celeryproject.org/ | ||||
H Waldo G
|
r2806 | .. _rabbitmq: http://www.rabbitmq.com/ | ||