installation.rst
144 lines
| 5.6 KiB
| text/x-rst
|
RstLexer
/ docs / installation.rst
r568 | .. _installation: | |||
Mads Kiilerich
|
r4814 | ========================== | ||
Installation on Unix/Linux | ||||
========================== | ||||
r568 | ||||
Søren Løvborg
|
r5425 | The following describes three different ways of installing Kallithea: | ||
Mads Kiilerich
|
r4902 | |||
Mads Kiilerich
|
r5081 | - :ref:`installation-source`: The simplest way to keep the installation | ||
Søren Løvborg
|
r5425 | up-to-date and track any local customizations is to run directly from | ||
source in a Kallithea repository clone, preferably inside a virtualenv | ||||
virtual Python environment. | ||||
r568 | ||||
Thomas De Schampheleire
|
r4924 | - :ref:`installation-virtualenv`: If you prefer to only use released versions | ||
of Kallithea, the recommended method is to install Kallithea in a virtual | ||||
Python environment using `virtualenv`. The advantages of this method over | ||||
direct installation is that Kallithea and its dependencies are completely | ||||
contained inside the virtualenv (which also means you can have multiple | ||||
installations side by side or remove it entirely by just removing the | ||||
virtualenv directory) and does not require root privileges. | ||||
Thomas De Schampheleire
|
r4922 | |||
Mads Kiilerich
|
r8454 | - Kallithea can also be installed with plain pip - globally or with ``--user`` | ||
or similar. The package will be installed in the same location as all other | ||||
Python packages you have ever installed. As a result, removing it is not as | ||||
straightforward as with a virtualenv, as you'd have to remove its | ||||
dependencies manually and make sure that they are not needed by other | ||||
packages. We recommend using virtualenv. | ||||
Thomas De Schampheleire
|
r4924 | |||
Andrew Shadura
|
r5964 | Regardless of the installation method you may need to make sure you have | ||
appropriate development packages installed, as installation of some of the | ||||
Kallithea dependencies requires a working C compiler and libffi library | ||||
headers. Depending on your configuration, you may also need to install | ||||
Git and development packages for the database of your choice. | ||||
For Debian and Ubuntu, the following command will ensure that a reasonable | ||||
set of dependencies is installed:: | ||||
Mads Kiilerich
|
r8089 | sudo apt-get install build-essential git libffi-dev python3-dev | ||
Andrew Shadura
|
r5964 | |||
For Fedora and RHEL-derivatives, the following command will ensure that a | ||||
reasonable set of dependencies is installed:: | ||||
Mads Kiilerich
|
r8089 | sudo yum install gcc git libffi-devel python3-devel | ||
Andrew Shadura
|
r5964 | |||
Thomas De Schampheleire
|
r4924 | .. _installation-source: | ||
Mads Kiilerich
|
r5433 | |||
Thomas De Schampheleire
|
r4924 | Installation from repository source | ||
----------------------------------- | ||||
Mads Kiilerich
|
r8073 | To install Kallithea in a virtualenv using the stable branch of the development | ||
Mads Kiilerich
|
r8359 | repository, use the following commands in your bash shell:: | ||
Thomas De Schampheleire
|
r4922 | |||
Mads Kiilerich
|
r4989 | hg clone https://kallithea-scm.org/repos/kallithea -u stable | ||
Thomas De Schampheleire
|
r4922 | cd kallithea | ||
Mads Kiilerich
|
r8385 | python3 -m venv venv | ||
. venv/bin/activate | ||||
Mads Kiilerich
|
r8777 | pip install --upgrade "pip<24.1" "setuptools<67" | ||
Thomas De Schampheleire
|
r6703 | pip install --upgrade -e . | ||
Mads Kiilerich
|
r8089 | python3 setup.py compile_catalog # for translation of the UI | ||
Thomas De Schampheleire
|
r4922 | |||
Mads Kiilerich
|
r8383 | .. note:: | ||
This will install all Python dependencies into the virtualenv. Kallithea | ||||
itself will however only be installed as a pointer to the source location. | ||||
The source clone must thus be kept in the same location, and it shouldn't be | ||||
updated to other revisions unless you want to upgrade. Edits in the source | ||||
tree will have immediate impact (possibly after a restart of the service). | ||||
Mads Kiilerich
|
r8555 | You can now proceed to :ref:`prepare-front-end-files`. | ||
Thomas De Schampheleire
|
r4922 | |||
Thomas De Schampheleire
|
r4924 | .. _installation-virtualenv: | ||
r568 | ||||
Mads Kiilerich
|
r5433 | |||
Thomas De Schampheleire
|
r4924 | Installing a released version in a virtualenv | ||
--------------------------------------------- | ||||
r2358 | ||||
Mads Kiilerich
|
r8073 | It is highly recommended to use a separate virtualenv for installing Kallithea. | ||
Mads Kiilerich
|
r4902 | This way, all libraries required by Kallithea will be installed separately from your | ||
Thomas De Schampheleire
|
r4924 | main Python installation and other applications and things will be less | ||
problematic when upgrading the system or Kallithea. | ||||
Mads Kiilerich
|
r8073 | An additional benefit of virtualenv is that it doesn't require root privileges. | ||
r568 | ||||
Mads Kiilerich
|
r8384 | - Don't install as root - install as a dedicated user like ``kallithea``. | ||
Mads Kiilerich
|
r8385 | If necessary, create the top directory for the virtualenv (like | ||
``/srv/kallithea/venv``) as root and assign ownership to the user. | ||||
Mads Kiilerich
|
r8384 | |||
Mads Kiilerich
|
r8386 | Make a parent folder for the virtualenv (and perhaps also Kallithea | ||
configuration and data files) such as ``/srv/kallithea``. Create the | ||||
directory as root if necessary and grant ownership to the ``kallithea`` user. | ||||
Mads Kiilerich
|
r8384 | - Create a new virtual environment, for example in ``/srv/kallithea/venv``, | ||
specifying the right Python binary:: | ||||
r572 | ||||
Mads Kiilerich
|
r8073 | python3 -m venv /srv/kallithea/venv | ||
r572 | ||||
Mads Kiilerich
|
r8073 | - Activate the virtualenv in your current shell session and make sure the | ||
Mads Kiilerich
|
r8359 | basic requirements are up-to-date by running the following commands in your | ||
bash shell:: | ||||
r1092 | ||||
Andrew Shadura
|
r5965 | . /srv/kallithea/venv/bin/activate | ||
Mads Kiilerich
|
r8777 | pip install --upgrade "pip<24.1" "setuptools<67" | ||
r1092 | ||||
Mads Kiilerich
|
r8384 | .. note:: You can't use UNIX ``sudo`` to source the ``activate`` script; it | ||
will "activate" a shell that terminates immediately. | ||||
r3224 | ||||
Mads Kiilerich
|
r8384 | - Install Kallithea in the activated virtualenv:: | ||
r572 | ||||
Thomas De Schampheleire
|
r6703 | pip install --upgrade kallithea | ||
r3224 | ||||
Mads Kiilerich
|
r7748 | .. note:: Some dependencies are optional. If you need them, install them in | ||
the virtualenv too:: | ||||
pip install --upgrade kallithea python-ldap python-pam psycopg2 | ||||
This might require installation of development packages using your | ||||
distribution's package manager. | ||||
Thomas De Schampheleire
|
r8369 | Alternatively, download a .tar.gz from http://pypi.python.org/pypi/Kallithea, | ||
extract it and install from source by running:: | ||||
Mads Kiilerich
|
r4902 | |||
Thomas De Schampheleire
|
r8369 | pip install --upgrade . | ||
Mads Kiilerich
|
r4902 | |||
Thomas De Schampheleire
|
r6302 | - This will install Kallithea together with all other required | ||
Python libraries into the activated virtualenv. | ||||
Mads Kiilerich
|
r4902 | |||
Mads Kiilerich
|
r8555 | You can now proceed to :ref:`prepare-front-end-files`. | ||
.. _prepare-front-end-files: | ||||
r572 | ||||
Mads Kiilerich
|
r8363 | |||
Prepare front-end files | ||||
----------------------- | ||||
Mads Kiilerich
|
r8364 | Finally, the front-end files with CSS and JavaScript must be prepared. This | ||
depends on having some commands available in the shell search path: ``npm`` | ||||
version 6 or later, and ``node.js`` (version 12 or later) available as | ||||
``node``. The installation method for these dependencies varies between | ||||
operating systems and distributions. | ||||
Prepare the front-end by running:: | ||||
Mads Kiilerich
|
r8363 | |||
kallithea-cli front-end-build | ||||
Thomas De Schampheleire
|
r4924 | You can now proceed to :ref:`setup`. | ||